Excel поиск первой непустой ячейки в столбце

Получить первое непустое значение в столбце или строке

Чтобы получить первое значение (первая ячейка, которая не пуста, без учета ошибок) из диапазона из одного столбца или одной строки, вы можете использовать формулу, основанную на ИНДЕКС и МАТЧ функции. Однако, если вы не хотите игнорировать ошибки из вашего диапазона, вы можете добавить функцию ISBLANK к приведенной выше формуле.

получить первое непустое значение в строке столбца 1

Получить первое непустое значение в столбце или строке, игнорируя ошибки
Получить первое непустое значение в столбце или строке, включая ошибки


Получить первое непустое значение в столбце или строке, игнорируя ошибки

Чтобы получить первое непустое значение в списке как показано выше игнорирование ошибок, вы можете использовать функцию ИНДЕКС, чтобы найти непустые ячейки. Затем вы можете использовать ПОИСКПОЗ, чтобы найти его положение, и которое будет передано в другой ИНДЕКС, чтобы получить значение в этой позиции.

Общий синтаксис

=INDEX(range,MATCH(TRUE,INDEX((range<>0),0),0))

  • ассортимент: Диапазон из одного столбца или одной строки, в котором должна быть возвращена первая непустая ячейка с текстовыми или числовыми значениями при игнорировании ошибок.

Чтобы получить первое непустое значение в списке без учета ошибок, скопируйте или введите формулу ниже в ячейку E4 и нажмите Enter чтобы получить результат:

= ИНДЕКС (B4: B15, ПОИСКПОЗ (ИСТИНА; ИНДЕКС ((B4: B15<> 0), 0), 0))

получить первое непустое значение в строке столбца 2

Пояснение формулы

=INDEX(B4:B15,MATCH(TRUE,INDEX((B4:B15<>0),0),0))

  • ИНДЕКС ((B4: B15 <> 0), 0): Фрагмент оценивает каждое значение в диапазоне B4: B15. Если ячейка пуста, она вернет FLASE; Если ячейка содержит ошибку, сниппет сам вернет ошибку; И если ячейка содержит число или текст, будет возвращено ИСТИНА. Поскольку row_num аргумент этой формулы ИНДЕКС: 0, поэтому фрагмент вернет массив значений для всего столбца следующим образом: {ЛОЖЬ; # ССЫЛКА!; ИСТИНА; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ИСТИНА; ИСТИНА; ЛОЖЬ; ИСТИНА}.
  • МАТЧ (ИСТИНА;ИНДЕКС ((B4: B15 <> 0), 0), 0) = МАТЧ (ИСТИНА;{ЛОЖЬ; # ССЫЛКА!; ИСТИНА; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ИСТИНА; ИСТИНА; ЛОЖЬ; ИСТИНА}, 0): Наблюдения и советы этой статьи мы подготовили на основании опыта команды match_type 0 заставляет функцию ПОИСКПОЗ возвращать позицию первого точного ИСТИНА в массиве. Итак, функция вернет 3.
  • ИНДЕКС (B4: B15,МАТЧ (ИСТИНА;ИНДЕКС ((B4: B15 <> 0), 0), 0)) = ИНДЕКС (B4: B15;3): Затем функция ИНДЕКС возвращает 3rd значение в диапазоне B4: B15, Которая является extendoffice.

Получить первое непустое значение в столбце или строке, включая ошибки

Чтобы получить первое непустое значение в списке, включая ошибки, вы можете просто использовать функцию ISBLANK, чтобы проверить ячейки в списке, являются ли они пустыми или нет. Затем ИНДЕКС вернет первое непустое значение в соответствии с позицией, предоставленной ПОИСКПОЗ.

Общий синтаксис

=INDEX(range,MATCH(FALSE,ISBLANK(range),0))

√ Примечание. Это формула массива, требующая ввода с помощью Ctrl + Shift + Enter.

  • ассортимент: Диапазон из одного столбца или одной строки, в котором должна быть возвращена первая непустая ячейка с текстом, числами или значениями ошибки.

Чтобы получить первое непустое значение в списке, включая ошибки, скопируйте или введите формулу ниже в ячейку E7 и нажмите Ctrl + Shift + Enter чтобы получить результат:

= ИНДЕКС (B4: B15, ПОИСКПОЗ (ЛОЖЬ; ЕСТЬ ПУСТО (B4: B15), 0))

получить первое непустое значение в строке столбца 3

Пояснение формулы

=INDEX(B4:B15,MATCH(FALSE,ISBLANK(B4:B15),0))

  • ISBLANK (B4: B15): Функция ISBLANK проверяет, находятся ли ячейки в диапазоне B4: B15 пустые или нет. Если да, будет возвращено ИСТИНА; В противном случае будет возвращено ЛОЖЬ. Итак, функция сгенерирует такой массив: {ИСТИНА; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ}.
  • МАТЧ (ЛОЖЬ;ISBLANK (B4: B15), 0) = МАТЧ (ЛОЖЬ;{ИСТИНА; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ}, 0): Наблюдения и советы этой статьи мы подготовили на основании опыта команды match_type 0 заставляет функцию ПОИСКПОЗ возвращать позицию первого точного НЕПРАВДА в массиве. Итак, функция вернет 2.
  • ИНДЕКС (B4: B15,МАТЧ (ЛОЖЬ;ISBLANK (B4: B15), 0)) = ИНДЕКС (B4: B15;2): Затем функция ИНДЕКС возвращает 2ое значение в диапазоне B4: B15, Которая является #REF!.

Связанные функции

Функция ИНДЕКС в Excel

Функция ИНДЕКС Excel возвращает отображаемое значение на основе заданной позиции из диапазона или массива.

Функция ПОИСКПОЗ в Excel

Функция ПОИСКПОЗ в Excel ищет определенное значение в диапазоне ячеек и возвращает относительное положение значения.


Связанные формулы

Точное совпадение с ИНДЕКСОМ и ПОИСКПОЗ

Если вам нужно найти информацию, указанную в Excel, о конкретном продукте, фильме или человеке и т. Д., Вы должны хорошо использовать комбинацию функций ИНДЕКС и ПОИСКПОЗ.

Получить первое текстовое значение в столбце

Чтобы получить первое текстовое значение из диапазона с одним столбцом, вы можете использовать формулу, основанную на функциях ИНДЕКС и ПОИСКПОЗ, а также формулу, основанную на функции ВПР.

Найдите первое частичное совпадение с помощью подстановочных знаков

Есть случаи, когда вам нужно получить позицию первого частичного совпадения, которое содержит определенное число в диапазоне числовых значений в Excel. В этом случае формула ПОИСКПОЗ и ТЕКСТ, содержащая звездочку (*), подстановочный знак, который соответствует любому количеству символов, окажет вам услугу. И если вам также нужно знать точное значение в этой позиции, вы можете добавить в формулу функцию ИНДЕКС.

Найдите первое частичное совпадение

Есть случаи, когда вам нужно получить позицию первого частичного совпадения, которое содержит определенное число в диапазоне числовых значений в Excel. В этом случае формула ПОИСКПОЗ и ТЕКСТ, содержащая звездочку (*), подстановочный знак, который соответствует любому количеству символов, окажет вам услугу. И если вам также нужно знать точное значение в этой позиции, вы можете добавить в формулу функцию ИНДЕКС.


Лучшие инструменты для работы в офисе

Kutools for Excel — Помогает вам выделиться из толпы

Хотите быстро и качественно выполнять свою повседневную работу? Kutools for Excel предлагает 300 мощных расширенных функций (объединение книг, суммирование по цвету, разделение содержимого ячеек, преобразование даты и т. д.) и экономит для вас 80 % времени.

  • Разработан для 1500 рабочих сценариев, помогает решить 80% проблем с Excel.
  • Уменьшите количество нажатий на клавиатуру и мышь каждый день, избавьтесь от усталости глаз и рук.
  • Станьте экспертом по Excel за 3 минуты. Больше не нужно запоминать какие-либо болезненные формулы и коды VBA.
  • 30-дневная неограниченная бесплатная пробная версия. 60-дневная гарантия возврата денег. Бесплатное обновление и поддержка 2 года.

Лента Excel (с Kutools for Excel установлены)


Вкладка Office — включение чтения и редактирования с вкладками в Microsoft Office (включая Excel)

  • Одна секунда для переключения между десятками открытых документов!
  • Уменьшите количество щелчков мышью на сотни каждый день, попрощайтесь с рукой мыши.
  • Повышает вашу продуктивность на 50% при просмотре и редактировании нескольких документов.
  • Добавляет эффективные вкладки в Office (включая Excel), точно так же, как Chrome, Firefox и новый Internet Explorer.

Снимок экрана Excel (с установленной вкладкой Office)

Здравствуйте, форумчане! В Excel-e не новичок, пользуюсь давно, но вот перемкнуло: :-[ не получается построить формулу, выбирающую значение из первой непустой ячейки столбца. До сих пор использовал макросы или обходные пути, но чувствую, что должно быть более простое и быстрое решение. Устроит любая форма адресации — ссылка, смещение, номер строки. Заранее спасибо! :)


Позицию первой непустой ячейки можно вернуть так:
=ПОИСКПОЗ(«?»;A1:A10&»»;) — формула массива (текст и числа)
или:
=ПОИСКПОЗ(«*»;A1:A10 ;) — обычная формула (только текст)

Ну и соответственно возврат самих значений:
=ВПР(«?»;A1:A10&»»;1;) — формула массива (текст и числа) — возвращает числа также в виде текста.
и
=ВПР(«*»;A1:A10;1;) — обычная формула (только текст)

Webmoney: E350157549801 Z116603216205 R268084006579


Не «массивная» формула для поиска номера строки:
=СУММПРОИЗВ(ПОИСКПОЗ(«*?*»;(«»&A1:A23);0))

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453


Ну раз такое дело, во еще  ;)
=ПРОСМОТР(«»;A1:A10&»»;A2:A11)

Webmoney: E350157549801 Z116603216205 R268084006579



Цитата: Axacal от 27.06.2011, 13:40
Формула =ПРОСМОТР(«»;A1:A10&»»;A2:A11) на столбце со смещанным содержимым (пустые клетки, текст, числа) вообще ведет себя некорректно.

У меня работает, см. вложение.
Заодно добавил ещё свой вариантик формулы, который не предлагали ранее.

Цитата: Axacal от 27.06.2011, 13:40
Что означает приклеивание амперсандом пробела к адресу массива (A1:A10&»»)?

Замена пустых строк строками нулевой длинны.


Еще вариант немассивной:

=ПОИСКПОЗ("*?";ИНДЕКС(""&A1:A23;);)

ЦитироватьКстати, что означает приклеивание амперсандом пробела к адресу массива (A1:A10&»»)?

цифры в массиве становятся текстовыми данными


Хочется добавить:
Сцепляется не с пробелом, а со строкой нулевой длины.
Для корректной работы формулы: =ПРОСМОТР(«»;A1:A10&»»;A2:A11) требуется хотябы одна пустая верхняя ячейка.

Webmoney: E350157549801 Z116603216205 R268084006579


Возникла похожая, но «обратная» задача: найти первую пустую строку.
В принципе, мне удались решения с доп. столбцом и с формулой массива, но хочется упростить задачу.
Есть ли у кого-нибудь идеи?


пока придумалась такая формула массива:
=СУММ(C4:ИНДЕКС(C4:$C$13;ПОИСКПОЗ(» «;» «&B4:$B$13;0))*D4:ИНДЕКС(D4:$D$13;ПОИСКПОЗ(» «;» «&B4:$B$13;0)))

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453


Найти первую ячейку с ненулевым значением в столбце

The3rdStreet

Дата: Вторник, 31.03.2015, 16:25 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Уважаемые знатоки Excel!
Помогите составить формулу для возврата значения первой (верхней) непустой (ненулевой) текстовой ячейки в определённом столбце ячейке итогов, с условием, что ячейки таблицы заполняются не в ручную, а данными из другой таблицы с помощью формулы вида:
еслиошибка(впр(наименование;таблица;номер столбца;);»»).
Уточню, что искомое значение должно быть либо текстом первой ненулевой ячейки, либо «» (пустота) в случае отсутствия данных в столбце. Значение «0» (ноль, как число) не подходит, так как далее данные из ячейки, которой вернётся значение первой ненулевой ячейки столбца, будут источником для другого листа Excel, где должно быть либо конкретное текстовое значение, либо ничего.
Прочитал массу подобных тем на форумах, но все предложенные решения не помогли: в лучшем случае ячейке итогов возвращалось значение первой (верхней) ячейки столбца, если ей присвоено значение, если значение отсутствует, то есть по сути дела имеем значение «», то даже при заполненных следующих (находящихся ниже) ячейках столбца, ячейке итогов возвращается значение «» (пустота).
Подробнее в приложенном файле.
Спасибо!

К сообщению приложен файл:

8641423.xlsx
(13.1 Kb)

Сообщение отредактировал The3rdStreetВторник, 31.03.2015, 16:33

 

Ответить

The3rdStreet

Дата: Вторник, 31.03.2015, 16:26 |
Сообщение № 2

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Извиняюсь, вот файл-пример.

К сообщению приложен файл:

3410905.xlsx
(13.1 Kb)

 

Ответить

Rustem

Дата: Вторник, 31.03.2015, 16:26 |
Сообщение № 3

Группа: Проверенные

Ранг: Обитатель

Сообщений: 281


Репутация:

48

±

Замечаний:
0% ±


Excel 2013

Нет файла


WMR: R183220163895

 

Ответить

The3rdStreet

Дата: Вторник, 31.03.2015, 16:29 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Во втором сообщении

 

Ответить

Rustem

Дата: Вторник, 31.03.2015, 16:36 |
Сообщение № 5

Группа: Проверенные

Ранг: Обитатель

Сообщений: 281


Репутация:

48

±

Замечаний:
0% ±


Excel 2013

Оно?

Код

=ИНДЕКС(C2:C6;ПОИСКПОЗ(«»;C2:C6;0)+1)


WMR: R183220163895

 

Ответить

The3rdStreet

Дата: Вторник, 31.03.2015, 16:42 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

#ССЫЛКА!
:(

 

Ответить

The3rdStreet

Дата: Вторник, 31.03.2015, 16:45 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

=ИНДЕКС(C2:C6;ПОИСКПОЗ(«»;C2:C6;0)+1)

работает, если первое (верхнее) значение пустое. Если во второй таблице добавить «Запад» и присвоить показателю 5 любое значение, #ССЫЛКА!

 

Ответить

The3rdStreet

Дата: Вторник, 31.03.2015, 16:47 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Понял принцип формулы: ищется пустое значение, и возвращается следующее за ним. Теоретически смогу использовать, просто придётся добавить пустую строку сверху.

 

Ответить

The3rdStreet

Дата: Вторник, 31.03.2015, 16:52 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

И, кстати, если две или более верхних ячейки пустые, то ячейке итогов возвращается значение «», даже если в столбце ниже есть значение. Не пойдёт.

Сообщение отредактировал The3rdStreetВторник, 31.03.2015, 16:53

 

Ответить

Rustem

Дата: Вторник, 31.03.2015, 16:52 |
Сообщение № 10

Группа: Проверенные

Ранг: Обитатель

Сообщений: 281


Репутация:

48

±

Замечаний:
0% ±


Excel 2013

Цитата

Если во второй таблице добавить «Запад» и присвоить показателю 5 любое значение, #ССЫЛКА!

Что должно показать в этом случае?


WMR: R183220163895

 

Ответить

The3rdStreet

Дата: Вторник, 31.03.2015, 16:55 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Что должно показать в этом случае?

Значение Показатель 5, которое пользователь введёт во вторую таблицу для Запада, так как Запад будет первым иметь ненулевое значение в столбце 2 таблицы 1.

 

Ответить

The3rdStreet

Дата: Вторник, 31.03.2015, 16:57 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Все ячейки столбца Стороны света во второй таблице имеют выпадающий список. Выберете из него Запад и присвойте любое значение в столбец Показатель 5 таблицы 2. Результат ячейки с формулой #ССЫЛКА!, а должно быть то значение, которое вы ввели в Показатель 5 второй таблицы, либо, если Запада во второй таблице нет — значение Север, если нет Севера, то Восток и так далее.

Сообщение отредактировал The3rdStreetВторник, 31.03.2015, 16:59

 

Ответить

_Boroda_

Дата: Вторник, 31.03.2015, 17:22 |
Сообщение № 13

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Так нужно? Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер

Код

=ИНДЕКС(Таблица2[Показатель 5];ПОИСКПОЗ(1=1;ЕЧИСЛО(Таблица2[Показатель 5]);))


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

The3rdStreet

Дата: Среда, 01.04.2015, 00:39 |
Сообщение № 14

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

=ИНДЕКС(Таблица2[Показатель 5];ПОИСКПОЗ(1=1;ЕЧИСЛО(Таблица2[Показатель 5]);))

Не работает. Ищет именно Запад.
Ещё раз суть задачи: есть таблица 1, в которой в первом столбце неизменяемая группа показателей, в нашем случае Запад, Север, Восток, Юг. Второй столбец этой таблицы заполняется автоматом, если в таблице 2 выбран из списка один из неизменяемых показателей таблицы 1 и заполнены столбцы «Показатели», а точнее последний столбец таблицы 2 «Показатель 5» (в упрощённом варианте примера просто Показатель, так как остальные я удалил для упрощения понимания задачи). Таким образом, если в таблице 2 выбран один или несколько из «Запад, Север, Восток, Юг.» и ему присвоено значение «Показатель 5» (Показатель) в таблице 2, то автоматически в таблице 1 напротив этого/этих «Запад, Север, Восток, Юг.» появляется значение этого показателя. Это всё работает. Задача: ячейке «Итог» (последняя в столбце 2 таблицы 1) должно вернуться значение первого (верхнего) ненулевого (непустого) значения столбца 2 таблицы 1. Смотрим пример 2, упрощённый.

К сообщению приложен файл:

7777471.xlsx
(17.9 Kb)

Сообщение отредактировал The3rdStreetСреда, 01.04.2015, 00:41

 

Ответить

_Boroda_

Дата: Среда, 01.04.2015, 00:55 |
Сообщение № 15

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS


Показывайте. Вы, наверное, в формуле не переименовываете название таблицы. Они же все по-разному называются.
чтобы не морочить себе голову, напишите просто так:

Код

=ИНДЕКС(C26:C29;ПОИСКПОЗ(1=1;ЕЧИСЛО(C26:C29);))


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

The3rdStreet

Дата: Суббота, 04.04.2015, 08:43 |
Сообщение № 16

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

=ИНДЕКС(C26:C29;ПОИСКПОЗ(1=1;ЕЧИСЛО(C26:C29);))

Спасибо, разобрался! Вы мне очень помогли! Успехов!

 

Ответить

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: требуется формула, которая позволяла найти первое непустое значение в строке, т.е., возвращала бы номер первой непустой ячейки в строке. Предположим, что данные представлены в столбцах С:K (рис. 1).

Рис. 1. Формула находит первую непустую ячейку в каждой строке и возвращает ее номер в массиве

Рис. 1. Формула находит первую непустую ячейку в каждой строке и возвращает ее номер в массиве

Скачать заметку в формате Word или pdf, примеры в формате Excel

Решение: формула в А2: =ПОИСКПОЗ(1;ИНДЕКС(1-ЕПУСТО(C2:K2);1;0);0). Хотя эта формула имеет дело с массивом ячеек, она в конечном счете возвращает одно значение, так что использовать при вводе нажатие Ctrl+Shift+Enter не требуется (о формулах массива см. Майкл Гирвин. Ctrl+Shift+Enter. Освоение формул массива в Excel).

Рассмотрим работу формулы подробнее. Функция ЕПУСТО возвращает ИСТИНА, если ячейка является пустой, и ЛОЖЬ, если ячейка – не пустая. Посмотрите на строку данных в С2:К2. ЕПУСТО(С2:К2) возвратит массив: {ИСТИНА;ИСТИНА;ЛОЖЬ;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА;ИСТИНА}.

Обратите внимание, что далее этот массив вычитается из 1. При попытке использовать значения ИСТИНА и ЛОЖЬ в математической формуле, значение ИСТИНА интерпретируется как 1, а значение ЛОЖЬ – как 0. Задавая 1-ЕПУСТО(С2:К2), вы преобразуете массив логических значений ИСТИНА/ЛОЖЬ в числовую последовательность нулей и единиц: {0;0;1;0;0;0;0;0;0}.

Итак, фрагмент формулы 1-ЕПУСТО(С2:К2) возвращает массив {0;0;1;0;0;0;0;0;0}. Это немного странно, так как от такого фрагмента Excel ожидает, что вернется одно значение. Странно, но не смертельно. Функция ИНДЕКС также обычно возвращает одно значение. Но вот, что написано в Справке Excel: Если указать в качестве аргумента номер_строки или номер_столбца значение 0 (ноль), функция ИНДЕКС возвратит массив значений для целого столбца или целой строки соответственно. Чтобы использовать значения, возвращенные как массив, введите функцию ИНДЕКС как формулу массива в горизонтальный диапазон ячеек для строки и в вертикальный — для столбца.

Если функция ИНДЕКС возвращает массив, ее можно использовать внутри других функций, ожидающих, что аргумент является массивом.

Итак, указав в качестве третьего аргумента функции ИНДЕКС(1-ЕПУСТО(C2:K2);1;0) значение ноль, мы получим массив {0;0;1;0;0;0;0;0;0}.

Функция ПОИСКПОЗ выполняет поиск искомого значения в одномерном массиве и возвращает относительную позицию первого найденного совпадения. Формула =ПОИСКПОЗ(1,МАССИВ,0) просит Excel найти номер ячейки в МАССИВЕ, которая содержит первую встретившуюся единицу. Функция ПОИСКПОЗ определяет в каком столбце содержится первая непустая ячейка. Когда вы просите ПОИСКПОЗ найти первую 1 в массиве {0;0;1;0;0;0;0;0;0}, она возвращает 3.

Итак =ПОИСКПОЗ(1;ИНДЕКС(1-ЕПУСТО(C2:K2);1;0);0) превращается в =ПОИСКПОЗ(1;{0;0;1;0;0;0;0;0;0};0) и возвращает результат 3.

В этот момент, вы знаете, что третий столбец строки С2:К2 содержит первое непустое значение. Отсюда довольно просто, используя функцию ИНДЕКС, узнать само это первое непустое значение: =ИНДЕКС(МАССИВ;1;3) или =ИНДЕКС(C2:K2;1;ПОИСКПОЗ(1;ИНДЕКС(1-ЕПУСТО(C2:K2);1;0);0)).

Результат: 3

Рис. 2. Формула находит первую непустую ячейку в каждой строке и возвращает значение этой ячейки

Рис. 2. Формула находит первую непустую ячейку в каждой строке и возвращает значение этой ячейки

Дополнительные сведения: если все ячейки пустые, то формула возвращает ошибку #Н/Д.

Альтернативные стратегии: когда вы из единицы вычитаете значение ЕПУСТО, вы преобразуете логические значения ИСТИНА/ЛОЖЬ в числовые 1/0. Вы могли бы пропустить этот шаг, но тогда вам придется искать ЛОЖЬ в качестве первого аргумента функция ПОИСКПОЗ: =ИНДЕКС(C2:K2;1;ПОИСКПОЗ(ЛОЖЬ;ИНДЕКС(ЕПУСТО(C2:K2);1;0);0)).

Источник.

If you frequently analyze data in Excel, you may come across empty cells before the actual values. Instead of removing these cells, you can get the position or even the value of the first non-blank cell with formulas. In this article, we are going to show you how to find the first non-blank cell in a range in Excel.

Download Workbook

Formula

Finding the position:      {=MATCH(FALSE,ISBLANK(range),0)}

Get the value:                    {=INDEX(range,MATCH(FALSE,ISBLANK(range),0))}

* range is the reference from the work range

How it works

Excel doesn’t have a built-in formula to find the first non-blank cell in a range. However, there is ISBLANK function which checks a cell and returns a Boolean value according to its content. The function returns TRUE if cell is blank, FALSE otherwise. Thus, finding the first FALSE value means to find the first non-blank cell.

MATCH function can help to locate FALSE value. Once the position is in hand, you can use it with INDEX function to get the result.

Although VLOOKUP function can be used with a wild card “*” character, it can return only text values. If you are not familiar with INDEX & MATCH functions, please visit our guide: INDEX & MATCH: A Better Way to Look Up Data

The problem is ISBLANK function only works with a single cell. You need to use a helper column to populate TRUE and FALSE values which doesn’t sound practical. Instead, you can use an array function and not need the helper column.

Use the reference of your range of values in the ISBLANK function. This action will return an array of Boolean values. The first FALSE value indicates the position of the first non-blank cell in the range. Wrap the function with either MATCH or INDEX-MATCH combo to get the position or the value respectively.

Use Ctrl + Shift + Enter key combination instead of regular Enter key to evaluate the formula as an array formula.

19 / 19 / 0

Регистрация: 30.09.2011

Сообщений: 283

1

Поиск первой НЕ пустой ячейки

02.02.2012, 10:32. Показов 18561. Ответов 8


Студворк — интернет-сервис помощи студентам

Привет всем!

Помогите пожалуйста справится с задачей

есть табличка из двух столбцов (в приложении она продублирована 2 раза для примера отображения результатов при разных значениях ячейки A1 (F1.. K1))

и собственно вопрос:

как должна выглядеть формула в ячейке С2, чтобы она осуществляла поиск значения ячейки A1 в первом столбце таблицы и от него справа искала первую НЕ пустую ячейку и собственно ее возвращала.

Рисунок прилагаю

с Уважением

Миниатюры

Поиск первой НЕ пустой ячейки
 



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

02.02.2012, 11:00

2

Пробуйте



2



956 / 596 / 11

Регистрация: 11.06.2010

Сообщений: 1,345

02.02.2012, 11:03

3

Если значения в столбце В всегда смещены на одну строку вниз, как в примере, то так:

Код

=ИНДЕКС(B3:B20;ПОИСКПОЗ(A1;A3:A20)+1)

Если смещение бывает другое, то надо понимать на сколько строк оно может быть и может ли быть смещение вверх?



0



19 / 19 / 0

Регистрация: 30.09.2011

Сообщений: 283

02.02.2012, 11:49

 [ТС]

4

Цитата
Сообщение от Казанский
Посмотреть сообщение

Пробуйте

спасибо! Ваш вариант вписывается как раз

только вопрос, а что значит искомое значение «*»

Цитата
Сообщение от Serge 007
Посмотреть сообщение

Если смещение бывает другое, то надо понимать на сколько строк оно может быть и может ли быть смещение вверх?

Смещения в колонке «B» может и не быть вовсе (значения могут стоять напротив), либо только вниз.



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

02.02.2012, 12:25

5

Цитата
Сообщение от caustic
Посмотреть сообщение

что значит искомое значение «*»

Любой текст, т.е. непустая ячейка.



1



0 / 0 / 0

Регистрация: 15.02.2013

Сообщений: 2

15.02.2013, 13:12

6

Если в столбце В не текст, а даты либо цифры? Какой символ искать?



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,928

15.02.2013, 16:04

7

изменить формулу например на такую

Код

=ИНДЕКС(СМЕЩ(B2:B9999;ПОИСКПОЗ(A1;A3:A9999;););ПОИСКПОЗ(1;--ЕЧИСЛО(СМЕЩ(B2:B9999;ПОИСКПОЗ(A1;A3:A9999;);));0))



0



0 / 0 / 0

Регистрация: 15.02.2013

Сообщений: 2

15.02.2013, 17:15

8

Цитата
Сообщение от Vlad999
Посмотреть сообщение

изменить формулу например на такую

Код

=ИНДЕКС(СМЕЩ(B2:B9999;ПОИСКПОЗ(A1;A3:A9999;););ПОИСКПОЗ(1;--ЕЧИСЛО(СМЕЩ(B2:B9999;ПОИСКПОЗ(A1;A3:A9999;);));0))

#Н/Д



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,928

15.02.2013, 17:19

9

УПС забыл написать данная формула вводится как формула массива. ctrl+shift+enter



1



Like this post? Please share to your friends:
  • Excel поиск папок в папке
  • Excel поиск отсутствующих значений
  • Excel поиск отрицательных значений
  • Excel поиск одного неизвестного по формуле
  • Excel поиск одного значения по другому