Agregado con lógica OR
La familia de funciones IFS , como SUMIFS y CONTAR.SI, utilizan la lógica AND al evaluar múltiples condiciones. En otras palabras, todas las condiciones deben ser verdaderas para ser incluidas. Y, en general, esta lógica funciona bien. Sin embargo, hay situaciones en las que nos gustaría utilizar la lógica OR. Es decir, cualquiera de las condiciones puede ser cierta para ser incluida.
En esta publicación, hablaremos sobre cómo agregar usando la lógica OR. En resumen, determinaremos los valores que se incluirán con la función FILTRO y luego envolveremos la función de agregación deseada (SUM, COUNT, AVERAGE, MIN, MAX,…) alrededor de ellos.
Objetivo
Antes de entrar en detalles, confirmemos nuestro objetivo. Digamos que hemos exportado un montón de datos de nuestro sistema de ventas y están almacenados en una tabla llamada Tabla1:
Tenemos una promoción donde algunos pedidos califican para envío gratis. Los pedidos que califican son aquellos donde la Fecha es 25/12 O el código de Cupón es GRATIS O el Monto es mayor a 100 .
Nos gustaría conocer información básica sobre los pedidos que califican para envío gratuito, incluido cuántos, el monto total, el pedido más grande y la lista de pedidos. Básicamente, resultados como este:
Como se trata de Excel, hay muchas formas de intentar abordarlo. Por ejemplo, podríamos probar el formato condicional. Esto nos ayudaría a identificar los pedidos con envío gratuito; sin embargo, luego sería un desafío analizarlos usando funciones como SUM, MAX o COUNT.
También podríamos configurar una o más columnas auxiliares para ver las condiciones y luego hacer referencia a los resultados de las columnas auxiliares en nuestra función de agregación. Pero, como filosofía general, prefiero trabajar con los datos tal como vienen (en lugar de agregar columnas auxiliares) siempre que sea posible.
Otra idea que me viene a la mente es intentar usar filtros (ya sea filtros de tabla o enviar los datos a una tabla dinámica y usar filtros PT). Generalmente, cuando aplica filtros en varias columnas, utilizan la lógica AND… y nosotros necesitamos la lógica OR.
Entonces, veamos cómo usar la función FILTRO como función base para identificar los pedidos que califican para envío gratuito y luego resumimos los resultados con la función agregada deseada.
Nota: al momento de escribir este artículo, no todas las versiones de Excel tienen la función FILTRO. Si su versión de Excel no lo hace, consulte esta publicación que habla sobre varias alternativas.
Video
Detalles
Realizaremos los siguientes pasos:
- FILTRO con lógica O
- Agregar con COUNT, SUM, MAX
- Agregado con ARRAYTOTEXT
Hagamos esto.
FILTRO con lógica O
Lo primero que haremos será identificar los pedidos que califican para envío gratis con la función FILTRO. Esta será nuestra función base que recupera los pedidos y luego podremos agregar los resultados de la función FILTRO como deseemos.
El primer paso es ingresar los valores de los criterios para las tres condiciones en algunas celdas, como esta:
Haremos referencia a estos valores en nuestra función FILTRO, así:
=FILTRO(Tabla1[Pedido],(Tabla1[Fecha]=C9)+(Tabla1[Vale]=C10)+(Tabla1[Cantidad]C11))
Dónde:
- Tabla1[Orden] es la columna con los valores a devolver
- (Tabla1[Fecha]=C9)+(Tabla1[Vale]=C10)+(Tabla1[Cantidad]C11) es la expresión que define qué pedidos incluir en los resultados. Hay tres condiciones, cada una encerrada en su propio conjunto de paréntesis (). Usamos el operador de suma + entre cada conjunto de condiciones para indicarle a Excel que use la lógica OR. Nota: Si hubiéramos querido la lógica AND, habríamos usado el operador de multiplicación * en su lugar.
Los resultados incluyen la lista de pedidos que califican para envío gratuito:
Ahora, agregaremos los resultados de la función FILTRO con una variedad de funciones.
Agregar con COUNT, SUM, MAX
Para los pedidos con envío gratuito, nos gustaría saber el recuento, el monto total y el monto mayor del pedido.
CONTAR
Contemos la cantidad de pedidos que califican para envío gratuito. Simplemente podemos envolver la función CONTAR alrededor de nuestra función FILTRO, así:
=CONTAR(FILTRO(Tabla1[Orden],(Tabla1[Fecha]=C9)+(Tabla1[Vale]=C10)+(Tabla1[Cantidad]C11)))
Le damos Enter y vemos la cuenta de 7:
SUMA
Para SUM, no queremos sumar los identificadores de los pedidos, queremos sumar los montos de los pedidos. Por lo tanto, necesitamos actualizar la función FILTRO para devolver la columna Importe en lugar de la columna Orden. Entonces, envolvemos la función SUMA alrededor de nuestra función FILTRO actualizada de esta manera:
=SUM(FILTRO(Tabla1[Cantidad],(Tabla1[Fecha]=C9)+(Tabla1[Vale]=C10)+(Tabla1[Cantidad]C11)))
Presionamos Enter y ahora tenemos la cantidad total de pedidos con envío gratis:
MÁXIMO
Para encontrar el monto más grande del pedido de envío gratuito, combinaremos la función MAX alrededor de la función FILTRO, de esta manera:
=MAX(FILTRO(Tabla1[Cantidad],(Tabla1[Fecha]=C9)+(Tabla1[Vale]=C10)+(Tabla1[Cantidad]C11)))
Y podemos continuar aplicando varias funciones agregadas según lo deseemos.
Ahora, digamos que realmente queremos crear una lista separada por comas de los pedidos con envío gratuito. Para eso, usaremos ARRAYTOTEXT.
Agregado con ARRAYTOTEXT
La función ARRAYTOTEXT convierte un rango de valores en una única lista de valores separados por comas.
Entonces, podemos usar ARRAYTOTEXT con FILTER, así:
=ARRAYTOTEXT(FILTRO(Tabla1[Orden],(Tabla1[Fecha]=C9)+(Tabla1[Vale]=C10)+(Tabla1[Cantidad]C11)))
Le damos Enter y bam:
Conclusión
Y así es como podemos usar la función FILTRO para identificar transacciones usando lógica OR y luego agregar los resultados con funciones auxiliares.
Si esta publicación le resultó útil o tiene alguna sugerencia, compártala publicando un comentario a continuación… ¡gracias!
Archivo de muestra
AgregadoOR.xlxsDescargar
Deja una respuesta