Convierta la suma de varios pasos de booleanos en una sola fórmula

10

Tengo algunas lecturas del sensor y estoy comprobando si los valores están en el rango aceptable.

Para hacer esto, uso un IFpara verificar si los valores son >o <el valor calculado (promedio). Los resultados se almacenan en las columnas respectivas. Finalmente, sumo los resultados para obtener el recuento de cuántos están fuera de los límites (es decir, por encima del promedio).

Por ejemplo, Axse compara con Mean. Axpara obtener cualquiera 1o 0en If value is outside accepted bounds. Ax:

Imagen 1

Entonces la suma de If value is outside accepted bounds. Axse realiza para obtener Number of values outside bound. Ax:

Imagen 2, resumen

Pregunta
¿Cómo convierto esto en una sola fórmula?

clmno
fuente

Respuestas:

11

La función que busca es COUNTIF():

Captura de pantalla de la hoja de trabajo

Ingrese la siguiente fórmula en G3y ctrl-enter / copy-paste / fill-right en G3:I3:

=COUNTIF(A3:A8,">"&D3)

COUNTIF() comprueba cada valor en el primer argumento contra los criterios en el segundo, y cuenta el número de veces que se cumple.


Usar COUNTIF()es la mejor y más simple solución.

Por supuesto, podría usar una fórmula más complicada / difícil de entender como

=SUMPRODUCT(--(A3:A8>D3))

o una matriz ingresó uno como

{=SUM(--(A3:A8>D3))}

o incluso una versión más innecesariamente complicada de esos.

Sin embargo, no hay ningún beneficio al usar cualquiera de estos en este caso particular.


De hecho, dado que parece estar interesado en reducir el número de columnas auxiliares, una solución general aún mejor sería prescindir también de las columnas auxiliares medias:

Captura de pantalla de la hoja de trabajo

Ingrese la siguiente fórmula en D3y ctrl-enter / copy-paste / fill-right en D3:F3:

=COUNTIF(A3:A8,">"&AVERAGE(A3:A8))

(Y sí, esta fórmula también podría hacerse más difícil de entender para un principiante convirtiéndola en =SUMPRODUCT(--(A3:A8>AVERAGE(A3:A8)))o {=SUM(--(A3:A8>AVERAGE(A3:A8)))}).

robinCTS
fuente
@AFH Gracias por la edición (y el voto positivo ;-)). Me pregunto cómo sucedió eso? Y lo más importante, cómo no lo noté ¯ \ _ (ツ) _ / ¯
robinCTS
Felicidades Los bots del sistema seleccionan publicaciones altamente calificadas para usar como auditorías en la cola de revisión de LQP. Este fue seleccionado como una publicación de "baja calidad", una insignia de honor. :-)
fijador1234
@ fixer1234 Oh, por supuesto (-‸ლ) Doy tres soluciones alternativas para el problema Y y luego procedo a proporcionar una solución para el problema X. Y además ofrezco una explicación de cómo COUNTIF()funciona la función. ¡Claramente esta respuesta es de baja calidad! La próxima vez me limitaré a una sola línea, el código solo responderá. (PD: solo verifiqué la línea de tiempo . Parece que Looks OK
fallaste en
2

La función SUMPRODUCT también puede resolver su problema.

ingrese la descripción de la imagen aquí

Escriba esta fórmula en G102 y llénela directamente de G102 a I102:

=SUMPRODUCT(--(A102:A107>D102:D107))

Nota: ajuste la dirección de la celda en la fórmula según sus necesidades.

Rajesh S
fuente