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

Sommario

Formula generica

=SUMPRODUCT(--(logical_expression))

Sommario

Per contare le righe in una tabella che soddisfano criteri calcolati interni, senza utilizzare una colonna di supporto, è possibile utilizzare la funzione SUMPRODUCT.

Contesto

Immagina di avere una tabella dei dati di vendita per diversi prodotti. Hai una colonna per le vendite il mese scorso e una colonna per le vendite nel mese corrente. Desideri contare i prodotti (righe) in cui le vendite correnti sono inferiori alle vendite del mese scorso. Non puoi utilizzare COUNTIF per questo, perché COUNTIF è una funzione basata su intervallo. Un'opzione è aggiungere una colonna helper che sottrae le vendite del mese scorso dalle vendite di questo mese, quindi utilizzare COUNTIF per contare i risultati inferiori a zero. Ma cosa succede se non vuoi (o non puoi) aggiungere una colonna helper? In tal caso, puoi utilizzare SUMPRODUCT.

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

=SUMPRODUCT(--(C5:C10>D5:D10))

Spiegazione

SUMPRODUCT è progettato per funzionare con gli array. Moltiplica gli elementi corrispondenti in due o più array e somma i prodotti risultanti. Di conseguenza, è possibile utilizzare SUMPRODUCT per elaborare matrici risultanti dall'applicazione di criteri a un intervallo di celle. Il risultato di tali operazioni saranno gli array, che SUMPRODUCT può gestire in modo nativo, senza richiedere la sintassi Control Shift Enter.

In questo caso, confrontiamo semplicemente i valori nella colonna C con i valori nella colonna D utilizzando un'espressione logica:

C5:C10>D5:D10

Poiché abbiamo a che fare con intervalli (array), il risultato è un array di valori VERO FALSO come questo:

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

Per forzarli in uno e zero, usiamo un doppio operatore negativo (chiamato anche doppio unario):

--(C5:C10>D5:D10)

Che produce e schiera in questo modo:

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

che viene quindi elaborato da SUMPRODUCT. Poiché esiste un solo array, SUMPRODUCT somma semplicemente gli elementi nell'array e restituisce un totale.

Articoli interessanti...