
Formula generica
(=MIN(IF(range=criteria,values)))
Sommario
Per ottenere un valore minimo in base a criteri, è possibile utilizzare la funzione MIN insieme alla funzione IF. Nell'esempio mostrato, la formula in G6 è:
(=MIN(IF(names=F6,times)))
Dove "nomi" è l'intervallo denominato B6: B17 e times è l'intervallo denominato D6: D17.
Questa è una formula di matrice e deve essere inserita con Ctrl + Maiusc + Invio.
Spiegazione
La funzione IF viene valutata per prima con il seguente test logico:
names=F6
Questo genera un array di valori TRUE / FALSE, dove TRUE corrisponde alle righe in cui il nome corrisponde al valore in F6:
(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE)
Il "valore se vero" per SE è l'intervallo denominato "volte", che restituisce l'intero insieme di orari. Il risultato è che l'array dal test logico "filtra" efficacemente i valori temporali. Quando un risultato è TRUE, il tempo viene passato nell'array restituito da IF. Quando un risultato è FALSE, il valore temporale viene sostituito dal valore booleano FALSE:
(0.000868055555555556;FALSE;FALSE;0.000902777777777778;FALSE;FALSE;0.000914351851851852;FALSE;FALSE;0.000833333333333333;FALSE;FALSE)
Nota: i tempi di Excel sono valori frazionari, il che spiega i valori decimali lunghi.
La funzione IF agisce come un filtro. Solo i valori di tempo associati a TRUE passano attraverso il filtro, gli altri valori vengono sostituiti con FALSE.
La funzione IF consegna questo array direttamente alla funzione MIN, restituisce il valore minimo nell'array. I valori FALSE vengono automaticamente ignorati.
Celle vuote
Le celle vuote causeranno il passaggio di valori zero a MIN, il che può causare risultati imprevisti. Per "filtrare" le celle vuote puoi aggiungere un altro IF nidificato come questo:
=MIN(IF(names=F6,IF(times"",times)))
Con MINIFS
La funzione MINIFS, introdotta in Excel 2016 tramite Office 365, è progettata per calcolare i minimi in base a uno o più criteri senza la necessità di una formula di matrice. Con MINIFS, la formula in G6 è:
=MINIFS(times,names,F6)