
Obecný vzorec
(=SMALL(IF(criteria,values),n))
souhrn
Chcete-li získat 2. nejmenší hodnotu, 3. nejmenší hodnotu, 4. nejmenší hodnotu atd., Kde každá hodnota odpovídá zadaným kritériím, můžete použít maticový vzorec, který používá funkce MALÉ a IF.
V zobrazeném příkladu je vzorec v G7:
(=SMALL(IF(Sex="F",Time),F7))
Kde „Sex“ je pojmenovaný rozsah pro C3: C15 a „Čas“ je pojmenovaný rozsah D3: D15.
Poznámka: toto je maticový vzorec a musí být zadán pomocí kláves Control + Shift + Enter.
Vysvětlení
Funkce SMALL je plně automatická - stačí zadat rozsah a celé číslo pro „n-tý“, abyste určili požadovanou hodnocenou hodnotu.
Problém v tomto případě je, že nechceme, aby SMALL fungoval na každou hodnotu v rozsahu, pouze na hodnoty, které jsou buď mužské nebo ženské (M nebo F). K uplatnění tohoto kritéria použijeme funkci IF, která poskytuje logický test pro „M“ nebo „F“. Protože test aplikujeme na pole hodnot, výsledkem bude také pole. V zobrazeném příkladu , výsledné pole vypadá takto:
(0,00729166666666667; FALSE; 0,00689814814814815; FALSE; 0,00835648148148148; FALSE; FALSE; FALSE; FALSE; 0,00693287037037037; FALSE; FALSE; 0,00672453703703704)
Kde FALSE představuje mužské časy a čísla představují ženské časy. (Časy jako toto jsou zlomkové hodnoty, proto máme pro některé časy tolik desetinných míst).
Funkce SMALL bude automaticky ignorovat TRUE a FALSE hodnoty, takže výsledkem bude n-ta nejmenší hodnota ze sady skutečných čísel v poli.
Chyba bez n-té
Pokud na základě zadaných kritérií neexistuje n-ta nejmenší hodnota, zobrazí se chyba. Tuto chybu můžete zachytit pomocí IFERROR a nahradit jakoukoli hodnotou, která má smysl takto:
(=IFERROR(SMALL(IF(Sex="F",Time),F8),"-"))
Několik kritérií
Chcete-li zpracovat více kritérií, můžete vzorec rozšířit o logickou logiku v takové podobě:
=SMALL(IF((criteria1)*(criteria2),values),n)
Kde kritéria1 a kritéria2 a představují výraz pro testování hodnot v rozsahu kritérií, jak je uvedeno v původním příkladu výše.