Formula di Excel: conta le righe con almeno n valori corrispondenti -

Sommario

Formula generica

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

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 K6 è:

(=SUM(--(MMULT(--((data)=2)))

dove i dati sono l'intervallo denominato C5: I14.

Nota che questa è una formula di matrice e deve essere immessa con il tasto di controllo INVIO.

Spiegazione

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

(data)<70

dove i dati sono l'intervallo denominato C5: I14. 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:

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

Come i dati originali, questo array è composto da 10 righe per 7 colonne (10 x 7) e va nella funzione MMULT come array1 . L'argomento successivo, array2 viene creato con:

TRANSPOSE(COLUMN(data)^0))

Qui, la funzione COLUMN viene utilizzata come un modo per generare un array numerico della giusta dimensione, poiché la moltiplicazione della matrice richiede che il conteggio delle colonne in array1 (7) sia uguale al conteggio delle righe in array2 .

La funzione COLUMN restituisce la matrice a 7 colonne (3,4,5,6,7,8,9). Alzando questo array a una potenza pari a zero, si ottiene un array 7 x 1 come (1,1,1,1,1,1,1), che TRANSPOSE cambia in un array 1 x 7 come (1; 1 ; 1; 1; 1; 1; 1).

MMULT quindi viene eseguito e restituisce un risultato di matrice 10 x 1 (2; 0; 0; 3; 0; 0; 0; 1; 0; 0), che viene elaborato con l'espressione logica> = 2, risultando in una matrice di TRUE Valori FALSI:

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

Costringiamo nuovamente TRUE FALSE a 1 e 0 con un doppio negativo per ottenere un array finale all'interno di SUM:

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

Che restituisce correttamente 2, il numero di nomi con almeno 2 punteggi inferiori a 70.

Buoni collegamenti

Conteggio delle righe in cui la condizione è soddisfatta in almeno una colonna (excelxor)

Articoli interessanti...