Formula Excel: ennesimo valore più piccolo con criteri -

Sommario

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.

Articoli interessanti...