Excel formula: Count rows that contain specific values

Fórmula genérica

=SUMA(--(MMULT(--(criteria),TRANSPONER(COLUMNA(data)))>0))

Explicación

Para contar filas que contienen valores específicos, puede usar una fórmula de matriz basada en las funciones MMULT, TRANSPONER, COLUMNA y SUMA. En el ejemplo que se muestra, la fórmula en G5 es:

{=SUMA(--(MMULT(--(data=90),TRANSPONER(COLUMNA(data)))>0))}

donde los datos son el rango nombrado B4: B12.

Nota: esta es una fórmula de matriz y debe ingresarse con control shift enter.

Cómo funciona esta fórmula

Trabajando de adentro hacia afuera, el criterio lógico utilizado en esta fórmula es:

--(data=90)

donde los datos son el rango nombrado B4: D12. Esto genera un resultado VERDADERO / FALSO para cada valor en los datos, y el doble negativo obliga a los valores VERDADERO FALSO a 1 y 0 para producir una matriz como esta:

{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}

Al igual que los datos originales, esta matriz tiene 9 filas por 3 columnas (9 x 3) y entra en la función MMULT como matriz1.

Array2 se deriva con:

Esta es la parte difícil y divertida de esta fórmula. La función COLUMNA se usa simplemente por conveniencia como una forma de generar una matriz numérica del tamaño correcto. Para realizar la multiplicación de matrices con MMULT, el recuento de columnas en la matriz1 (3) debe ser igual al recuento de filas en la matriz2.

COLUMNA devuelve la matriz de 3 columnas {2,3,4}, y TRANSPONER cambia esta matriz a la matriz de 3 filas {2; 3; 4}. MMULT luego se ejecuta y devuelve un resultado de matriz de 9 x 1:

=SUMA(--({2;0;7;2;0;0;0;0;4}>0))

Verificamos las entradas que no son cero con> 0 y nuevamente forzamos VERDADERO FALSO a 1 y 0 con un doble negativo para obtener una matriz final dentro de SUMA:

=SUMA({1;0;1;1;0;0;0;0;1})

En esta matriz final, un 1 representa una fila donde la prueba lógica (datos = 90) devuelve verdadero. El total devuelto por SUMA es un recuento de todas las filas que contienen el número 90.

Literal contiene

Si necesita verificar valores de texto específicos, en otras palabras, literalmente verifique si las celdas contienen ciertos valores de texto, puede cambiar la lógica en la fórmula de esta página para usar la función ESNUMERO y HALLAR. Por ejemplo, para contar celdas / filas que contienen "manzana" puede usar:

=ESNUMERO(HALLAR("apple",data))

Detalles sobre cómo funciona esta fórmula aquí.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT