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*")
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.