У меня есть вложенное выражение IF, которое, кажется, работает нормально.
=IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-2),OUID,0))="X", OFFSET(Z6,0,L6-2,), IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-3),OUID,0))="X", OFFSET(Z6,0,L6-3), IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-4),OUID,0))="X", OFFSET(Z6, 0, L6-4), IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-5),OUID,0))="X", OFFSET(Z6,0,L6-5), IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-6),OUID,0))="X", OFFSET(Z6,0,L6-6), "ERROR")))))
Где OUID - это динамический именованный диапазон, определенный как:
=OFFSET('DLH'!$B$3,0,0,COUNTA('DLH'!$B:$B),1)
Это работает как ожидалось и возвращает соответствующую ячейку. Однако, если я попытаюсь заменить элемент формулы F $ 3:F $ 523 на динамический именованный диапазон под названием "Отчет", определенный как:
=OFFSET('DLH'!$F$3,0,0,COUNTA('DLH'!$F:$F),1)
Он начинает возвращать "0" вместо текстовой строки в ячейке. Новая нерабочая формула выглядит так:
=IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-2),OUID,0))="X", OFFSET(Z5,0,L5-2,), IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-3),OUID,0))="X", OFFSET(Z5,0,L5-3), IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-4),OUID,0))="X", OFFSET(Z5, 0, L5-4), IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-5),OUID,0))="X", OFFSET(Z5,0,L5-5), IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-6),OUID,0))="X", OFFSET(Z5,0,L5-6), "ERROR")))))
Все динамические именованные диапазоны позволяют изменять количество строк. Формула выше находится в ячейке F5. Я подумал, что это может быть проблемой, поскольку динамический именованный диапазон отчета ссылается на тот же столбец, что и исходная ячейка, но даже если я переместу формулу в другую ячейку, она все равно возвращает 0.
Когда я использую функцию оценки в Excel для этого и сравниваю ее с рабочей версией, кажется, что все работает нормально, она даже выдает правильную окончательную ссылку на ячейку, это только на последнем этапе, когда она завершается ошибкой и возвращает 0.
Есть идеи?
Спасибо.