Проблема
Я ищу первую непустую ячейку в диапазоне 'Sheet1'!$I8:$AG8
, затем собираю COLUMN
этой ячейки, затем получаю значение (назовите его date
)ячейки, которая на две строки выше первого диапазона, используя следующую формулу массива:
INDEX('Sheet1'!$A$6:$AG$6;1;COLUMN('Sheet1'!$I8)-1+MATCH(FALSE;ISBLANK('Sheet1'!$I8:$AG8);0))
Это прекрасно работает.
Теперь я хочу сделать то же самое, но если date
равно today()
я хочу найти следующее непустое значение в диапазоне 'Sheet1'!$I8:$AG8
.
Для этого я поместил в ячейку F6
следующую формулу для создания обновленногострока диапазона, которая начинается после первой непустой ячейки диапазона 'Sheet1'!$I8:$AG8
(примечание: row()+2
требуется, потому что ячейка, в которую я помещаю значение, находится на другом листе в ячейке, расположенной на 2 строки ниже, и значение "33""соответствует столбцу AG
):
="'Sheet1'!"& ADDRESS(ROW()+2;COLUMN('Sheet1'!$I8)+MATCH(FALSE;ISBLANK('Sheet1'!$I8:$AG8);0))&":"&ADDRESS(ROW()+2;33)
Тогда, если date
равно today()
, я использую содержимое F6
в формуле массива следующим образом:
INDEX(
'Sheet1'!$A$6:$AG$6;1;
COLUMN(INDEX(Sheet1!$A$6:$AG$6;1;COLUMN(Sheet1!$I8)+MATCH(FALSE;ISBLANK(Sheet1!$I8:$AG8);0)))
-1
+MATCH(FALSE;ISBLANK(INDIRECT(F6));0)
)
Снова это прекрасно работает , я получаю то, что ищу ... но я должен сделать то же самое мультиНесколько раз (что приводит к нескольким вспомогательным столбцам).
Где я застрял
Я попытался объединить две вышеупомянутые формулы массива в одну, чтобыизбавиться от старшего столбца, который содержит ячейку F6
.Я не мог заставить его работать (он возвращает систематически первую ячейку нового диапазона, а не первую непустую ячейку):
=INDEX(
'Planning Briefs'!$A$6:$AG$6;1;
COLUMN(INDEX(Sheet1!$A$6:$AG$6;1;COLUMN(Sheet1!$I8)+MATCH(FALSE;ISBLANK(Sheet1!$I8:$AG8);0)))
-1
+MATCH(FALSE;ISBLANK(INDIRECT("'Sheet1'!"& ADDRESS(ROW()+2;COLUMN(Sheet1!$I8)+MATCH(FALSE;ISBLANK(Sheet1!$I8:$AG8);0))&":"&ADDRESS(ROW()+2;33)));0)
)
Вопрос
Есть ли способ заставить его работать за один проход или мне придется разделить его на два?
Заранее спасибо за помощь