
Общая формула
(=INDEX(range,MATCH(FALSE,ISBLANK(range),0)))
Резюме
Чтобы получить первое непустое значение (текст или число) в диапазоне из одного столбца, вы можете использовать формулу массива, основанную на функциях ИНДЕКС, ПОИСКПОЗ и ISBLANK. В показанном примере формула в D10:
(=INDEX(B3:B11,MATCH(FALSE,ISBLANK(B3:B11),0)))
Примечание. Это формула массива, которую необходимо вводить с помощью Control-Shift-Enter.
Объяснение
Итак, суть проблемы заключается в следующем: мы хотим получить первую непустую ячейку, но у нас нет прямого способа сделать это в Excel. Мы могли бы использовать VLOOKUP с подстановочным знаком * (см. Ссылку ниже), но это будет работать только для текста, а не для чисел.
Итак, нам нужно создать нужную нам функциональность, вложив формулы. На пути к этому можно использовать функцию массива, которая «проверяет» ячейки и возвращает массив значений ИСТИНА / ЛОЖЬ, которые мы можем передать в функцию ПОИСКПОЗ.
Работая изнутри, функция ISBLANK оценивает ячейки в диапазоне B3: B11 и возвращает массив, который выглядит следующим образом:
(TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Каждый FALSE представляет ячейку в диапазоне, который не пуст.
Затем MATCH ищет FALSE внутри массива и возвращает позицию первого найденного совпадения, в данном случае 2. На этом этапе формула в примере теперь выглядит следующим образом:
(=INDEX(B3:B11,2,0)))
Наконец, функция ИНДЕКС берет верх и получает значение в позиции 2 в массиве, равное 10.
Первое значение ненулевой длины
Чтобы получить первое значение ненулевой длины, вы можете включить функцию LEN следующим образом:
(=INDEX(range,MATCH(TRUE,LEN(range)>0,0)))
Первое числовое значение
Чтобы получить первое числовое значение в списке, вы можете адаптировать формулу для использования функции ЕЧИСЛО, а затем изменить логику на ИСТИНА вместо ЛОЖЬ:
(=INDEX(range,MATCH(TRUE,ISNUMBER(range),0)))
Это также формула массива, и ее нужно вводить с помощью Ctrl + Shift + Enter.