MEDIDAS EN POWER BI: GUÍA COMPLETA PARA DOMINAR EL CÁLCULO DINÁMICO

Una medida es una fórmula DAX que calcula un valor agregado o transformado en tiempo de consulta. No se almacena físicamente en el modelo, a diferencia de una columna calculada, se evalúa según el contexto de filtro vigente.

Ejemplos típicos

  • Suma de ventas
  • Promedio de ticket
  • Margen de contribución
  • Ventas del año anterior
  • Porcentaje del total

Cómo crear una medida

  1. Hacer click con el botón derecho del ratón en el panel "Campos" de la tabla deseada y seleccionar "Nueva medida".
  2. Escribir la fórmula en la barra de fórmulas.
  3. Nombrarla de forma clara y descriptiva, como "Ventas Totales! y no "Medida1".
  4. Opcionalmente, formatear el valor, como moneda, porcentaje, decimal, desde la pestaña "Herramientas de medida".

Fundamentos de DAX para medidas

El lenguaje DAX, o Data Analysis Expressions, es el corazón de las medidas. Algunas funciones esenciales son:

Ejemplos

Ventas Totales = SUM(Ventas[Importe])

Ejemplo con CALCULATE, el más importante

Ventas Año Anterior = 
CALCULATE(
    [Ventas Totales],
    SAMEPERIODLASTYEAR(Calendario[Fecha])
)

Ejemplo de ratio

% Margen = 
DIVIDE(
    [Beneficio],
    [Ventas Totales],
    0
)

Medidas implícitas vs Medida explícitas

  • Medidas Implícitas: Power BI las crea automáticamente al arrastrar un campo numérico a un elemento visual, usar la agregación por defecto, como Suma, Promedio, etc.. Son rápidas pero limitadas y difíciles de reutilizar o controlar.
  • Medidas Explícitas: Las el usuario con DAX. Son reutilizables, documentables, auditables y mucho más potentes. Siempre prioriza las medidas explícitas en modelos profesionales.

Mejores prácticas

  • Nomenclatura consistente: Usar un estándar claro. Ejemplo: "[Ventas Totales]", "[Ventas YA]", "[% Cumplimiento Meta]".
  • Organización: Agrupar medidas en carpetas de visualización, dentro de cada tabla o en una tabla dedicada llamada "_Medidas" o "Medidas".
  • Documentación: Añadir descripciones en cada medida.
  • Evitar medidas excesivamente anidadas: Es mejor crear medidas intermedias reutilizables.
  • Rendimiento:
    • Minimizar el uso de "FILTER" sobre tablas grandes cuando sea posible.
    • Usar variables, "VAR", para mejorar legibilidad y rendimiento.
    • Usar "CALCULATE" con modificadores de filtro en lugar de filtros complejos.
  • Formato: Configurar el formato de la medida, no solo en la parte visual.
  • Pruebas: Validar el contexto de filtro con matrices y segmentaciones antes de publicar.

Ejemplo con variables

Ventas vs Año Anterior = 
VAR VentasActual = [Ventas Totales]
VAR VentasAnterior = [Ventas Año Anterior]
RETURN
    DIVIDE(VentasActual - VentasAnterior

Casos de uso avanzados

  • Medidas de tiempo inteligente: "YTD", "QTD", "MTD", comparativas interanuales.
  • Porcentajes del total: Usando "ALL" o "ALLSELECTED".
  • Medidas semi-aditivas: Inventario, saldo bancario, usando "LASTDATE" o "LASTNONBLANK".
  • Medidas dinámicas: Usando "SELECTEDVALUE" o campos de parámetros de campo.

Errores comunes a evitar

  • Crear columnas calculadas cuando realmente se necesita una medida.
  • Usar "SUMX" o iteradores innecesariamente, son más costosos.
  • No manejar correctamente el contexto de fila vs contexto de filtro.
  • Nombrar medidas de forma genérica o en varios idiomas mezclados.
  • Olvidar el formato y la descripción.