FUNCIONES LÓGICAS Y CONDICIONALES EN POWER BI
Las funciones lógicas y condicionales en Power BI, principalmente en DAX, permiten tomar decisiones dentro de las medidas y columnas calculadas. Gracias a ellas puedes crear reglas de negocio, clasificar datos, aplicar diferentes cálculos según condiciones y controlar el flujo de la lógica de forma clara y eficiente.Estas funciones son fundamentales en casi cualquier modelo de datos profesional, ya que convierten un simple cálculo en un análisis inteligente adaptado a las necesidades del negocio.
Principales funciones lógicas y condicionales
IF – La función condicional básica
Es la más utilizada. Evalúa una condición y devuelve un valor si es verdadera y otro si es falsa.IF(; ; )
Ejemplo
Estado Ventas =
IF(
[Ventas] >= 10000;
"Alto";
"Bajo"
)
Clasificación =
IF(
[Ventas] >= 20000; "Excelente";
IF(
[Ventas] >= 10000; "Bueno";
"Regular"
)
)
SWITCH – Alternativa más limpia a IF anidados
Cuando hay varias condiciones, "SWITCH" es más legible y fácil de mantener.
SWITCH(
;
; ;
; ;
...
)
Ejemplo
Trimestre Nombre =
SWITCH(
QUARTER('Calendario'[Date]);
1; "Primer trimestre";
2; "Segundo trimestre";
3; "Tercer trimestre";
4; "Cuarto trimestre";
"Desconocido"
)
Nivel Cliente =
SWITCH(
TRUE();
[Ventas] >= 50000; "Premium";
[Ventas] >= 20000; "Gold";
[Ventas] >= 5000; "Silver";
"Básico"
)
AND, OR y NOT – Operadores lógicos
Permiten combinar varias condiciones.- ""AND" → Todas las condiciones deben ser verdaderas.
- ""OR" → Al menos una condición debe ser verdadera .
- ""NOT" → Invierte el resultado lógico.
Ejemplo
// Ambas condiciones deben cumplirse
Cliente Objetivo =
IF(
AND([Ventas] > 10000; [Margen] > 0,25);
"Sí";
"No"
)
// Al menos una condición
Alerta =
IF(
OR([Stock] < 10; [Días sin venta] > 30);
"Revisar";
"OK"
)
// Negación
No Activo =
IF(
NOT([Activo]);
"Inactivo";
"Activo"
)
IF([Ventas] > 10000 && [Margen] > 0,25; "Sí"; "No")
IFERROR e IF.E – Control de errores
Muy útiles para evitar que un error en una medida (por ejemplo, división por cero) rompa el informe.Margen % =
IFERROR(
DIVIDE([Beneficio]; [Ventas]);
0
)
COALESCE – Valor por defecto cuando hay nulos
Devuelve el primer valor que no sea BLANK.Nombre Completo =
COALESCE([Nombre Comercial]; [Nombre Fiscal]; "Sin nombre")
TRUE y FALSE
Se usan especialmente dentro de SWITCH(TRUE(); ...) o para devolver valores lógicos explícitos.Ejemplos prácticos de uso combinado
Clasificación de clientes según varios criterios
Segmento Cliente =
SWITCH(
TRUE();
[Ventas YTD] >= 100000 && [Nº Pedidos] >= 20; "VIP";
[Ventas YTD] >= 50000; "Premium";
[Ventas YTD] >= 10000; "Estándar";
"Ocasional"
)
Indicador de cumplimiento de objetivo
Cumple Objetivo =
IF(
[Ventas] >= [Objetivo];
"Cumple";
"No cumple"
)
Color condicional, para usar en formato condicional o medidas
Color KPI =
SWITCH(
TRUE();
[Variación %] >= 0,1; "Verde";
[Variación %] >= 0; "Amarillo";
"Rojo"
)