Вы можете сделать это с помощью повторяющейся формулы массива. Это не так красиво, но вы получите то, что хотите. Введите следующее и введите, нажав Ctrl+Shift+Enter.
=INDEX(A:A,MAX(IF(C:C="Norway",IF(G:G=MAX(IF(C:C="Norway",G:G,-1)),ROW(G:G),-1),-1)))
Что это делает (помимо того, что вы оцените SQL):
IF(C:C="Norway",G:G,-1)
представляет массив длиной столбца C, который содержит значение из столбца G, если страна для этой записи - Норвегия, и -1
если страна не Норвегия.
MAX(IF(C:C="Norway",G:G,-1))
возвращает максимальное значение из этого массива, которое должно быть максимальным количеством медалей, выигранных норвежцем в вашей таблице.
IF(C:C="Norway",IF(G:G=MAX(IF(C:C="Norway",G:G,-1)),ROW(G:G),-1),-1)
проверяет все строки на наличие двух условий: во-первых, спортсмен является норвежцем, а во-вторых, что количество золотых медалей, завоеванных этим спортсменом, равно максимальному числу, выигранному норвежцем. Результатом этого выражения является массив длиной столбца C, который содержит номер строки, если оба условия выполнены, или -1
если они не выполнены.
MAX(IF(C:C="Norway",IF(G:G=MAX(IF(C:C="Norway",G:G,-1)),ROW(G:G),-1),-1))
возвращает максимальное значение из этого массива. Это будет номер строки матча. Если окажется, что более одной строки соответствует критериям, будет возвращена строка с наибольшим номером строки.
- Наконец,
INDEX(A:A,MAX(IF(C:C="Norway",IF(G:G=MAX(IF(C:C="Norway",G:G,-1)),ROW(G:G),-1),-1)))
возвращает значение (имя) из столбца A в номере строки, идентифицированной как отвечающая критериям.
Быстрое слово предупреждения:
Помните, что использование полных ссылок на столбцы, например, A:A
, в формуле массива окажет заметное негативное влияние на скорость вычисления. Если это вообще возможно, вам следует использовать ограниченные диапазоны, например, A1:A10
, особенно если вы создаете несколько из этих формул в своей рабочей книге.