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"
)
También se puede anidar:

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"
)
Versión con condiciones (TRUE):

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"
)
Nota: En DAX también se pueden usar los operadores && (AND) y || (OR) de forma más compacta:

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"
)