Formula di Excel: conta più criteri con logica NOT -

Sommario

Formula generica

=SUMPRODUCT((rng1=crit1)*ISNA(MATCH(rng2,crit2,0)))

Sommario

Per contare con più criteri, inclusa la logica per NON una delle diverse cose, è possibile utilizzare la funzione SUMPRODUCT insieme alle funzioni MATCH e ISNA.

Nell'esempio mostrato, la formula in G8 è:

=SUMPRODUCT((gender=F4)*ISNA(MATCH(group,G4:G5,0)))

Dove "sesso" è l'intervallo denominato C4: C12 e "gruppo" è l'intervallo denominato D4: D12.

Nota: MATCH e ISNA consentono alla formula di ridimensionarsi facilmente per gestire più esclusioni, poiché è possibile espandere facilmente l'intervallo per includere valori "NOT" aggiuntivi.

Spiegazione

La prima espressione all'interno di SUMPRODUCTS verifica i valori nella colonna C, Gender, rispetto al valore in F4, "Male":

(gender=F4)

Il risultato è un array di valori TRUE FALSE come questo:

(VERO; FALSO; VERO; FALSO; VERO; VERO; FALSO; VERO; FALSO)

Dove TRUE corrisponde a "Male".

La seconda espressione all'interno di SUMPRODUCTS verifica i valori nella colonna D, Gruppo, rispetto ai valori in G4: G5, "A" e "B". Questo test viene gestito con MATCH e ISNA in questo modo:

ISNA(MATCH(group,G4:G5,0))

La funzione CONFRONTA viene utilizzata per confrontare ogni valore nell'intervallo denominato "gruppo" con i valori in G4: G5, "A" e "B". Quando la corrispondenza ha esito positivo, CONFRONTA restituisce un numero. Dove la CONFRONTA fallisce, CONFRONTA restituisce # N / A. Il risultato è un array come questo:

(1; 2; # N / A; 1; 2; # N / A; 1; 2; # N / A)

Poiché i valori # N / A corrispondono a "non A o B", ISNA viene utilizzato per "invertire" l'array in:

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

Ora TRUE corrisponde a "non A o B".

All'interno di SUMPRODUCT, i due risultati della matrice vengono moltiplicati insieme, il che crea un singolo array numerico all'interno di SUMPRODUCT:

SUMPRODUCT((0;0;1;0;0;1;0;0;0))

SUMPRODUCT quindi restituisce la somma, 2, che rappresenta "2 maschi non nel gruppo A o B".

Buoni collegamenti

Risposta di Stackoverflow di Barry Houdini

Articoli interessanti...