#google-sheets
Вопрос:
Я пытаюсь отобразить отфильтрованную версию данных листа 1 в листе 2:
Лист1:
Лист2:
Я использовал vlookup в столбцах листа 2 C,D,E для отображения столбцов листа 1 B,D,A соответственно.
т. е. Лист 2 — Колонка C
=vlookup(A2,Sheet1!A3:D,3)
но я не уверен, как заставить его работать с дубликатами и получать только последнюю версию.
Я попытался использовать vlookup в результате запроса, но это не сработало (потому что я ссылался на ссылку?)
=sortn(query(Sheet1!A2:D6,"select * where A is not null order by B,A desc"),99^99, 2, 2, true)
Как я могу применить vlookup, чтобы получить последнее совпадение повторяющихся строк? Если это невозможно, как я могу это сделать (если возможно, без необходимости добавлять дополнительные листы)
Ответ №1:
Если бы я хотел использовать для этого Vlookup и запрос, я бы получил что-то вроде этого:
=ArrayFormula(vlookup(query(B2:B,"select min(B) where B is not null group by B label min(B) ''"),
query(A2:D,"select B,A,C D,C,D where A is not null order by B,A"),{2,1,3,4,5}))
таким образом, первый запрос получает уникальные значения столбца B, а второй запрос получает исходные данные плюс общее количество (C D), отсортированное в порядке возрастания фамилии, а затем метки времени. Затем vlookup находит последнее совпадающее значение для каждого имени семьи, которое в данном случае является последним. Вы также можете сортировать по убыванию метки времени и использовать точную форму vlookup, чтобы найти первое вхождение — возможно, немного медленнее:
=ArrayFormula(vlookup(query(B2:B,"select min(B) where B is not null group by B label min(B) ''"),
query(A2:D,"select B,A,C D,C,D where A is not null order by B,A desc"),{2,1,3,4,5},0))
На самом деле я бы, вероятно, использовал сортировку и сортировку, как, я думаю, вы начали делать в своем вопросе:
=sortn(sort(filter({A2:B,C2:C D2:D,C2:D},A2:A<>""),2,1,1,0),999,2,2,1)
На этот раз он отсортирован по возрастанию фамилии, затем по убыванию метки времени, затем сортировка удаляет дубликаты.
Ответ №2:
использовать в строке 2:
=INDEX(IFNA(VLOOKUP(A2:A, SORT(Sheet1!A:D, ROW(Sheet1!A:D), 0), 3, 0)))