VLOOKUP. Поиск последнего найденного
В этом топике приведен пример получения последнего значения из списка при помощи VLOOKUP
. Это классическая задача, которая часто встречается при работе со срезами последних и групировками по всевозможным признакам. В массиве данных обычно присутствуют повторяющиеся идентификаторы в разрезе сумм или времени.
Области применения
Эта статья будет интересна тем, кто изучает или использует Таблицы Гугл для анализа и поиска данных. Основой примера является функция VLOOKUP
. Если вы не знакомы с этой функцией, то необходимо обратиться к справке ВПР (VLOOKUP)
. Также стоит знать и о SORT
.
Постановка задачи
Дан список с повторяющимися идентификаторами. Задан список поиска идентификаторов. Необходимо найти все последние значения из повторяющегося списка.
Формула для тех, кто все уже знает. Если данные находятся на листе Набор данных
, то
=ARRAYFORMULA(IFERROR(
VLOOKUP(
A:A;
SORT('Набор данных'!A:C;ROW('Набор данных'!A:A););3;0);
))
Как это работает
Ключевым моментом, как можно заметить, является выражение обратной сортировки данных
SORT('Набор данных'!A:C;ROW('Набор данных'!A:A);0);3;0)
Эта техника используется для обращения списка данных в обратном направлении. Следующий пример хорошо это иллюстрирует
=SORT(A2:B5;ROW(A2:A5);FALSE)
Рассмотрим работу VLOOKUP
для исходного массива и для обращенного.
При поиске в исходном массиве мы получаем первое соответствующее значение
При поиске в обращенном массиве мы получаем также первое соответствующее значение
Достаточно применить это знание для создания формулы для всего массива
Сортируем
=SORT('Набор данных'!A:C;ROW('Набор данных'!A:A);0)
Применяем ARRAYFORMULA
для VLOOKUP
=ARRAYFORMULA(VLOOKUP(A:A;F:H;3;))
Итоговое решение
=ARRAYFORMULA(IFERROR(
VLOOKUP(
A:A;
SORT('Набор данных'!A:C;ROW('Набор данных'!A:A););3;0);
))
Важные замечания
Можно заметить, что в некоторых формулах SORT
или VLOOKUP
используются аргументы порядка сортировки TRUE/FALSE
, но в итоговой формуле их нет, вместо этого на месте аргумента пустота (отмечено на картинке)
Эта особая практика, которая дает понять функции, что иы не ожидаем значения в этом параметре. Функция должна расценивать это как FALSE
или 0
.
Ссылки
- Справка ВПР (VLOOKUP)
- Справка SORT
- Примеры в Таблице . Можно сделать копию