Формула Excel: имя n-го наибольшего значения с критериями -

Содержание

Общая формула

=INDEX(range,MATCH(LARGE(filtered_range,F5),filtered_range,0))

Резюме

Чтобы получить имя n-го наибольшего значения с критериями, вы можете использовать ИНДЕКС и ПОИСКПОЗ, функцию НАИБОЛЬШИЙ и фильтр, созданный с помощью функции ЕСЛИ. В показанном примере формула в ячейке G5, скопированная вниз, имеет следующий вид:

=INDEX(name,MATCH(LARGE(IF(group="A",score),F5),IF(group="A",score),0))

где имя (B5: B16), группа (C5: C16) и оценка (D5: D16) являются именованными диапазонами. Формула возвращает имя, связанное с 1-м, 2-м и 3-м высшими значениями в группе A.

Примечание. Это формула массива, которую необходимо вводить с помощью Ctrl + Shift + Enter, кроме Excel 365.

Объяснение

Функция НАИБОЛЬШИЙ - это простой способ получить n-е наибольшее значение в диапазоне:

=LARGE(range,1) // 1st largest =LARGE(range,2) // 2nd largest =LARGE(range,3) // 3rd largest

В этом примере мы можем использовать функцию НАИБОЛЬШИЙ, чтобы получить наивысший балл, а затем использовать его как «ключ» для получения имени, связанного с ИНДЕКСОМ и ПОИСКПОЗ. Обратите внимание, что мы выбираем значения n из диапазона F5: F7, чтобы получить 1-й, 2-й и 3-й наивысшие оценки.

Однако в этом случае особенность заключается в том, что нам нужно различать оценки в группе A и группе B. Другими словами, нам нужно применять критерии. Мы делаем это с помощью функции ЕСЛИ, которая используется для «фильтрации» значений перед тем, как они будут оценены с помощью НАИБОЛЬШЕГО. В качестве общего примера, чтобы получить наибольшее значение (то есть 1-е значение) в диапазоне 2, где диапазон 1 = "A", вы можете использовать следующую формулу:

LARGE(IF(range="A",range2),1)

Примечание: при таком использовании IF получается формула массива.

Работая изнутри наружу, первый шаг - получить «1-е» наибольшее значение в данных, связанных с Группой A, с помощью функции НАИБОЛЬШИЙ:

LARGE(IF(group="A",score),F5)

В этом случае значение в F5 равно 1, поэтому мы запрашиваем наивысший балл в группе A. Когда функция ЕСЛИ оценивается, она проверяет каждое значение в названной группе диапазонов . Именованный диапазон баллы предоставляются значение_если_истина. Это генерирует новый массив, который возвращается непосредственно в функцию LARGE:

LARGE((79;FALSE;93;FALSE;83;FALSE;67;FALSE;85;FALSE;69;FALSE),1)

Обратите внимание, что единственные оценки, оставшиеся после фильтра, относятся к группе A. LARGE затем возвращает наивысший оставшийся результат, 93, непосредственно в функцию MATCH в качестве значения поиска. Теперь мы можем упростить формулу до:

=INDEX(name,MATCH(93,IF(group="A",score),0))

Теперь мы видим, что функция ПОИСКПОЗ настроена с использованием того же фильтрованного массива, который мы видели выше. Функция ЕСЛИ снова отфильтровывает нежелательные значения, а часть формулы ПОИСКПОЗ разрешается следующим образом:

MATCH(93,(79;FALSE;93;FALSE;83;FALSE;67;FALSE;85;FALSE;69;FALSE),0)

Поскольку 93 находится на 3-й позиции, ПОИСКПОЗ возвращает 3 непосредственно функции ИНДЕКС:

=INDEX(name,3) // Hannah

Наконец, функция ИНДЕКС возвращает имя в третьей строке «Ханна».

С XLOOKUP

Функцию XLOOKUP также можно использовать для решения этой проблемы, используя тот же подход, который описан выше:

=XLOOKUP(LARGE(IF(group="A",score),F5),IF(group="A",score),name)

Как и выше, LARGE настроен для работы с массивом, отфильтрованным по IF, и возвращает результат 93 в XLOOKUP в качестве значения поиска:

=XLOOKUP(93,IF(group="A",score),name) // Hannah

Массив поиска также создается с использованием IF в качестве фильтра оценок из группы A. С возвращаемым массивом, предоставленным как имя (B5: B16). XLOOKUP возвращает "Ханна" в качестве окончательного результата.

Заметки

  1. Чтобы получить имя n-го значения с критериями (т. Е. Ограничить результаты до группы A или B), вам нужно будет расширить формулу, чтобы использовать дополнительную логику.
  2. В Excel 365 функция ФИЛЬТР - лучший способ динамически отображать верхние или нижние результаты. Этот подход автоматически обрабатывает связи.

Интересные статьи...