Formula di Excel: conta se la riga soddisfa più criteri interni -

Sommario

Formula generica

=SUMPRODUCT((logical1)*(logical2))

Sommario

Per contare le righe in una tabella che soddisfano più criteri, alcuni dei quali dipendono da test logici che funzionano a livello di riga, è possibile utilizzare la funzione SUMPRODUCT.

Contesto

Hai una tabella che contiene i risultati delle partite sportive. Hai quattro colonne: squadra di casa, squadra ospite, punteggio squadra di casa, punteggio squadra ospite. Per una data squadra, vuoi contare solo le partite (righe) in cui la squadra ha vinto in casa. È facile contare le partite (righe) in cui una squadra era la squadra di casa, ma come contare solo le vittorie?

Questo è un buon uso della funzione SUMPRODUCT, che può gestire le operazioni di array (pensa alle operazioni che trattano gli intervalli) in modo nativo.

Nell'esempio mostrato, la formula nella cella H5 è:

=SUMPRODUCT((B5:B10=G5)*(D5:D10>E5:E10))

Spiegazione

La funzione SUMPRODUCT è programmata per gestire gli array in modo nativo, senza richiedere Control Shift Enter. Il comportamento predefinito è moltiplicare gli elementi corrispondenti in uno o più array insieme, quindi sommare i prodotti. Quando viene fornito un singolo array, restituisce la somma degli elementi nell'array.

In questo esempio, stiamo usando due espressioni logiche all'interno di un singolo argomento di matrice. Potremmo inserire ogni espressione in un argomento separato, ma poi avremmo bisogno di forzare i valori logici VERO FALSO a uno e zero con un altro operatore.

Utilizzando l'operatore di moltiplicazione per moltiplicare i due array insieme, Excel convertirà automaticamente i valori logici in uno e zero.

Dopo che le due espressioni logiche sono state valutate, la formula ha questo aspetto:

=SUMPRODUCT(((FALSE;TRUE;FALSE;TRUE;FALSE;TRUE))*((TRUE;TRUE;TRUE;FALSE;TRUE;TRUE)))

Dopo che i due array sono stati moltiplicati, la formula ha questo aspetto:

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

Con un solo array rimanente, SUMPRODUCT somma semplicemente gli elementi nell'array e restituisce la somma.

Articoli interessanti...