![](https://cdn.wiki-base.com/5549253/excel_formula_nth_smallest_value_with_criteria__2.png.webp)
Formula generica
(=SMALL(IF(criteria,values),n))
Sommario
Per ottenere il secondo valore più piccolo, il terzo valore più piccolo, il quarto valore più piccolo e così via, in cui ogni valore corrisponde ai criteri forniti, è possibile utilizzare una formula di matrice che utilizza le funzioni SMALL e IF.
Nell'esempio mostrato, la formula in G7 è:
(=SMALL(IF(Sex="F",Time),F7))
Dove "Sex" è un intervallo denominato per C3: C15 e "Time" è l'intervallo denominato D3: D15.
Nota: questa è una formula di matrice e deve essere inserita utilizzando Control + Maiusc + Invio.
Spiegazione
La funzione SMALL è completamente automatica: è sufficiente fornire un intervallo e un numero intero per "nth" per specificare il valore classificato desiderato.
Il problema in questo caso è che non vogliamo che SMALL agisca su ogni valore nell'intervallo, ma solo su valori maschili o femminili (M o F). Per applicare questo criterio, utilizziamo la funzione IF, che fornisce un test logico per "M" o "F". Poiché stiamo applicando il test a un array di valori, anche il risultato sarà un array. Nell'esempio mostrato , l'array risultante ha questo aspetto:
(0.00729166666666667; FALSE; 0.00689814814814815; FALSE; 0.00835648148148148; FALSE; FALSE; FALSE; FALSE; 0.00693287037037037; FALSE; FALSE; 0.00672453703703704)
Dove FALSO rappresenta i tempi maschili ei numeri rappresentano i tempi femminili. (Tempi come questo sono valori frazionari, motivo per cui abbiamo così tante cifre decimali per alcune volte).
La funzione SMALL ignorerà automaticamente i valori TRUE e FALSE, quindi il risultato sarà l'ennesimo valore più piccolo dall'insieme di numeri effettivi nell'array.
Errore senza ennesimo
Riceverai un errore se non è presente alcun valore più piccolo in base ai criteri forniti. Puoi intercettare questo errore con SE.ERRORE e sostituirlo con qualsiasi valore abbia senso in questo modo:
(=IFERROR(SMALL(IF(Sex="F",Time),F8),"-"))
Criteri multipli
Per gestire più criteri, puoi estendere la formula con la logica booleana in una forma come questa:
=SMALL(IF((criteria1)*(criteria2),values),n)
Dove criteri1 e criteri2 e rappresentano un'espressione per testare i valori in un intervallo di criteri, come mostrato nell'esempio originale sopra.