
Všeobecný vzorec
=SMALL(IF(logical,ROW(list)-MIN(ROW(list))+1),n)
Zhrnutie
Ak chcete získať pozíciu n-tej zhody (napríklad 2. zhodná hodnota, 3. zhodná hodnota atď.), Môžete použiť vzorec založený na funkcii MALÉ. V zobrazenom príklade je vzorec v G5:
=SMALL(IF(list=E5,ROW(list)-MIN(ROW(list))+1),F5)
Tento vzorec vráti pozíciu druhého výskytu „červenej“ v zozname.
Poznámka: toto je vzorec poľa a musí sa zadávať pomocou klávesov Control + Shift + Enter.
Vysvetlenie
Tento vzorec používa pomenovaný rozsah „zoznam“, ktorý je rozsahom B5: B11.
Jadrom tohto vzorca je funkcia SMALL, ktorá jednoducho vráti n-tú najmenšiu hodnotu v zozname hodnôt, ktoré zodpovedajú číslam riadkov. Čísla riadkov boli „filtrované“ príkazom IF, ktorý aplikuje logiku na zhodu. Pri práci zvnútra von IF porovnáva všetky hodnoty v pomenovanom rozsahu „list“ s hodnotou v B5, čím sa vytvára pole ako je toto:
(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE)
„Hodnota, ak je to pravda, je sada relatívnych čísel riadkov vytvorených týmto kódom:
ROW(list)-MIN(ROW(list))+1
Výsledkom je pole ako je toto:
(1;2;3;4;5;6;7)
Na tejto stránke nájdete úplné vysvetlenie.
Pri logickom teste, ktorý vráti pole výsledkov, funguje funkcia IF ako filter - prežijú iba čísla riadkov, ktoré zodpovedajú zhode, zvyšok vráti hodnotu FALSE. Výsledok vrátený IF vyzerá takto:
(1;FALSE;FALSE;FALSE;5;FALSE;7)
Čísla 1, 5 a 7 zodpovedajú umiestneniu „červenej“ v zozname.
Nakoniec funkcia SMALL vráti n-tú najmenšiu položku v tomto zozname a ignoruje FALSE hodnoty. V príklade F5 obsahuje 2, takže funkcia SMALL vráti druhú najmenšiu hodnotu: 5.
Získajte súvisiacu hodnotu
Keď získate relatívnu pozíciu n-tej zhody, môžete ju pomocou funkcie INDEX vrátiť príslušnú hodnotu.