Я думаю, у меня есть формула, которая дает то, что вы хотите. Это не красиво, и я уверен, что это можно сделать проще, но это работает:
=query( query(
{ arrayformula( {ROW(A1:A) } ),
query(A1:D,"select A, B, C, D",1)
} , "select * order by Col1 desc",1),
"select Col2, Col3, Col4, Col5
where (Col2 ='John' or Col3 = 'John')
order by Col1 desc limit 3",1)
По сути, это добавляет номер строки в качестве дополнительного столбца к данным, чтобы мы могли отсортировать данные в обратном порядке по номеру строки. Затем мы запрашиваем результат, чтобы найти первые три вхождения «Иоанна», либо в столбце A, либо в столбце B.
Вот образец листа: https://docs.google.com/spreadsheets/d/1-mhTb5Cpp3D-1OltlmCfwlmM-vc2OknHxfJAyHD7BjI/edit?usp=sharing
Благодарим Эрика Тайлера за предыдущий ответ на другой вопрос о том, как добавить номер строки в запрос.
Редактировать: Обновлен лист, теперь он предоставляет СУММУ баллов Джона (или любого игрока) из последние три матча. Это может быть объединено с предыдущей формулой, если вы хотите разместить одну формулу где-нибудь. Или у вас будет список всех игроков, и вы хотите, чтобы их последние три счета были рядом с каждым из их имен?
Если я смогу упростить формулу, я обновлю ее здесь.
Дайте мне знать, если вам нужно что-то большее, или если это ответило на ваш вопрос.