Estoy tratando de resumir todas las entradas en función de varias condiciones específicas.
El objetivo es contar todas las entradas que tengan un "sí" marcado en las celdas J, K, L o M y que tengan "1.°" en H.
Esta es la fórmula que estoy usando actualmente:
=SUMPRODUCT((('J2:J100="yes") + (K2:K100="yes") + (L2:L100="yes") + (M2:M100="yes")) * (H2:H100="1st"))
Esto casi funciona.
El problema es que quiero contar un registro solo una vez si tiene un sí en cualquiera de las 4 celdas (J,K,L,M) y no varias veces. Entonces, por ejemplo, si un solo registro tiene "sí" marcado en ambas celdas K y L y tiene el primero en H, se contará dos veces en lugar de una.
Esto se debe a que la función SUMAPRODUCTO se evaluaría como 0 + 1 + 1 + 0 * 1, que es = 2
Estoy pensando que si hay una manera de convertir la primera parte de la función que escribí para que se transforme en booleana, de modo que cualquier valor positivo se considere 1 y cualquier valor negativo se trate como Falso, resolvería mi problema. .
Respuesta1
Añadir un>0
=SUMPRODUCT((('J2:J100="yes") + (K2:K100="yes") + (L2:L100="yes") + (M2:M100="yes")>0) * (H2:H100="1st"))
Ahora
(0 + 1 + 1 + 0 > 0) * 1
Se convertirá
1 * 1
cual es1
Respuesta2
>0
Obviamente funcionará bien y probablemente más rápido que una función.
Puede que no sea demasiado obvio cuál es la idea, ya sea para usted (en dos años) o para alguien más que podría mantener la hoja de cálculo algún día.
Excel tiene una función OR()
que cubre muy bien esta situación. En lugar de que cuatro comparaciones separadas produzcan 1/0, se sumen, se comparen, etc., simplemente, de manera clara para cualquiera, ahora y para siempre, hace las cuatro comparaciones y produce un solo 1 o 0 como resultado.
Bueno, no directamente: produce un VERDADERO o FALSO, pero multiplicarlo por el elemento de la columna H convierte su resultado en 1 o 0 y permite que la multiplicación se realice correctamente. (Esto es lo que sucede cuando ves que la gente usa los métodos --
o *1
para forzar el mismo efecto. Pero CUALQUIER multiplicación funciona, no solo con esos, por lo que no son necesarios.
Pero a la gente le encanta la ruta (0+1+1+0), y no es un problema para ellos, pero si desea otro método simple, OR()
cumple los requisitos.