Поиск последнего значения в списке excel

Поиск последнего вхождения (инвертированный ВПР)

Все классические функции поиска и подстановки типа ВПР (VLOOKUP), ГПР (HLOOKUP), ПОИСКПОЗ (MATCH) и им подобные имеют одну важную особенность — они ищут от начала к концу, т.е. слева-направо или сверху-вниз по исходным данным. Как только находится первое подходящее совпадение — поиск останавливается и найденным оказывается только первое вхождение нужного нам элемента.

Что же делать, если нам требуется найти не первое, а последнее вхождение? Например, последнюю сделку по клиенту, последний платёж, самую свежую заявку и т.д.?

Способ 1. Поиск последней строки формулой массива

Если в исходной таблице нет столбца с датой или порядковым номером строки (заказа, платежа…), то наша задача сводится, по сути, к поиску последней строки, удовлетворяющей заданному условию. Реализовать подобное можно вот такой формулой массива:

Формула массива для поиска последнего вхождения

Здесь:

  • Функция ЕСЛИ (IF) проверяет по очереди все ячейки в столбце Клиент и выводит номер строки, если в ней лежит нужное нам имя. Номер строки на листе нам даёт функция СТРОКА (ROW), но поскольку нам нужен номер строки в таблице, то дополнительно приходится вычитать 1, т.к. у нас в таблице есть шапка.
  • Затем функция МАКС (MAX) выбирает из сформированного набора номеров строк максимальное значение, т.е. номер самой последней строки клиента.
  • Функция ИНДЕКС (INDEX) выдаёт содержимое ячейки с найденным последним номером из любого другого требуемого столбца таблицы (Код заказа).

Всё это нужно вводить как формулу массива, т.е.:

  • В Office 365 с последними установленными обновлениями и поддержкой динамических массивов — можно просто жать Enter.
  • Во всех остальных версиях после ввода формулы придется нажимать сочетание клавиш Ctrl+Shift+Enter, что автоматически добавит к ней фигурные скобки в строке формул.

Способ 2. Обратный поиск новой функцией ПРОСМОТРХ

Я уже писал большую статью с видео про новую функцию ПРОСМОТРХ (XLOOKUP), которая появилась в последних версиях Office на замену старушке ВПР (VLOOKUP). При помощи ПРОСМОТРХ наша задача решается совершенно элементарно, т.к. для этой функции (в отличие от ВПР) можно явно задавать направление поиска: сверху-вниз или снизу-вверх — за это отвечает её последний аргумент (-1):

Обратный поиск с ПРОСМОТРХ

Способ 3. Поиск строки с последней датой

Если в исходных данных у нас есть столбец с порядковым номером или датой, играющей аналогичную роль, то задача видоизменяется — нам требуется найти уже не последнюю (самую нижнюю) строку с совпадением, а строку с самой поздней (максимальной) датой.

Как это сделать с помощью классических функций я уже подробно разбирал, а теперь давайте попробуем использовать мощь новых функций динамических массивов. Исходную таблицу для пущей красоты и удобства тоже заранее преобразуем в «умную» с помощью сочетания клавиш Ctrl+T или команды Главная — Форматировать как таблицу (Home — Format as Table).

С их помощью этой «убойной парочки» наша задача решается весьма изящно:

Обратный поиск на динамических массивах в Excel

Здесь:

  • Сначала функция ФИЛЬТР (FILTER) отбирает только те строки из нашей таблицы, где в столбце Клиент — нужное нам имя.
  • Потом функция СОРТ (SORT) сортирует отобранные строки по убыванию даты, чтобы самая последняя сделка оказалась сверху.
  • Функция ИНДЕКС (INDEX) извлекает первую строку, т.е. выдает нужную нам последнюю сделку.
  • И, наконец, внешняя функция ФИЛЬТР убирает из результатов лишние 1-й и 3-й столбцы (Код заказа и Клиент) и оставляет только дату и сумму. Для этого используется массив констант {0;1;0;1}, определяющий какие именно столбцы мы хотим (1) или не хотим (0) выводить.

Способ 4. Поиск последнего совпадения в Power Query

Ну, и для полноты картины, давайте рассмотрим вариант решения нашей задачи обратного поиска с помощью надстройки Power Query. С её помощью всё решается очень быстро и красиво.

1. Преобразуем нашу исходную таблицу в «умную» с помощью сочетания клавиш Ctrl+T или команды Главная — Форматировать как таблицу (Home — Format as Table).

2. Загружаем её в Power Query кнопкой Из таблицы/диапазона на вкладке Данные (Data — From Table/Range).

3. Сортируем (через выпадающий список фильтра в шапке) нашу таблицу по убыванию даты, чтобы самые последние сделки оказались сверху.

4. На вкладке Преобразование выбираем команду Группировать по (Transform — Group By) и задаем группировку по клиентам, а в качестве агрегирующей функции выбираем вариант Все строки (All rows). Назвать новый столбец можно как угодно — например Подробности.

Группировка строк в Power Query

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

Результаты группировки

5. Добавляем новый вычисляемый столбец кнопкой Настраиваемый столбец на вкладке Добавить столбец (Add column — Add custom column) и вводим следующую формулу:

Добавляем вычисляемый столбец для извлечения 1 строки

Здесь Подробности — это столбец, откуда мы берем таблицы по клиентам, а {0} — это номер строки, которую мы хотим извлечь (нумерация строк в Power Query начинается с нуля). Получаем столбец с записями (Record), где каждая запись — первая строка из каждой таблицы:

Полученные записи

Осталось развернуть содержимое всех записей кнопкой с двойными стрелками в шапке столбца Последняя сделка, выбрав нужные столбцы:

Разворачиваем записи в столбцы

… и удалить потом ненужный более столбец Подробности щёлкнув по его заголовку правой кнопкой мыши — Удалить столбцы (Remove columns).

После выгрузки результатов на лист через Главная — Закрыть и загрузить — Закрыть и загрузить в (Home — Close & Load — Close & Load to…) получим вот такую симпатичную таблицу со списком последних сделок, как и хотели:

Результаты запроса Power Query

При изменении исходных данных результаты нужно не забыть обновить, щёлкнув по ним правой кнопкой мыши — команда Обновить (Refresh) или сочетанием клавиш Ctrl+Alt+F5.

Ссылки по теме

  • Функция ПРОСМОТРХ — наследник ВПР
  • Как использовать новые функции динамических массивов СОРТ, ФИЛЬТР и УНИК
  • Поиск последней непустой ячейки в строке или столбце функцией ПРОСМОТР

На чтение 7 мин. Просмотров 30k.

Содержание

  1. Получить первое не пустое значение в списке
  2. Получить первое текстовое значение в списке
  3. Получить первое текстовое значение с ГПР
  4. Получить позицию последнего совпадения
  5. Получить последнее совпадение содержимого ячейки
  6. Получить n-е совпадение
  7. Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ
  8. Получить n-ое совпадение с ВПР
  9. Если ячейка содержит одну из многих вещей
  10. Поиск первой ошибки
  11. Поиск следующего наибольшего значения
  12. Несколько совпадений в списке, разделенных запятой
  13. Частичное совпадение чисел с шаблоном
  14. Частичное совпадение с ВПР
  15. Положение первого частичного совпадения

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

{ = ИНДЕКС( диапазон ; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( диапазон ); 0 )) }

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

Если вам нужно получить первое не пустое значение (текст или число) в диапазоне в одной колонке вы можете использовать формулу массива на основе функций ИНДЕКС, ПОИСКПОЗ и ЕПУСТО.

В данном примере мы используем эту формулу:

{ = ИНДЕКС( B3: B11; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( B3: B11 ); 0 )) }

Таким образом, суть проблемы заключается в следующем: мы хотим получить первую не пустую ячейку, но для этого нет конкретной формулы в Excel. Мы могли бы использовать ВПР с шаблоном *, но это будет работать только для текста, а не для чисел.

Таким образом, нам нужно строить функциональные возможности для нужных нам формул. Способ сделать это состоит в использовании функции массива, которая «тестирует» ячейки и возвращает массив истина/ложь значения, которые мы можем сопрягать с ПОИСКПОЗ.

Работая изнутри, ЕПУСТО оценивает ячейки в диапазоне В3: В11 и возвращает результат и массив, который выглядит следующим образом:

{ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА}

Каждая ЛОЖЬ представляет собой ячейку в диапазоне, который не является пустой.

Далее, ПОИСКПОЗ ищет ЛОЖЬ внутри массива и возвращает позицию первого наденного совпадения, в этом случае 2. На данный момент, формула в примере теперь выглядит следующим образом:

{ = ИНДЕКС( B3: B11; 2; 0 )) }

И, наконец, функция ИНДЕКС выводит значение в положении 2 в массиве, в этом случае число 10.

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

= ВПР ( «*»; диапазон; 1; ЛОЖЬ)

Если вам нужно получить первое текстовое значение в списке (диапазон один столбец), вы можете использовать функцию ВПР, чтобы установить точное соответствие, с шаблонным символом для поиска.

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

В данном примере формула в D7 является:

= ВПР ( «*» ; B5: B11 ; 1 ; ЛОЖЬ)

Групповой символ звездочка (*) соответствует любому текстовому значению.

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

= ГПР ( «*»; диапазон; 1; ЛОЖЬ)

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

Для поиска и получения первого текстового значения во всем диапазоне столбцов, вы можете использовать функцию ГПР с групповым символом. В примере формула в F5 является:

= ГПР ( «*»; С5: Е5; 1; 0 )

Значение поиска является «*», групповым символом, который соответствует одному или более текстовому значению.

Получить позицию последнего совпадения

{ = МАКС( ЕСЛИ ( Величины = знач ; СТРОКА(величина) — СТРОКА(ИНДЕКС( Величины; 1 ; 1 )) + 1 )) }

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

Получить позицию последнего совпадения

В примере формула в G6:

=МАКС(ЕСЛИ(B4:B11=G5;СТРОКА(B4:B11)-СТРОКА(ИНДЕКС(B4:B11;1;1))+1))

Суть этой формулы состоит в том, что мы строим список номеров строк для данного диапазона, соответствующие по значению, а затем используем функцию MAКС, чтобы получить наибольшее количество строк, что соответствует последнему значению соответствия.

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

= ПРОСМОТР( 2 ; 1 / ПОИСК ( вещи ; А1 ); вещи )

Чтобы проверить ячейку для одной из нескольких вещей, и вернуть последнее совпадение, найденное в списке, вы можете использовать формулу, основанную на ПРОСМОТР и ПОИСК функций. В случае нескольких найденных совпадений, формула вернет последнее совпадение из списка «вещей».

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

В примере формула в С5:

=ПРОСМОТР(2;1/ПОИСК($E$4:$E$7;B4);$E$4:$E$7)

Получить n-е совпадение

= НАИМЕНЬШИЙ( ЕСЛИ( логический тест; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); n )

Для того, чтобы получить позицию n-го совпадения (например, второе значение соответствия заданному, третье значение соответствия и т.д.), вы можете использовать формулу, основанную на функции НАИМЕНЬШИЙ.

= НАИМЕНЬШИЙ( ЕСЛИ( список = E5 ; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); F5 )

Эта формула возвращает позицию второго появления «красных» в списке.

Сутью этой формулы является функция НАИМЕНЬШИЙ, которая просто возвращает n-е наименьшее значение в списке значений, которое соответствует номеру строки. Номера строк были «отфильтрованы» функцией ЕСЛИ, которая применяет логику для совпадения.

Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ

{ = ИНДЕКС( массив; НАИМЕНЬШИЙ( ЕСЛИ( величины = знач ; СТРОКА ( величины ) — СТРОКА ( ИНДЕКС( величины; 1 ; 1 )) + 1 ); n-й )) }

Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ

Чтобы получить n-ое совпадение, используя ИНДЕКС и ПОИСКПОЗ, вы можете использовать формулу массива с функциями ЕСЛИ и НАИМЕНЬШИЙ, чтобы выяснить номер строки совпадения.

Получить n-ое совпадение с ВПР

= ВПР( id_формулы; стол; 4; 0 )

Чтобы получить n-ое совпадение с ВПР, вам необходимо добавить вспомогательный столбец в таблицу , которая строит уникальный идентификатор , который включает счетчик.

Получить n-ое совпадение с ВПР

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

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

=ВПР(J3&»-«&I6;B4:G11;4;0)

Если ячейка содержит одну из многих вещей

{ = ИНДЕКС( результаты ;ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК( вещи ; A1 )); 0 )) }

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

{ = ИНДЕКС( результаты ; ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК ( вещи ; B5 )); 0 )) }

Эта формула использует два названных диапазона: E5: E8 называется «вещи» и F5: F8 называется «Результаты». Убедитесь, что вы используете диапазоны имен с одинаковыми именами (на основе ваших данных). Если вы не хотите использовать именованные диапазоны, используйте абсолютные ссылки вместо этого.

Поиск первой ошибки

{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА(диап ); 0 ) }

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

Поиск первой ошибки

В приведенном примере формула:

{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА( B4: B11 ); 0 ) }

Работая изнутри, функция ЕОШИБКА возвращает значение ИСТИНА, если значение является признанной ошибкой, и ЛОЖЬ, если нет.

Когда дается диапазон ячеек (массив ячеек) функция ЕОШИБКА будет возвращать массив истина/ложь значений. В примере, это результирующий массив выглядит следующим образом:

{ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ}

Обратите внимание, что 6-е значение (что соответствует 6-й ячейке в диапазоне) истинно, так как ячейка В9 содержит #Н/A.

Поиск следующего наибольшего значения

=ИНДЕКС ( данные; ПОИСКПОЗ( поиск ; значения ) + 1 )

Поиск следующего наибольшего значения

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

=ИНДЕКС(C5:C9;ПОИСКПОЗ(F4;B5:B9)+1)

Несколько совпадений в списке, разделенных запятой

{ = ОБЪЕДИНИТЬ ( «;» ; ИСТИНА ; ЕСЛИ( диапазон1 = E5 ; диапазон2 ; «» )) }

Для поиска и извлечения нескольких совпадений, разделенных запятыми (в одной ячейке), вы можете использовать функцию ЕСЛИ с функцией ОБЪЕДИНИТЬ.

{ = ОБЪЕДИНИТЬ( «;» ; ИСТИНА ; ЕСЛИ( группа = E5 ; имя ; «» )) }

Эта формула использует «имя» — именованный диапазон (B5: B11) и «группа» — (C5: C11).

Частичное совпадение чисел с шаблоном

{ = ПОИСКПОЗ( «*» & номер & «*» ; ТЕКСТ( диапазон ; «0» ); 0 ) }

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

Частичное совпадение чисел с шаблоном

Excel поддерживает символы подстановки «*» и «?». Тем не менее, если вы используете специальные символы с номером, вы будете преобразовывать числовое значение в текстовое значение. Другими словами, «*» & 99 & «*» = «* 99 *» (текстовая строка).

Если попытаться найти текстовое значение в диапазоне чисел, совпадение завершится неудачно.

Решение

Одно из решений заключается в преобразовании чисел в диапазоне поиска для текстовых значений, а затем сделать нормальный поиск с ПОИСКПОЗ, ВПР и т.д.

Другой вариант

Другой способ, чтобы преобразовать числа в текст, чтобы сцепить пустую строку. Эта формула работает так же, как выше формуле:

= ПОИСКПОЗ ( «*» & Е5 & «*» ; В5: В10 & «» ; 0 )

Частичное совпадение с ВПР

Если вы хотите получить информацию из таблицы на основе частичного совпадения, вы можете сделать это с помощью ВПР в режиме точного соответствия, и групповые символы.

Частичное совпадение с ВПР

В примере формула ВПР выглядит следующим образом:

=ВПР($H$2&»*»;$B$3:$E$12;2;0)

В этой формуле, значение представляет собой именованный диапазон, который относится к Н2, а также данные , представляет собой именованный диапазон , который относится к B3: E102. Без названных диапазонов, формула может быть записана следующим образом:

Положение первого частичного совпадения

= ПОИСКПОЗ ( «* текст *» ; диапазон; 0 )

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

Положение первого частичного совпадения

В примере формула в Е7:

=ПОИСКПОЗ(«*»&E6&»*»;B5:B10;0)

Функция ПОИСКПОЗ возвращает позицию или «индекс» в первом совпадении на основании значения поиска в диапазоне.

ПОИСКПОЗ поддерживает подстановочное согласование со звездочкой «*» (один или несколько символов) или знаком вопроса «?» (один символ), но только тогда, когда третий аргумент, тип_сопоставления, установлен в ЛОЖЬ или ноль.

Ссылка на это место страницы:
#title

  1. Получить первое не пустое значение в списке
  2. Получить первое текстовое значение в списке
  3. Получить первое текстовое значение с ГПР
  4. Получить позицию последнего совпадения
  5. Получить последнее совпадение содержимого ячейки
  6. Получить n-е совпадение
  7. Получить n-ое совпадение с ИНДЕКС/ПОИСКПОЗ
  8. Получить n-ое совпадение с ВПР
  9. Если ячейка содержит одну из многих вещей
  10. Поиск первой ошибки
  11. Поиск следующего наибольшего значения
  12. Несколько совпадений в списке, разделенных запятой
  13. Частичное совпадение чисел с шаблоном
  14. Частичное совпадение с ВПР
  15. Положение первого частичного совпадения
  16. Скачать файл

Ссылка на это место страницы:
#punk01

{ = ИНДЕКС( диапазон ; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( диапазон ); 0 )) }

{ = INDEX( диапазон ; MATCH( FALSE; ISBLANK ( диапазон ); 0 )) }

Если вам нужно получить первое не пустое значение (текст или число) в диапазоне в одной колонке вы можете использовать формулу массива на основе функций ИНДЕКС, ПОИСКПОЗ и ЕПУСТО.

В данном примере мы используем эту формулу:

{ = ИНДЕКС( B3: B11; ПОИСКПОЗ( ЛОЖЬ; ЕПУСТО ( B3: B11 ); 0 )) }

{ = INDEX( B3:B11; MATCH( FALSE; ISBLANK ( B3:B11 ); 0 )) }

Таким образом, суть проблемы заключается в следующем: мы хотим получить первую не пустую ячейку, но для этого нет конкретной формулы в Excel. Мы могли бы использовать ВПР с шаблоном *, но это будет работать только для текста, а не для чисел.

Таким образом, нам нужно строить функциональные возможности для нужных нам формул. Способ сделать это состоит в использовании функции массива, которая «тестирует» ячейки и возвращает массив истина/ложь значения, которые мы можем сопрягать с ПОИСКПОЗ.

Работая изнутри, ЕПУСТО оценивает ячейки в диапазоне В3: В11 и возвращает результат и массив, который выглядит следующим образом:

{ИСТИНА; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ИСТИНА; ИСТИНА}

Каждая ЛОЖЬ представляет собой ячейку в диапазоне, который не является пустой.

Далее, ПОИСКПОЗ ищет ЛОЖЬ внутри массива и возвращает позицию первого наденного совпадения, в этом случае 2. На данный момент, формула в примере теперь выглядит следующим образом:

{ = ИНДЕКС( B3: B11; 2; 0 )) }

{ = INDEX( B3:B11; 2; 0 )) }

И, наконец, функция ИНДЕКС выводит значение в положении 2 в массиве, в этом случае число 10.

Ссылка на это место страницы:
#punk02

= ВПР ( «*»; диапазон; 1; ЛОЖЬ)

= VLOOKUP ( «*»; диапазон; 1; FALSE)

Если вам нужно получить первое текстовое значение в списке (диапазон один столбец), вы можете использовать функцию ВПР, чтобы установить точное соответствие, с шаблонным символом для поиска.

В данном примере формула в D7 является:

= ВПР ( «*» ; B5: B11 ; 1 ; ЛОЖЬ)

= VLOOKUP ( «*» ; B5:B11 ; 1 ; FALSE)

Групповой символ звездочка (*) соответствует любому текстовому значению.

Ссылка на это место страницы:
#punk03

= ГПР ( «*»; диапазон; 1; ЛОЖЬ)

= HLOOKUP ( «*»; диапазон; 1; FALSE)

Для поиска и получения первого текстового значения во всем диапазоне столбцов, вы можете использовать функцию ГПР с групповым символом. В примере формула в F5 является:

= ГПР ( «*»; диапазон; 1; ЛОЖЬ)

= HLOOKUP ( «*»; диапазон; 1; FALSE)

Значение поиска является «*», групповым символом, который соответствует одному или более текстовому значению.

Ссылка на это место страницы:
#punk04

= ГПР ( «*»; диапазон; 1; ЛОЖЬ)

= HLOOKUP ( «*»; диапазон; 1; FALSE)

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

=МАКС(ЕСЛИ(B4:B11=G5;СТРОКА(B4:B11)-СТРОКА(ИНДЕКС(B4:B11;1;1))+1))

=MAX(IF(B4:B11=G5;ROW(B4:B11)-ROW(INDEX(B4:B11;1;1))+1))

Суть этой формулы состоит в том, что мы строим список номеров строк для данного диапазона, соответствующие по значению, а затем используем функцию MAКС, чтобы получить наибольшее количество строк, что соответствует последнему значению соответствия.

Ссылка на это место страницы:
#punk05

=МАКС(ЕСЛИ(B4:B11=G5;СТРОКА(B4:B11)-СТРОКА(ИНДЕКС(B4:B11;1;1))+1))

=MAX(IF(B4:B11=G5;ROW(B4:B11)-ROW(INDEX(B4:B11;1;1))+1))

Чтобы проверить ячейку для одной из нескольких вещей, и вернуть последнее совпадение, найденное в списке, вы можете использовать формулу, основанную на ПРОСМОТР и ПОИСК функций. В случае нескольких найденных совпадений, формула вернет последнее совпадение из списка «вещей».

=ПРОСМОТР(2;1/ПОИСК($E$4:$E$7;B4);$E$4:$E$7)

=LOOKUP(2;1/SEARCH($E$4:$E$7;B4);$E$4:$E$7)

Ссылка на это место страницы:
#punk06

= НАИМЕНЬШИЙ( ЕСЛИ( логический тест; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); n )

= SMALL( IF( логический тест; СТРОКА( список ) — MIN( ROW( список )) + 1 ); n )

Для того, чтобы получить позицию n-го совпадения (например, второе значение соответствия заданному, третье значение соответствия и т.д.), вы можете использовать формулу, основанную на функции НАИМЕНЬШИЙ.

= НАИМЕНЬШИЙ( ЕСЛИ( список = E5 ; СТРОКА( список ) — МИН( СТРОКА( список )) + 1 ); F5 )

= SMALL( IF( список = E5 ; ROW( список ) — MIN( ROW( список )) + 1 ); F5 )

Эта формула возвращает позицию второго появления «красных» в списке.

Сутью этой формулы является функция НАИМЕНЬШИЙ, которая просто возвращает n-е наименьшее значение в списке значений, которое соответствует номеру строки. Номера строк были «отфильтрованы» функцией ЕСЛИ, которая применяет логику для совпадения.

Ссылка на это место страницы:
#punk07

{ = ИНДЕКС( массив; НАИМЕНЬШИЙ( ЕСЛИ( величины = знач ; СТРОКА ( величины ) — СТРОКА ( ИНДЕКС( величины; 1 ; 1 )) + 1 ); n-й )) }

{ = INDEX( массив; SMALL( IF( величины = знач ; ROW ( величины ) — ROW ( INDEX( величины; 1 ; 1 )) + 1 ); n-й )) }

Эта формула возвращает позицию второго появления «красных» в списке.

Сутью этой формулы является функция НАИМЕНЬШИЙ, которая просто возвращает n-е наименьшее значение в списке значений, которое соответствует номеру строки. Номера строк были «отфильтрованы» функцией ЕСЛИ, которая применяет логику для совпадения.

Ссылка на это место страницы:
#punk08

= ВПР( id_формулы; стол; 4; 0 )

= VLOOKUP( id_формулы; стол; 4; 0 )

Чтобы получить n-ое совпадение с ВПР, вам необходимо добавить вспомогательный столбец в таблицу , которая строит уникальный идентификатор , который включает счетчик.

Эта формула зависит от вспомогательного столбца, который добавляется в качестве первого столбца таблицы исходных данных. 

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

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

=ВПР(J3&»-«&I6;B4:G11;4;0)

=VLOOKUP(J3&»-«&I6;B4:G11;4;0)

Ссылка на это место страницы:
#punk09

{ = ИНДЕКС( результаты ;ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК( вещи ; A1 )); 0 )) }

{ = INDEX( результаты ;MATCH( TRUE ; ISNUMBER( SEARCH( вещи ; A1 )); 0 )) }

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

{ = ИНДЕКС( результаты ; ПОИСКПОЗ( ИСТИНА ; ЕЧИСЛО( ПОИСК ( вещи ; B5 )); 0 )) }

= INDEX( результаты ; MATCH( TRUE ; ISNUMBER( SEARCH ( вещи ; B5 )); 0 ))

Эта формула использует два названных диапазона: E5: E8 называется «вещи» и F5: F8 называется «Результаты». Убедитесь, что вы используете диапазоны имен с одинаковыми именами (на основе ваших данных). Если вы не хотите использовать именованные диапазоны, используйте абсолютные ссылки вместо этого.

Ссылка на это место страницы:
#punk10

{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА(диап ); 0 ) }

{ = MATCH( TRUE ; ISERROR(диап ); 0 ) }

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

В приведенном примере формула:

{ = ПОИСКПОЗ( ИСТИНА ; ЕОШИБКА( B4: B11 ); 0 ) }

{ = MATCH( TRUE ; ISERROR( B4:B11 ); 0 ) }

Работая изнутри, функция ЕОШИБКА возвращает значение ИСТИНА, если значение является признанной ошибкой, и ЛОЖЬ, если нет.

Когда дается диапазон ячеек (массив ячеек) функция ЕОШИБКА будет возвращать массив истина/ложь значений. В примере, это результирующий массив выглядит следующим образом:

{ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ЛОЖЬ; ЛОЖЬ}

Обратите внимание, что 6-е значение (что соответствует 6-й ячейке в диапазоне) истинно, так как ячейка В9 содержит #Н/A.

Ссылка на это место страницы:
#punk11

=ИНДЕКС ( данные; ПОИСКПОЗ( поиск ; значения ) + 1 )

=INDEX ( данные; MATCH( поиск ; значения ) + 1 )

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

=ИНДЕКС ( данные; ПОИСКПОЗ( поиск ; значения ) + 1 )

=INDEX ( данные; MATCH( поиск ; значения ) + 1 )

Ссылка на это место страницы:
#punk12

{ = ОБЪЕДИНИТЬ ( «;» ; ИСТИНА ; ЕСЛИ( диапазон1 = E5 ; диапазон2 ; «» )) }

{ = ОБЪЕДИНИТЬ ( «;» ; TRUE ; IF( диапазон1 = E5 ; диапазон2 ; «» )) }

Для поиска и извлечения нескольких совпадений, разделенных запятыми (в одной ячейке), вы можете использовать функцию ЕСЛИ с функцией ОБЪЕДИНИТЬ.

{ = ОБЪЕДИНИТЬ( «;» ; ИСТИНА ; ЕСЛИ( группа = E5 ; имя ; «» )) }

Эта формула использует «имя» — именованный диапазон (B5: B11) и «группа» — (C5: C11).

Ссылка на это место страницы:
#punk13

{ = ПОИСКПОЗ( «*» & номер & «*» ; ТЕКСТ( диапазон ; «0» ); 0 ) }

{ = MATCH( «*» & номер & «*» ; TEXT( диапазон ; «0» ); 0 ) }

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

Excel поддерживает символы подстановки «*» и «?». Тем не менее, если вы используете специальные символы с номером, вы будете преобразовывать числовое значение в текстовое значение. Другими словами, «*» & 99 & «*» = «* 99 *» (текстовая строка).

Если попытаться найти текстовое значение в диапазоне чисел, совпадение завершится неудачно.

Одно из решений заключается в преобразовании чисел в диапазоне поиска для текстовых значений, а затем сделать нормальный поиск с ПОИСКПОЗ, ВПР и т.д.

Другой способ, чтобы преобразовать числа в текст, чтобы сцепить пустую строку. Эта формула работает так же, как выше формуле:

= ПОИСКПОЗ ( «*» & Е5 & «*» ; В5: В10 & «» ; 0 )

= MATCH ( «*» & Е5 & «*» ; В5: В10 & «» ; 0 )

Ссылка на это место страницы:
#punk14

Если вы хотите получить информацию из таблицы на основе частичного совпадения, вы можете сделать это с помощью ВПР в режиме точного соответствия, и групповые символы.

В примере формула ВПР выглядит следующим образом:

=ВПР($H$2&»*»;$B$3:$E$12;2;0)

=VLOOKUP($H$2&»*»;$B$3:$E$12;2;0)

В этой формуле, значение представляет собой именованный диапазон, который относится к Н2, а также данные , представляет собой именованный диапазон , который относится к B3: E102. Без названных диапазонов, формула может быть записана следующим образом:

Ссылка на это место страницы:
#punk15

= ПОИСКПОЗ ( «* текст *» ; диапазон; 0 )

= MATCH ( «* текст *» ; диапазон; 0 )

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

=ПОИСКПОЗ(«*»&E6&»*»;B5:B10;0)

=MATCH(«*»&E6&»*»;B5:B10;0)

Функция ПОИСКПОЗ возвращает позицию или «индекс» в первом совпадении на основании значения поиска в диапазоне.

ПОИСКПОЗ поддерживает подстановочное согласование со звездочкой «*» (один или несколько символов) или знаком вопроса «?» (один символ), но только тогда, когда третий аргумент, тип_сопоставления, установлен в ЛОЖЬ или ноль.

Ссылка на это место страницы:
#punk16

Файлы статей доступны только зарегистрированным пользователям.

1. Введите свою почту

2. Нажмите Зарегистрироваться

3. Обновите страницу
Вместо этого блока появится ссылка для скачивания материалов.

Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель — помочь вам эффективнее работать в Excel. 

Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.

Подписывайтесь на нас в соц.сетях:

Поиск последнего повтора в MS EXCEL

​Смотрите также​ ВПР».​ наименьшего, а здесь​ списке:​ элемента в наборе​ Gling!​: ПОИСК ПОСЛЕДНЕГО ЗНАЧЕНИЯ​ столбца извлечь последнее​ используется функция СЧЁТЗ,​ в качестве значения​Очистить все​ выбрать.​ и нажмите Сброс​ эта статья была​ содержащую последний повтор​ функции ВПР() с​Дату продажи (ячейка​Рассмотрим таблицу продаж, состоящую​Так, в предыдущем примере​

​ — есть выбор.​Если в качестве искомого​​ значений. Чаще всего​​Работает!​ посмотрите здесь​

Задача

​ значение по​ которая возвращает количество​ для отдельной ячейки.​.​

Решение

​Совет:​ последней ячейки, сняв​ вам полезна. Просим​ (т.е. последнюю продажу​

​ критерием ИСТИНА (приблизительное​​D7​​ из столбцов Дата​ получить не номер,​

​Например, нам нужно выбрать​ значения задать звездочку,​ она применяется для​Я хотел повысить​StewArt​мере появления значений​ непустых ячеек в​Схематический регистр товаров, выданных​Сохраните лист.​ Можно также щелкнуть заголовок​ все форматирование, могут​ вас уделить пару​​ в заданный день):​​ совпадение) :​

​) будем выбирать с​ продажи и Сумма.​ а название модели​ генератор из прайс-листа​ то функция будет​
​ поиска порядкового номера​

​ вам репутацию ,​: Доброго времени суток!​ в ячейках столбца​ диапазоне. Соответственно это​ с магазина:​Закройте лист.​

​ первого столбца и​ быть применены в​ секунд и сообщить,​=СУММПРОИЗВ(МАКС((D7=Весь_диапазон_Дат)*(СТРОКА(Весь_диапазон_Дат))))​=ВПР(D7;A7:B41;2;ИСТИНА)​
​ помощью Выпадающего списка.​

​ Т.к. в день​ генератора можно очень​ для расчетной мощности​ искать первую ячейку​ ячейки в диапазоне,​ но у меня​Помогите пожалуйста.​ ( на листе1​ же число равно​Чтобы иметь возможность постоянно​При открытии книги, последнюю​ нажмите клавиши CTRL​ пустые строки или​ помогла ли она​Формула разместим в ячейке​В случае повторяющихся значений​

​Это будет гарантировать, что​ может быть несколько​ легко:​ в 47 кВт.​ с текстом и​ где лежит нужное​ пишет что Форма​Как найти предпоследнее​ столбце А каждая​

Альтернативное решение

​ номеру последней непустой​ наблюдать, какой товар​ ячейку данных должен​ + SHIFT +​ столбцы между данными​ вам, с помощью​
​E10​

​ функция ВПР() с​​ в качестве критерия​​ продаж, то столбец​Ну, и поскольку Excel​ Если последний аргумент​​ выдавать её позицию.​​ нам значение.​ заполнена неправильно​ значение в столбце​​ ячейка столбца имеет​​ строки в столбце​ зарегистрирован последним, в​

​ быть последнюю ячейку​ END.​ и последнюю ячейку.​ кнопок внизу страницы.​
​. Этапы вычислений можно​

excel2.ru

Поиск и сброс последней ячейки на листе

​ критерием ИСТИНА возвращает​​ для поиска будут​ с датами содержит​ внутри хранит и​ задать равным 1​ Для поиска последней​Синтаксис этой функции следующий:​_Boroda_​ с фамилиями? И​ свою формулу) .​ B и используется​ отдельную ячейку E1​ на листе.​Чтобы выбрать все строки​Чтобы найти последнюю ячейку,​ Для удобства также​ легко увидеть с​ наибольшее найденное значение,​ введены только даты​ повторы. Задав в​ обрабатывает даты как​ и отсортировать таблицу​

​ текстовой ячейки можно​=ПОИСКПОЗ(Что_ищем; Где_ищем; Режим_поиска)​: и еще​ за два до​ На лист2​ как второй аргумент​ введем формулу:​За определенный период времени​ под последней строкой,​ содержащую данные или​ приводим ссылку на​ помощью клавиши​ которое меньше или​ из таблицы. Т.к.​ качестве критерия поиска​ числа, то подобный​ по возрастанию, то​

​ изменить третий аргумент​где​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(D$2:D$25;СЧЁТЗ(D2:D$25))​ последнего? И за​в ячейку А1.​ для функции ИНДЕКС,​Результат выполнения формулы для​ ведется регистр количества​ содержащей данные, щелкните​ форматирование, щелкните в​ оригинал (на английском​

Найдите последнюю ячейку, содержащую данные или форматирование на листе

  • ​F9​ равно, чем искомое​ даты в таблице​ дату, найдем номер​ подход на 100%​ мы найдем ближайшую​

​Режим_поиска​​Что_ищем​в F4 и​ три до последнего?​Алексей матевосов (alexm)​ которая сразу возвращает​ получения последнего значения:​ проданного товара в​

Удалить все форматирование между последнюю ячейку и данными

  1. ​ заголовок первой строки,​ любом месте листа​

    • ​ языке) .​(выделите в Строке​ значение. Т.к. перечень​ повторяются, а Выпадающий​ строки, в которой​ работает и с​ наименьшую по мощности​с нуля на​- это значение,​ тянем вниз​

      ​Как найти последнее​​: В ячейку А1​ последнее значение столбца​Разбор принципа действия формулы​ магазине. Необходимо регулярно​ удерживая нажатой клавишу​

    • ​ и нажмите клавиши​При сохранении книги Microsoft​ формул, например, выражение​ дат сортирован по​ список не должен​ содержится дата и​ датами. Например, мы​ модель (​ минус 1:​

      ​ которое надо найти​​StewArt​ я знаю: =ПРОСМОТР(«ЯЯЯ»;D2:D49)​ на лист2 вставьте​ B в отдельной​ для поиска последнего​

  2. ​ отслеживать последний выданный​​ CTRL и нажмите​​ CTRL + END.​ Excel сохраняет только​​ D2=Весь_диапазон_Дат, нажмите​​ возрастанию и искомое​ содержать повторы, то​​ сумма последней продажи​​ можем легко определить​Изображение кнопки​Зверь​​Числа и пустые ячейки​​Где_ищем​

  3. ​: Спасибо Знатокам!​

  4. ​Пример в приложении.​

    ​ одну из двух​ ячейке E1.​ значения в столбце:​ из магазина товар.​

support.office.com

Как получить последнее значение в столбце таблицы Excel

​ кнопку строка заголовков​Примечание:​ часть каждого листа,​F9​ значение заведомо имеется​ для источника строк​ (т.е. последний повтор​ на каком этапе​):​ в этом случае​- это одномерный​kondp2008​gling​ формул​Внимание! Все записи в​​ Для этого нужно​ строк, которые вы​ Чтобы выделить очень последнюю​ содержащую данные или​, вместо формулы отобразится​ в списке, то​ Выпадающего списка сформируем​ даты, указанной в​ сейчас находится наш​Если же третий аргумент​

Поиск последнего значения в столбце Excel

​ игнорируются.​ диапазон или массив​

Товарный регистр.

​: Добрый день​: Думаю Индекс(поиспоз(просмотор(яяя))-1)=предпоследнее значение.​1. =ИНДЕКС (Лист1!A1:A100;ПОИСКПОЗ​ столбце B должны​Главную роль берет на​

​ отобразить последнюю запись​ хотите выбрать.​

Последнее значение в столбце B.

​ ячейку в строке​ форматирование. Пустые ячейки​ ее результат).​

​ найденное значение как​

​ в столбце​ критерии). Найдем сумму​ проект:​ равен -1 и​Если последний аргумент задать​ (строка или столбец),​Имеется таблица данных,​ сам не пробовал​ (1;ИНДЕКС (—(Лист1!A1:A100=»»);0);0)-1) «обычная​ быть неразрывны (без​ себя функция =ИНДЕКС(),​ в столбце наименования​Совет:​ или столбце, нажмите​ могут содержать форматирование,​А сумму последней продажи​ раз и будет​H​ первой и последней​Принципиальное ограничение функции​ таблица отсортирована по​ равным 1 или​ где производится поиск​ в порядке возрастания​ может я не​ формула»​ пустых ячеек до​ которая должна возвращать​ товаров. Чтобы просто​ Можно также щелкнуть заголовок​ клавишу END и​

​ которое вызывает последнюю​ в заданный день​ последним повтором даты,​список Уникальных значений.​ продажи в этот​

​ПОИСКПОЗ​ убыванию, то мы​ -1, то можно​Режим_поиска​ только время, остальные​ прав.​2. =ИНДЕКС (Лист1!A1:A100;ПОИСКПОЗ​

exceltable.com

Поиск последнего значения в excel

​ последнего значения).​ содержимое ячейки таблицы​ посмотреть на последнее​ первой строки и​ нажмите клавишу Стрелка​ ячейку в строке​ можно найти с​ указанной в качестве​
​Сумму первой продажи найдем​ день.​состоит в том,​ найдем ближайшую более​ реализовать поиск ближайшего​- как мы​ данные в произвольной​
​dadmarat​

​ (1;—(Лист1!A1:A100=»»);0)-1) формула массива.​​Стоит отметить что данная​ где пересекаются определенная​ значение столбца, достаточно​ нажмите клавиши CTRL​
​ вправо или Стрелка​ или столбце выходящих​ помощью функции ИНДЕКС():​
​ критерия.​ с помощью стандартной​Пусть таблица продаж размещена​ что она умеет​ мощную модель (​

​ наименьшего или наибольшего​​ ищем: точно (0),​
​ форме​: Один из множества​ Завершить ее ввод​ формула является динамической.​ строка и столбец.​ переместить курсор на​

​ + SHIFT +​​ вниз.​ диапазон ячеек, содержащий​

Найти предпоследнее значение в столбце (Формулы)

​=ИНДЕКС(B7:B41;E10-СТРОКА(B6))​​В файле примера с​
​ функции ВПР() с​
​ в диапазоне​ искать только в​Бомба​ числа. Таблица при​ с округлением в​Как по​
​ вариантов.​ нажатием трех клавиш​
​ При добавлении новых​

​ В качестве первого​​ любую его ячейку​ END.​Выполните одну из указанных​ данные. Это вызывает​

​Примечание:​​ помощью Условного форматирования​ критерием ЛОЖЬ (точное​

​A7:B41​​ одномерных массивах (т.е.​​):​
​ этом обязательно должна​
​ большую строну (-1)​

​заданному условию​​Rustem​

​ Ctrl+Shift+Enter​​ записей в столбец​ аргумента функции ИНДЕКС​ и нажать комбинацию​
​На вкладке «​
​ ниже процедур.​ размер файла книги​Мы стараемся как​ серым фоном выделены​ совпадение) :​:o

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

​формулой вытянуть​​:​:)

excelworld.ru

Поиск последнего значения по условию (Формулы/Formulas)

​Александр​​ B результат в​
​ выступает неизменяемая константа,​ горячих клавиш CTRL​Главная​Чтобы выделить все столбцы​ превышает необходимые и​
​ можно оперативнее обеспечивать​​ строки, содержащие информацию​​=ВПР(D7;A7:B41;2;ЛОЖЬ)​​ по возрастанию.​​ но никто не​ используется в связке​

​ возрастанию или убыванию​​ сторону (1)​
​последнее заполненное значение​

excelworld.ru

Поиск позиции элемента в списке с ПОИСКПОЗ (MATCH)

​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(D:D;ПОИСКПОЗ(«ЯЯЯЯ»;D:D))​: Готовой функции нет.​ ячейке E1 будет​ а именно ссылка​ + стрелка в​» в группе​ справа от последнего​ может привести к​ вас актуальными справочными​ о продажах в​

​В случае повторяющихся значений​

​Определим Сумму первой и​

​ запрещает использовать сразу​

  • ​ с другой крайне​​ соответственно. В общем​Давайте рассмотрим несколько полезных​
  • ​для каждого заданного​​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(D:D;ПОИСКПОЗ(«ЯЯЯЯ»;D:D)-1)​Придётся написать функцию​ автоматически обновляться.​ на целый столбец​
  • ​ низ (↓). Но​​ «​ столбца, который содержит​ более распечатанные страницы​ материалами на вашем​ указанный день. Строка​ функция ВПР() с​

​ последней продажи в​ два​ полезнойфункцией -​

Точный поиск

​ и целом, это​ вариантов ее применения​ значения​и т.д.​ извлечения на VBA​Имеется книга excel с​

ПОИСКПОЗ в Excel

Поиск первой или последней текстовой ячейки

​ (B:B). Во втором​ чаще всего пользователю​Редактирование​ данные, щелкните заголовок​ при печати листа​ языке. Эта страница​ с последней продажей​ критерием ЛОЖЬ возвращает​ заданный день (см.​​ПОИСКПОЗ​​ИНДЕКС​ чем-то похоже на​

Поиск первого или последнего текста

​ на практике.​_Boroda_​Pelena​

Поиск ближайшего числа или даты

​ и заставить её​ рабочими листами 1​ аргументе находится номер​ приходится с последним​» щелкните стрелку​ первого столбца, удерживайте​ или книги.​ переведена автоматически, поэтому​ в этот день​ первое (сверху) найденное​ файл примера)​а вложенных в​(INDEX)​ интервальный просмотр у​​Классический сценарий — поиск​​: Так нужно?​: Ещё пара вариантов​ выполняться «при каждом​ и 2,на листе1​

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

ПОИСКПОЗ поиск ближайшего наименьшего числа

​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПРОСМОТР(2;1/(J:J=»Ц-4″);K:K)​StewArt​ появлении значений в​ столбце А есть​ заполненным значением столбца​ различные вычислительные операции​​Очистить​​ и щелкните заголовки​

ПОИСКПОЗ поиск ближайшего наибольшего

Связка функций ПОИСКПОЗ и ИНДЕКС

​ найдите последнюю ячейку,​ содержать неточности и​Решить задачу можно также​ нам и требуется.​​ диапазон Весь_диапазон_Дат как​ ​, чтобы реализовать двумерный​​ данные из диапазона​ВПР (VLOOKUP)​ для нахождения позиции​Основное назначение этой функции​: Спасибо вам, Dadmarat,​

​ ячейках столбца A»​ данные А1:A50 .​ B. Чтобы узнать​ в Excel. Поэтому​кнопки​

ПОИСКПОЗ и ИНДЕКС

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

ПОИСКПОЗ и даты

​ Rustem, Pelena и​​Abram pupkin​​ Как из этого​ этот номер строки​ лучше его получить​и нажмите кнопку​ которые вы хотите​ форматирование на листе​ нас важно, чтобы​ которая определит строку​​ с помощью стандартной​​ =лист1!$A$7:$A$41​​ и столбцу одновременно:​​ реализуя, фактически, «левый​ только поиск ближайшего​ или числа в​

Двумерный поиск с ПОИСКПОЗ и ИНДЕКС

planetaexcel.ru

​ искать позицию заданного​


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

Рассмотрим диапазон значений, в который регулярно заносятся новые данные.

Диапазон без пропусков и начиная с первой строки

В случае, если в столбце значения вводятся, начиная с первой строки и без пропусков, то определить номер строки последней заполненной ячейки можно формулой:

=СЧЁТЗ(A:A))

Формула работает для числовых и текстовых диапазонов (см.

Файл примера

)

Значение из последней заполненной ячейки в столбце выведем с помощью функции

ИНДЕКС()

:

=ИНДЕКС(A:A;СЧЁТЗ(A:A))

Ссылки на целые столбцы и строки достаточно ресурсоемки и могут замедлить пересчет листа. Если есть уверенность, что при вводе значений пользователь не выйдет за границы определенного диапазона, то лучше указать ссылку на диапазон, а не на столбец. В этом случае формула будет выглядеть так:

=ИНДЕКС(A1:A20;СЧЁТЗ(A1:A20))

Диапазон без пропусков в любом месте листа

Если список, в который вводятся значения расположен в диапазоне

E8:E30

(т.е. не начинается с первой строки), то формулу для определения номера строки последней заполненной ячейки можно записать следующим образом:

=СЧЁТЗ(E9:E30)+СТРОКА(E8)

Формула

СТРОКА(E8)

возвращает номер строки заголовка списка. Значение из последней заполненной ячейки списка выведем с помощью функции

ИНДЕКС()

:

=ИНДЕКС(E9:E30;СЧЁТЗ(E9:E30))

Диапазон с пропусками (числа)

В случае

наличия пропусков

(пустых строк) в столбце, функция

СЧЕТЗ()

будет возвращать неправильный (уменьшенный) номер строки: оно и понятно, ведь эта функция подсчитывает только значения и не учитывает

пустые

ячейки.

Если диапазон заполняется

числовыми

значениями, то для определения номера строки последней заполненной ячейки можно использовать формулу

=ПОИСКПОЗ(1E+306;A:A;1)

. Пустые ячейки и текстовые значения игнорируются.

Так как в качестве просматриваемого массива указан целый столбец (

A:A

), то функция

ПОИСКПОЗ()

вернет номер последней заполненной строки. Функция

ПОИСКПОЗ()

(с третьим параметром =1) находит позицию наибольшего значения, которое меньше или равно значению первого аргумента (1E+306). Правда, для этого требуется, чтобы массив был

отсортирован

по возрастанию. Если он не отсортирован, то эта функция возвращает позицию последней заполненной строки столбца, т.е. то, что нам нужно.

Чтобы вернуть значение в последней заполненной ячейке списка, расположенного в диапазоне

A2:A20

, можно использовать формулу:

=ИНДЕКС(A2:A20;ПОИСКПОЗ(1E+306;A2:A20;1))

Диапазон с пропусками (текст)

В случае необходимости определения номера строки последнего

текстового

значения (также при наличии пропусков), формулу нужно переделать:

=ПОИСКПОЗ(«*»;$A:$A;-1)

Пустые ячейки, числа и текстовое значение

Пустой текст

(«») игнорируются.

Диапазон с пропусками (текст и числа)

Если столбец содержит и

текстовые и числовые значения

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

=МАКС(ЕСЛИОШИБКА(ПОИСКПОЗ(«*»;$A:$A;-1);0); ЕСЛИОШИБКА(ПОИСКПОЗ(1E+306;$A:$A;1);0))

Функция

ЕСЛИОШИБКА()

нужна для подавления ошибки возникающей, если столбец

A

содержит только текстовые или только числовые значения.

Другим универсальным решением является

формула массива

:

=МАКС(СТРОКА(A1:A20)*(A1:A20<>»»))

Или

=МАКС(СТРОКА(A1:A20)*НЕ(ЕПУСТО(A1:A20)))

После ввода

формулы массива

нужно нажать

CTRL + SHIFT + ENTER

. Предполагается, что значения вводятся в диапазон

A1:A20

. Лучше задать фиксированный диапазон для поиска, т.к. использование в

формулах массива

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

Значение из последней заполненной ячейки, в этом случае, выведем с помощью функции

ДВССЫЛ()

:

=ДВССЫЛ(«A»&МАКС(СТРОКА(A1:A20)*(A1:A20<>»»)))

Или

=ДВССЫЛ(«A»&МАКС(СТРОКА(A1:A20)*НЕ(ЕПУСТО(A1:A20))))

Как обычно, после ввода

формулы массива

нужно нажать

CTRL + SHIFT + ENTER

вместо

ENTER

.


СОВЕТ:

Как видно, наличие пропусков в диапазоне существенно усложняет подсчет. Поэтому имеет смысл при заполнении и проектировании таблиц придерживаться правил приведенных в статье

Советы по построению таблиц

.

Понравилась статья? Поделить с друзьями:
  • Поиск последнего значения больше 0 в столбце excel
  • Поиск последнего вхождения строки excel
  • Поиск повторяющихся значений в excel в одной строке
  • Поиск полей в word
  • Поиск повторяющиеся числа в excel