Funciones Lógicas y condicionales Power Bi
En esta clase vamos a aprender cómo crear columnas condicionales usando funciones lógicas en DAX como IF
, AND
, OR
y NOT
.
Veremos ejemplos paso a paso que podrás replicar tú mismo, y al final tendrás un archivo descargable para practicar.
🧠 ¿Qué son las funciones condicionales en DAX?
Las funciones condicionales nos permiten evaluar condiciones y devolver resultados distintos según se cumplan o no.
Estas funciones son fundamentales para:
- Crear clasificaciones personalizadas
- Mostrar alertas o etiquetas (como «A tiempo» o «Retrasado»)
- Analizar resultados de forma dinámica
Paso 1: La función IF ✅
La función IF en DAX es como la función SÍ de Excel, pero en inglés. ¡Es súper versátil y la base de las condicionales! Vamos a crear una columna calculada para practicar.
- En Power BI, ve a la tabla y haz clic en Nueva Columna.
- Nómbrala Cond 1.
- Escribe esta fórmula:
Cond 1 =
IF(Tabla1[DiaSemana]=7,"FERIADO","")
Explicación: Si el día de la semana es 7 (domingo), muestra «FERIADO». Si no, deja en blanco.
- Presiona Enter y verifica: todos los domingos ahora dicen «Feriado». 🎉
Paso 2: Agregar el operador NOT 🚫
¡Vamos a darle un giro! Usaremos el operador NOT para obtener lo opuesto a nuestro condicional anterior.
- Usa esta fórmula:
Cond 1 =
IF(NOT Tabla1[DiaSemana]=7,"LABORABLE","")
Explicación: Si el día NO es domingo (7), muestra «Laborable». Si es domingo, queda en blanco.
- Presiona Enter y observa: todos los días excepto los domingos ahora son «Laborable». 😄
Paso 3: Anidar funciones IF para más condiciones 🔄
Ahora vamos a combinar condiciones para clasificar los días de forma más detallada.
- Crea una Nueva Columna llamada Cond 2.
- Escribe esta fórmula:
Cond 2 =
IF(Tabla1[DiaSemana]=7,
"FERIADO",
IF(Tabla1[DiaSemana]=6,
"Medio Día",
"Laborable"
)
)
Explicación:
Si es domingo (7), muestra «Feriado».
Si es sábado (6), muestra «Medio Día» (en Perú, los sábados suelen ser así 😜).
Si no es ninguno, muestra «Laborable».
- Presiona Enter y revisa: los domingos son «Feriado», los sábados «Medio Día», y el resto «Laborable». ¡Súper claro! 🌟
Paso 4: Usar el operador OR ➕
El operador OR nos permite verificar si al menos una de varias condiciones se cumple. ¡Vamos a probarlo!
- Crea una Nueva Columna llamada Cond 3.
- Escribe:
Cond 3 =
IF(OR(Tabla1[DiaSemana]=6,Tabla1[DiaSemana]=7),
"FERIADO",
"")
Explicación: Si el día es sábado (6) O domingo (7), muestra «Feriado». Si no, queda en blanco.
- Presiona Enter: verás «Feriado» en sábados y domingos. ¡Fácil y poderoso! 💪
Paso 5: Combinar OR ( || ) con múltiples condiciones 🔗
Vamos a extender el uso de OR para cubrir más días, como de lunes a viernes.
- Crea una Nueva Columna llamada Cond
4
. - Usa esta fórmula:
Cond 4 =
IF(Tabla1[DiaSemana]=1 || Tabla1[DiaSemana]=2 || Tabla1[DiaSemana]=3 ||Tabla1[DiaSemana]=4 || Tabla1[DiaSemana]=5,
"Laborable",
"")
Nota: Aquí usamos el operador || (o «OR» lógico) para verificar si el día es 1, 2, 3, 4 o 5 (lunes a viernes).
- Presiona Enter: los días de lunes a viernes muestran «Laborable», y el resto queda en blanco. 😎
Paso 6: Simplificar con IN y llaves 🛠️
¡Hagamos lo mismo, pero más limpio! Usaremos el operador IN para evitar repetir condiciones.
- Crea una Nueva Columna llamada Cond
5
. - Escribe:
Cond 5 =
IF(Tabla1[DiaSemana] in {1,2,3,4,5},
"Laborable",
"")
Explicación: La función IN revisa si el día está en la lista {1, 2, 3, 4, 5}. Si está, muestra «laborable» (en minúscula para diferenciar). Si no, queda en blanco.
- Presiona Enter: obtendrás el mismo resultado que en el paso anterior, pero con menos código. ¡Eficiencia al máximo! 🚀
Paso 7: Usar AND para condiciones estrictas 🔒
El operador AND (o &&) exige que TODAS las condiciones se cumplan. Vamos a probarlo.
- Crea una Nueva Columna llamada Condicional7.
- Escribe:
Cond 6 =
IF (Tabla1[DiaSemana]=6 && Tabla1[MES]=10,
"Cumplió",
""
)
- Explicación: Solo muestra «Cumplió» si el día es sábado (6) Y el mes es octubre (10). Si no se cumplen ambas, queda en blanco.
Presiona Enter: revisa los resultados. Solo aparecerá «Cumplió» donde ambas condiciones coincidan. 🎯
Paso 8: Combinar OR y AND para reglas complejas 🧩
¡Subamos el nivel! Vamos a combinar OR y AND para un condicional más avanzado.
- Crea una Nueva Columna llamada Cond 07.
- Escribe:
Cond 07 =
IF ((Tabla1[DiaSemana]=6 || Tabla1[DiaSemana]=7) && Tabla1[MES]=12,
"OKKKKK",
""
)
Explicación:
Verifica si el día es sábado (6) O domingo (7) Y el mes es diciembre (12).
Si ambas partes se cumplen (un día de fin de semana Y diciembre), muestra «OK». Si no, queda en blanco.
- Presiona Enter y revisa: solo los sábados y domingos de diciembre mostrarán «OK». ¡Condicional de alto impacto! 🌟
¡Y listo! 🎬
Has aprendido a usar funciones lógicas y condicionales en DAX como un experto. 🏆 Practica con los ejercicios, combina operadores y crea cálculos que sorprendan. Si tienes dudas, déjalas en los comentarios y te responderemos. ¡Nos vemos en el próximo capítulo del curso! 🚀
Notas Adicionales 📝
- Enlaces: Todos los recursos (tablas y curso completo) están en la descripción del video. ¡Es gratis, así que aprovéchalo! 😊
- Formato limpio: Usa Shift + Enter en el editor DAX para organizar tu código en líneas separadas. Esto hace que sea más fácil de leer, especialmente con fórmulas largas.
- Errores comunes: Asegúrate de cerrar todos los paréntesis y usar comas correctamente. Si ves un error, revisa la sintaxis con calma. 🔍
Módulo 9: Funciones DAX II
Descargar Tabla Calendario
Tabla Fechas .pbix
Tabla Productos, Ventas, Otra Tabla
Responses