Formula di Excel: conta le righe che contengono valori specifici -

Formula generica

=SUM(--(MMULT(--(criteria),TRANSPOSE(COLUMN(data)))>0))

Sommario

Per contare le righe che contengono valori specifici, puoi usare una formula di matrice basata sulle funzioni MMULT, TRANSPOSE, COLUMN e SUM. Nell'esempio mostrato, la formula in G5 è:

(=SUM(--(MMULT(--(data=90),TRANSPOSE(COLUMN(data)))>0)))

dove i dati sono l'intervallo denominato B4: B12.

Nota: si tratta di una formula di matrice e deve essere immessa con il tasto di scorrimento del controllo invio.

Spiegazione

Lavorando dall'interno verso l'esterno, i criteri logici utilizzati in questa formula sono:

--(data=90)

dove i dati sono l'intervallo denominato B4: D12. Questo genera un risultato VERO / FALSO per ogni valore nei dati e il doppio negativo costringe i valori VERO FALSO a 1 e 0 per produrre un array come questo:

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

Come i dati originali, questo array è composto da 9 righe per 3 colonne (9 x 3) e va nella funzione MMULT come array1 .

Array2 è derivato con:

TRANSPOSE(COLUMN(data))

Questa è la parte complicata e divertente di questa formula. La funzione COLUMN viene utilizzata semplicemente per comodità come un modo per generare un array numerico della giusta dimensione. Per eseguire la moltiplicazione di matrici con MMULT, il conteggio delle colonne in array1 (3) deve essere uguale al conteggio delle righe in array2 .

COLUMN restituisce l'array a 3 colonne (2,3,4) e TRANSPOSE cambia questo array nell'array a 3 righe (2; 3; 4). MMULT quindi viene eseguito e restituisce un risultato di matrice 9 x 1:

=SUM(--((2;0;7;2;0;0;0;0;4)>0))

Controlliamo le voci diverse da zero con> 0 e di nuovo costringiamo TRUE FALSE a 1 e 0 con un doppio negativo per ottenere un array finale all'interno di SUM:

=SUM((1;0;1;1;0;0;0;0;1))

In questo array finale, un 1 rappresenta una riga in cui il test logico (dati = 90) ha restituito true. Il totale restituito da SUM è un conteggio di tutte le righe che contengono il numero 90.

Letterale contiene

Se è necessario verificare valori di testo specifici, in altre parole, controllare letteralmente se le celle contengono determinati valori di testo, è possibile modificare la logica nella formula in questa pagina per utilizzare ISNUMBER e la funzione SEARCH. Ad esempio, per contare celle / righe che contengono "mela" puoi utilizzare:

=ISNUMBER(SEARCH("apple",data))

Dettagli su come funziona questa formula qui.

Buoni collegamenti

Risposta di Stackoverflow di XOR LX

Articoli interessanti...