Формула Excel: получить n-е совпадение -

Содержание

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

=SMALL(IF(logical,ROW(list)-MIN(ROW(list))+1),n)

Резюме

Чтобы получить позицию n-го совпадения (например, 2-го совпадающего значения, 3-го совпадающего значения и т. Д.), Вы можете использовать формулу, основанную на функции МАЛЕНЬКИЙ. В показанном примере формула в G5:

=SMALL(IF(list=E5,ROW(list)-MIN(ROW(list))+1),F5)

Эта формула возвращает позицию второго вхождения «красного» в списке.

Примечание: это формула массива, и ее нужно вводить с помощью Ctrl + Shift + Enter.

Объяснение

В этой формуле используется именованный диапазон «список», который представляет собой диапазон B5: B11.

Ядром этой формулы является функция МАЛЕНЬКИЙ, которая просто возвращает n-е наименьшее значение в списке значений, соответствующих номерам строк. Номера строк были «отфильтрованы» оператором IF, который применяет логику для сопоставления. Работая изнутри, IF сравнивает все значения в названном диапазоне "list" со значением в B5, что создает такой массив:

(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE)

«Значение, если истинно» - это набор относительных номеров строк, созданных этим кодом:

ROW(list)-MIN(ROW(list))+1

Результатом является такой массив:

(1;2;3;4;5;6;7)

См. Эту страницу для полного объяснения.

При логическом тесте, который возвращает массив результатов, функция ЕСЛИ действует как фильтр - сохраняются только номера строк, соответствующие совпадению, остальные возвращают ЛОЖЬ. Результат, возвращаемый IF, выглядит так:

(1;FALSE;FALSE;FALSE;5;FALSE;7)

Цифры 1, 5 и 7 соответствуют положению «красного» в списке.

Наконец, SMALL возвращает n-й наименьший элемент в этом списке, игнорируя значения FALSE. В этом примере F5 содержит 2, поэтому SMALL возвращает второе наименьшее значение: 5.

Получить связанное значение

Как только у вас есть относительное положение n-го совпадения, вы можете использовать эту позицию с функцией ИНДЕКС для возврата связанного значения.

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