Excel: eseguire test logico su un insieme di righe

Talvolta si ha la necessità di eseguire un test logico su un insieme di righe contenenti determinate informazioni.

Un cliente ha mai acquistato un certo prodotto? Quante volte?

Spieghiamoci attraverso un esempio pratico. Ovviamente l’esempio è volutamente banale, ma sarà semplice estenderlo a casi più complessi una volta compreso come fare.

Scarica il foglio Excel con i dati dell’esempio

La figura seguente rappresenta i nostri dati:

Per comodità abbiamo organizzato i dati in una tabella e assegnato un nome a due range di celle: nome (A4:A15) e bevanda(C4:C15).

I dati

Nella colonna Nome abbiamo il nome del cliente, nella colonna Data la data di acquisto e nella colonna Bevanda abbiamo la bevanda che il cliente ha acquistato quel giorno.

I test logici che vogliamo eseguire:

  1. Un determinato cliente (ad esempio Antonio) ha mai acquistato caffè?
  2. Un determinato cliente ha mai acquistato tè?
  3. Un determinato cliente ha mai acquistato sia caffè che tè?

Il risultato dei nostri test (ovvero Sì oppure No) si trovano rispettivamente nelle colonne D (Caffè?), F (Tè?) e H (Entrambi).

Le funzioni SE e CONTA.PIU.SE

La soluzione che abbiamo scelto usa la concatenazione di due formule: SE e la funzione CONTA.PIÙ.SE.

La sintassi generale della formula che andremo a scrivere per i test 1 e 2 è la seguente:


=SE(CONTA.PIÙ.SE(range1;condizione1;range2;condizione2);”S”;”N”)

Commentiamola:

  • la funzione CONTA.PIÙ.SE conta quante righe della tabella verificano le seguenti: una cella in range1 (ricordiamo che un range è un intervallo di celle) verifica la condizione1 e una cella in range2 verifica la condizione2;
  • Se ad esempio scriviamo CONTA.PIÙ.SE(nome;A4;bevanda;”caffè”), ricordando che “nome” e “bevanda” sono i nomi che abbiamo assegnato ai due range di celle in prima e terza colonna, una riga verrà contata 1 se il cliente A4 (Antonio) ha acquistato caffè in una data qualsiasi. Nel nostro esempio, inserendo questa formula nella cella D4, voglio sapere se Antonio ha mai acquistato caffè; inserendola nella cella D5, voglio sapere se la cliente Genny ha mai acquistato caffè, ecc
  • Torniamo alla sintassi generale, dove è presente la funzione SE(…) che andrà a utilizzare il risultato della funzione CONTA.PIÙ.SE appena visto. Più precisamente: la funzione SE restituisce il valore “S” se la sua condizione è vera e il valore “N” se la condizione è falsa. Ricordiamo che nella funzione SE, viene valutata come vera qualsiasi espressione numerica diversa da zero. Quindi SE(1)=Vero, SE(0)=Falso.
  • Quindi possiamo scrivere la formula completa per la cella D4:

    =SE(CONTA.PIÙ.SE(nome;A4;bevanda;”caffè”);”S”;”N”)
  • Il risultato della funzione CONTA.PIÙ.SE(nome;A4;bevanda;”caffè”) è 2 (infatti Antonio ha acquistato per due volte caffè nelle date di interesse). La funzione SE(2), poichè il numero 2 è diverso da zero, restituisce Sì. Notate invece che nella cella D8, la formula restituisce No, poichè Pietro non ha mai acquistato caffè nelle date di interesse.
  • Verificando adesso la formula contenuta nella cella F4 (il test se ha mai acquistato tè), potete constatare che è identica con l’unica variazione che per ciascun cliente andiamo a testare il suo acquisto della bevanda tè:

    =SE(CONTA.PIÙ.SE(nome;A4;bevanda;”tè”);”S”;”N”)

Il test ENTRAMBI

Una piccola complicazione si ha se vogliamo testare se un cliente ha acquistato sia caffè che tè nel periodo di tempo tabulato. possiamo farlo in due modi:


=SE(E(D4=”S”;F4=”S”);”S”;”N”)

La funzione E restituisce valore VERO se entrambe le sue condizioni sono vere. Nel nostro caso, D4=”S” è vera e anche F4=”S” è vera. Dunque SE restituisce Sì poichè a sua volta la sua condizione è vera.

Alternativamente, senza usare i risultati delle altre celle della tabella, possiamo usare la funzione E(condizione1;condizione2) utilizzando 2 volte la funzione CONTA.PIÙ.SE:



=SE(E(CONTA.PIÙ.SE(Nome;A4;bevanda;”caffè”);CONTA.PIÙ.SE(Nome;A4;bevanda;”tè”));”S”;”N”)

Colonne opzionali

Come potete vedere scaricando il foglio Excel dell’esempio, abbiamo inserito anche due colonne extra: Quante volte caffè e Quante volte tè. In queste colonne abbiamo calcolato quante volte, rispettivamente, ogni cliente ha acquistato caffè e quante volte tè nel periodo di tempo considerato. Come? Ovviamente utilizzando proprio la funzione CONTA.PIÙ.SE, come spiegata in precedenza. Queste due colonne opzionali dunque vi danno una migliore comprensione del risultato di questa funzione.