VLOOKUP. Поиск последнего найденного

VLOOKUP. Поиск последнего найденного
Содержимое страницы

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

Области применения

Эта статья будет интересна тем, кто изучает или использует Таблицы Гугл для анализа и поиска данных. Основой примера является функция VLOOKUP. Если вы не знакомы с этой функцией, то необходимо обратиться к справке ВПР (VLOOKUP). Также стоит знать и о SORT.

Постановка задачи

Дан список с повторяющимися идентификаторами. Задан список поиска идентификаторов. Необходимо найти все последние значения из повторяющегося списка.

vlookup поиск последнего найденного задача

Формула для тех, кто все уже знает. Если данные находятся на листе Набор данных, то

vlookup поиск последнего найденного решение

=ARRAYFORMULA(IFERROR(
  VLOOKUP(
    A:A;
    SORT('Набор данных'!A:C;ROW('Набор данных'!A:A););3;0);
))

Как это работает

Ключевым моментом, как можно заметить, является выражение обратной сортировки данных

SORT('Набор данных'!A:C;ROW('Набор данных'!A:A);0);3;0)

Эта техника используется для обращения списка данных в обратном направлении. Следующий пример хорошо это иллюстрирует

sort реверс обратная сортировка данных

=SORT(A2:B5;ROW(A2:A5);FALSE)

Рассмотрим работу VLOOKUP для исходного массива и для обращенного.

При поиске в исходном массиве мы получаем первое соответствующее значение

vlookup пример формулы

При поиске в обращенном массиве мы получаем также первое соответствующее значение

vlookup пример формулы сортированного массива

Достаточно применить это знание для создания формулы для всего массива

Сортируем

sort реверс обратная сортировка данных arrayformula

=SORT('Набор данных'!A:C;ROW('Набор данных'!A:A);0)

Применяем ARRAYFORMULA для VLOOKUP

впр arrayformula

=ARRAYFORMULA(VLOOKUP(A:A;F:H;3;))

Итоговое решение

vlookup поиск последнего найденного решение

=ARRAYFORMULA(IFERROR(
  VLOOKUP(
    A:A;
    SORT('Набор данных'!A:C;ROW('Набор данных'!A:A););3;0);
))

Важные замечания

Можно заметить, что в некоторых формулах SORT или VLOOKUP используются аргументы порядка сортировки TRUE/FALSE, но в итоговой формуле их нет, вместо этого на месте аргумента пустота (отмечено на картинке)

пропущенные аргументы

Эта особая практика, которая дает понять функции, что иы не ожидаем значения в этом параметре. Функция должна расценивать это как FALSE или 0.

Ссылки