ВПР начиная с конца диапазона

В Google Sheets у меня есть таблица, которая выглядит так:

 A      B    
ID1  data 123
ID2  data 234
ID1  data 456
ID2  data 567

Я хочу получить data 567 за ID2. Используя Match(...,0) или VLOOKUP(...,FALSE), я получаю первое значение для ID2, но мне нужно последнее.

В этом ответе используется =LOOKUP(2,1/(A1:A4=D1),B1:B4), но я видел, что нотация 1/(A1:A4=D1) работает только в Excel, а не в листах Google.

Эта ссылка предлагает использовать MATCH(...,1), но это работает только для отсортированных ключей, которых у меня нет!

Это решение VBA, вероятно, также не будет работать в Google Таблицах...

Я могу добавить дополнительные скрытые столбцы (может столбец IsLast?), это поможет.


person Jonathan    schedule 08.08.2014    source источник


Ответы (2)


Попробуйте эту формулу в документах Google

=arrayformula(index(B:B,max(if(A1:A4=D1,row(A1:A4)))))

person barry houdini    schedule 08.08.2014
comment
Работает! Никогда раньше не слышал о arrayformula, узнаю о нем больше. - person Jonathan; 09.08.2014
comment
В итоге я поместил часть max(...) в отдельный столбец с именем LastIndex и использовал его несколько раз (для случаев, когда он не найден и т. д.). - person Jonathan; 09.08.2014

Я сделал это в листах Google: =VLOOKUP(max(A:A),B:B,1)

person kaufman    schedule 08.08.2014
comment
О! вы правы - мой лист имеет числовое значение в столбце A. На самом деле решение @barry-houdini выглядит намного лучше: ‹img src=imgur.com/KG9Zo2B - person kaufman; 08.08.2014