![](https://cdn.wiki-base.com/9854438/excel_formula_get_nth_match__2.png.webp)
Обща формула
=SMALL(IF(logical,ROW(list)-MIN(ROW(list))+1),n)
Обобщение
За да получите позицията на n-то съвпадение (например 2-ра съвпадаща стойност, 3-та съвпадаща стойност и т.н.), можете да използвате формула, базирана на функцията SMALL. В показания пример формулата в G5 е:
=SMALL(IF(list=E5,ROW(list)-MIN(ROW(list))+1),F5)
Тази формула връща позицията на втората поява на "червено" в списъка.
Забележка: това е формула на масив и трябва да се въведе с control + shift + enter.
Обяснение
Тази формула използва посочения диапазон "списък", който е диапазонът B5: B11.
Ядрото на тази формула е функцията SMALL, която просто връща n-тата най-малка стойност в списък със стойности, които съответстват на номера на редове. Номерата на редовете са „филтрирани“ от израза IF, който прилага логиката за съвпадение. Работейки отвътре навън, IF сравнява всички стойности в посочения диапазон "списък" със стойността в B5, което създава масив като този:
(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE)
"Стойността, ако е вярно" е набор от относителни номера на редове, създадени от този код:
ROW(list)-MIN(ROW(list))+1
Резултатът е масив като този:
(1;2;3;4;5;6;7)
Вижте тази страница за пълно обяснение.
С логически тест, който връща масив от резултати, функцията IF действа като филтър - оцеляват само номера на редове, които съответстват на съвпадение, а останалите връщат FALSE. Резултатът, върнат от IF, изглежда така:
(1;FALSE;FALSE;FALSE;5;FALSE;7)
Числата 1, 5 и 7 съответстват на местоположението на "червено" в списъка.
И накрая, SMALL връща n-тия най-малък елемент в този списък, игнорирайки FALSE стойности. В примера F5 съдържа 2, така че SMALL връща втората най-малка стойност: 5.
Вземете свързана стойност
След като получите относителната позиция на n-то съвпадение, можете да използвате тази позиция с функцията INDEX, за да върнете свързана стойност.