Excel - Абсолютная формула для каждой строки N - PullRequest
0 голосов
/ 03 марта 2020

Столбец J = Частота проверок (ежегодно, 6 раз в месяц, ежеквартально, ежемесячно)

Столбец L = Дата последней проверки (то есть: 01.01.2020)

Столбец M = Срок выполнения Дата

Текущая формула в столбце M:

=IF(J3="Annually",DATE(YEAR(L3)+1,MONTH(L3),DAY(L3)),IF(J3="6 Monthly",DATE(YEAR(L3),MONTH(L3)+6,DAY(L3)),IF(J3="Quarterly",DATE(YEAR(L3),MONTH(L3)+3,DAY(L3)),IF(J3="Monthly",DATE(YEAR(L3),MONTH(L3)+1,DAY(L3)),"ERROR"))))

Проблема в том, что ... столбец J объединен в 7 ячеек. Как только я перетащу формулу в столбец M вниз, она будет отображаться как «ОШИБКА».

Мне нужно зафиксировать ячейку на J3 для 7 строк, на восьмой строке мне нужно обновить ссылку на ячейку с J3 до J10.

Как мне это сделать ...

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Вы можете использовать indirect, заменив все ссылки на J3 на

INDIRECT("J" & FLOOR((ROW(A1)-1)/7, 1)*7 + 3)

Таким образом, ваша формула станет

=IF(INDIRECT("J" & FLOOR((ROW(A1)-1)/7, 1)*7 + 3)="Annually",DATE(YEAR(L3)+1,MONTH(L3),DAY(L3)),IF(INDIRECT("J" & FLOOR((ROW(A1)-1)/7, 1)*7 + 3)="6 Monthly",...

или вы можете использовать choose как Скотт Кран сделал

=IFERROR(EDATE(L9,CHOOSE(INDIRECT("J" & FLOOR((ROW(A1)-1)/7, 1)*7 + 3),{"Annually","6 Monthly","Quarterly","Monthly"},0),12,6,3,1)),"Error")
1 голос
/ 03 марта 2020

Если у вас есть Dynami c Формула XLOOKUP:

=IFERROR(EDATE(L9,CHOOSE(MATCH(XLOOKUP("*",$J$3:J9,$J$3:J9,,2,-1),{"Annually","6 Monthly","Quarterly","Monthly"},0),12,6,3,1)),"Error")

enter image description here


Если у вас нет Dynami c Формула массива с использованием INDEX / MATCH ():

=EDATE(L3,CHOOSE(MATCH(INDEX(J:J,MATCH("zzz",$J$1:J3)),{"Annually","6 Monthly","Quarterly","Monthly"},0),12,6,3,1))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...