viernes, 12 de junio de 2020

EXCEL: Función SI con lógica booleana

Excel formula: IF with boolean logic

Fórmula genérica

= SI(criteria1*criteria2*criteria3,result)

Explicación

En el ejemplo que se muestra, la fórmula en F8 es:

{=SUMA(SI((color="red")*(region="East")*(quantity>7),quantity))}

Nota: esta es una fórmula de matriz, y debe ingresarse con control + shift + enter.

Cómo funciona esta fórmula

Nota: Este ejemplo muestra cómo reemplazar una fórmula SI anidada con una sola SI en una fórmula de matriz usando lógica booleana. Esta técnica se puede utilizar para reducir la complejidad en fórmulas complejas. Sin embargo, el ejemplo es solo ilustrativo. Este problema particular podría resolverse fácilmente con SUMAR.SI o SUMAPRODUCTO.

Las fórmulas en F7 y F8 devuelven el mismo resultado, pero tienen enfoques diferentes. En la celda F7, tenemos la siguiente fórmula, utilizando un enfoque SI anidado:

{=SUMA(SI(color="red",SI(region="east",SI(quantity>7,quantity))))}

Así es como Excel evalúa los IF dentro de SUMA:

=SI({VERDADERO;FALSO;FALSO;VERDADERO;FALSO;FALSO;VERDADERO;FALSO;VERDADERO},
SI({VERDADERO;FALSO;VERDADERO;FALSO;VERDADERO;FALSO;VERDADERO;FALSO;VERDADERO},
SI({FALSO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO},quantity)))

En esencia, cada SI "filtra" los valores en el siguiente SI, y solo las cantidades donde las tres pruebas lógicas devuelven VERDADERO "sobreviven" a la operación. Otras cantidades se convierten en FALSO y SUMA las evalúa como cero. El resultado final dentro de SUMA es una matriz de valores como este:

=SUMA({FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;8;FALSO;10})

Los valores FALSO se evalúan a cero, y la función SUMA devuelve un resultado final de 18.

En F8 tenemos esta fórmula, que usa un solo SI y una lógica booleana:

=SUMA(SI((color="red")*(region="East")*(quantity>7),quantity))

Cada expresión lógica devuelve una matriz de valores VERDADERO y FALSO. Cuando estas matrices se multiplican juntas, la operación matemática obliga a los valores a unos y ceros en una matriz única como esta:

SI({0;0;0;0;0;0;1;0;1},quantity)

La matriz de 1s y 0s filtra datos irrelevantes, y el mismo resultado entregado a SUMA:

=SUMA({FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;8;FALSO;10})

Como antes, SUMA devuelve un resultado final de 18.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT