![](https://cdn.wiki-base.com/9854438/excel_formula_get_nth_match__2.png.webp)
Splošna formula
=SMALL(IF(logical,ROW(list)-MIN(ROW(list))+1),n)
Povzetek
Če želite dobiti položaj n-tega ujemanja (na primer 2. ujemajoča se vrednost, 3. ujemajoča se vrednost itd.), Lahko uporabite formulo, ki temelji na funkciji SMALL. V prikazanem primeru je formula v G5:
=SMALL(IF(list=E5,ROW(list)-MIN(ROW(list))+1),F5)
Ta formula vrne položaj drugega pojavljanja "rdečega" na seznamu.
Opomba: to je matrična formula, ki jo je treba vnesti s tipko control + shift + enter.
Pojasnilo
Ta formula uporablja imenovani obseg "seznam", ki je obseg B5: B11.
Jedro te formule je funkcija SMALL, ki preprosto vrne n-to najmanjšo vrednost na seznamu vrednosti, ki ustreza številkam vrstic. Številke vrstic je "filtriral" stavek IF, ki uporablja logiko ujemanja. Če deluje od znotraj navzven, IF primerja vse vrednosti v imenovanem obsegu "seznam" z vrednostjo v B5, ki ustvari matriko, kot je ta:
(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE)
"Vrednost, če je res" je niz relativnih številk vrstic, ki jih ustvari ta koda:
ROW(list)-MIN(ROW(list))+1
Rezultat je matrika, kot je ta:
(1;2;3;4;5;6;7)
Za popolno razlago glejte to stran.
Z logičnim testom, ki vrne niz rezultatov, funkcija IF deluje kot filter - preživijo samo številke vrstic, ki ustrezajo ujemanju, ostale vrnejo FALSE. Rezultat, ki ga vrne IF, je videti takole:
(1;FALSE;FALSE;FALSE;5;FALSE;7)
Številke 1, 5 in 7 ustrezajo mestu "rdeče" na seznamu.
Nazadnje, SMALL vrne n-ti najmanjši element na tem seznamu, pri čemer ne upošteva FALSE vrednosti. V primeru F5 vsebuje 2, zato SMALL vrne 2. najmanjšo vrednost: 5.
Pridobite povezano vrednost
Ko imate relativni položaj n-tega ujemanja, ga lahko s funkcijo INDEX vrnete s pripadajočo vrednostjo.