Contar una celda SI contiene una o más palabras de una lista

Contar una celda SI contiene una o más palabras de una lista

Tengo una hoja de cálculo que enumera los alumnos que asisten a uno de nuestros centros de tareas. La hoja de cálculo enumera los idiomas que hablan los alumnos y quiero contar los casos de alumnos que hablan idiomas específicos, como en el siguiente ejemplo, donde la columna Idioma del alumno tiene un rango con nombre establecido para registrarListLanguage:

Nombre del alumno Idioma del alumno
Nombre falso albanés
Otro urdu
alumno 1 urdu, punjabí, italiano
alumno 2 punjabi
alumno 3 Urdu y punjabi

Esto es fácil cuando los alumnos hablan sólo un idioma (por ejemplo, albanés) con un simple =SUM(COUNTIFS(registerListLanguage, "albanés")

Sin embargo, en muchos casos, nuestros alumnos hablan dos o más idiomas, lo que significa que debemos enumerar los idiomas que hablan (como el alumno 1 en el ejemplo anterior).

Mis superiores quieren que pueda informar sobre los alumnos que hablan urdu o punjabi, y realmente estoy luchando por obtener un recuento preciso... En este momento estoy usando la siguiente fórmula:

=SUM(COUNTIFS(registerListLanguage, {"*Urdu*","*Punjabi*"}))

Pero eso es contar dos veces a los alumnos que hablan TANTO punjabi como urdu, por lo que el alumno 1 y el alumno 3 en el ejemplo anterior se cuentan dos veces...

He estado luchando toda la tarde sobre cómo lograr que solo cuente la celda UNA VEZ si contiene Urdu O Punjabi...

¿Alguien puede señalar dónde me he equivocado?

¡Gracias!

Respuesta1

Puedes restar un CONTAR.SI que cuenta donde están ambos:

=SUM(COUNTIFS(B2:B6, {"*Urdu*","*Punjabi*"}))-COUNTIFS(B2:B6,"*Urdu*",B2:B6,"*Punjabi*")

ingrese la descripción de la imagen aquí

O use SUMPRODUCT que verifica si alguno está en la celda y solo lo cuenta como 1 en lugar de 2:

=SUMPRODUCT(--((ISNUMBER(SEARCH("Urdu",B2:B6)))+(ISNUMBER(SEARCH("Punjabi",B2:B6)))>0))

Esto crea dos matrices de 1 y 0 y luego las suma. Si alguna de las líneas de la matriz agregada es mayor que 0, devuelve 1.

ingrese la descripción de la imagen aquí

información relacionada