Fórmula de Excel: cuente las celdas que contienen x o y -

Fórmula genérica

=SUMPRODUCT(--((ISNUMBER(FIND("abc",rng)) + ISNUMBER(FIND("def",rng)))>0))

Resumen

Para contar las celdas que contienen x o y, puede usar una fórmula basada en la función SUMPRODUCTO. En el ejemplo que se muestra, la fórmula en la celda F5 es:

=SUMPRODUCT(--((ISNUMBER(FIND("abc",B5:B11))+ISNUMBER(FIND("def",B5:B11)))>0))

Esta es la solución de fórmula unicelular, que se explica a continuación. También es posible utilizar una fórmula más simple basada en una columna auxiliar, que también se explica a continuación.

Explicación

Cuando cuenta celdas con "lógica OR", debe tener cuidado de no contar dos veces. Por ejemplo, si está contando celdas que contienen "abc" o "def", no puede simplemente sumar dos funciones COUNTIF, porque puede contar dos veces las celdas que contienen "abc" y "def".

Solución de celda única

Para una sola fórmula, puede usar SUMPRODUCT con ISNUMBER + FIND. La fórmula en F5 es:

=SUMPRODUCT(--((ISNUMBER(FIND("abc",B5:B11)) + ISNUMBER(FIND("def",B5:B11)))>0))

Esta fórmula se basa en la fórmula explicada aquí que ubica el texto dentro de una celda:

ISNUMBER(FIND("abc",B5:B11)

Cuando se le da un rango de celdas, este fragmento devolverá una matriz de valores VERDADERO / FALSO, un valor para cada celda del rango. Como usamos esto dos veces (una para "abc" y otra para "def"), obtendremos dos matrices.

A continuación, sumamos estas matrices (con +), lo que crea una nueva matriz única de números. Cada número de esta matriz es el resultado de sumar los valores VERDADERO y FALSO en las dos matrices originales. En el ejemplo que se muestra, la matriz resultante se ve así:

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

Necesitamos sumar estos números, pero no queremos contar dos veces. Por lo tanto, debemos asegurarnos de que cualquier valor mayor que cero se cuente una sola vez. Para hacer eso, forzamos todos los valores a VERDADERO o FALSO con "> 0", luego forzamos a 1/0 con el doble negativo (-).

Finalmente, SUMPRODUCT devuelve la suma de todos los valores de la matriz.

Solución de columna auxiliar

Con una columna auxiliar para comprobar cada celda individualmente, el problema es menos complejo. Podemos usar CONTAR.SI con dos valores (proporcionados como una "constante de matriz"). La fórmula en C5 es:

=--(SUM(COUNTIF(B5,("*abc*","*def*")))>0)

CONTAR.SI devolverá una matriz que contiene dos elementos: una cuenta para "abc" y una cuenta para "def". Para evitar el conteo doble, sumamos los elementos y luego forzamos el resultado a VERDADERO / FALSO con "> 0". Finalmente, convertimos los valores VERDADERO / FALSO a 1 y 0 con un doble negativo (-).

El resultado final es 1 o 0 para cada celda. Para obtener un total de todas las celdas del rango, simplemente suma la columna auxiliar.

Articulos interesantes...