![](https://cdn.wiki-base.com/3005270/excel_formula_conditional_mode_with_criteria__2.png.webp)
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))))