Formula Excel: modalità condizionale con criteri -

Sommario

Formula generica

(=MODE(IF(criteria,data)))

Sommario

Per calcolare una modalità condizionale con uno o più criteri è possibile utilizzare una formula di matrice basata sulle funzioni SE e MODO. Nell'esempio mostrato, la formula in F5 è:

(=MODE(IF(group=E5,data)))

dove "gruppo" è l'intervallo denominato B5: B14 e "dati" è l'intervallo denominato C5: C14.

Nota: questa è una formula di matrice e deve essere inserita con CTRL + MAIUSC + INVIO.

Spiegazione

La funzione MODE non ha un modo integrato per applicare i criteri. Dato un intervallo, restituirà il numero più frequente in quell'intervallo.

Per applicare i criteri, utilizziamo la funzione IF all'interno di MODE per filtrare i valori in un intervallo. In questo esempio, la funzione IF filtra i valori per gruppo con un'espressione come questa:

IF(group=E5,data)

Questo confronta ogni valore nell'intervallo denominato "gruppo" con il valore in E5, che è "A". Poiché il test logico viene applicato a un array con più valori, il risultato è un array di valori TRUE FALSE:

(TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE)

dove ogni TRUE corrisponde a una riga in cui il gruppo è "A". Questo array diventa un filtro. Per ogni VERO, SE restituisce il valore corrispondente nell'intervallo denominato "dati". I valori FALSE rimangono invariati. Il risultato finale di IF è questo array:

(3;FALSE;3;FALSE;5;FALSE;1;FALSE;2;FALSE)

Notare che solo i valori nel gruppo A sono sopravvissuti, i valori del gruppo B ora sono FALSE. Questo array viene restituito alla funzione MODE, che ignora automaticamente i valori FALSE e restituisce il numero che si verifica più di frequente, ovvero 3.

Nota: quando IF viene utilizzato in questo modo per filtrare i valori con un'operazione su array, la formula deve essere inserita con control + shift + enter.

Criteri aggiuntivi

Per applicare più di un criterio, puoi nidificare un altro IF all'interno del primo IF:

(=MODE(IF(criteria1,IF(criteria2,data))))

Articoli interessanti...