Medidas y Columnas Calculadas
Ahora que conoces los fundamentos de DAX, vamos a profundizar en medidas y columnas calculadas — las dos formas principales de crear cálculos personalizados en Power BI.
Crear una medida
- Selecciona la tabla donde quieres la medida.
- Haz clic en Nueva medida en la cinta.
- Escribe la fórmula DAX en la barra de fórmulas.
Total Ventas = SUM(Ventas[Monto])
Buena práctica: tabla de medidas
Crea una tabla vacía llamada _Medidas para agrupar todas tus medidas:
_Medidas = ROW("Placeholder", 0)
Luego crea todas las medidas dentro de esa tabla. Esto mantiene tu modelo organizado.
Medidas de negocio esenciales
Ingresos y márgenes
Ingresos = SUM(Ventas[Monto])
Costo Total = SUM(Ventas[Costo])
Ganancia = [Ingresos] - [Costo Total]
Margen % = DIVIDE([Ganancia], [Ingresos], 0)
Contadores
Num Transacciones = COUNTROWS(Ventas)
Num Clientes = DISTINCTCOUNT(Ventas[ClienteID])
Num Productos Vendidos = DISTINCTCOUNT(Ventas[ProductoID])
Ticket Promedio = DIVIDE([Ingresos], [Num Transacciones], 0)
Participación (Share)
% del Total =
DIVIDE(
[Ingresos],
CALCULATE([Ingresos], ALL(Productos[Categoría])),
0
)
ALL() remueve el filtro de categoría, dando el total general como denominador.
Funciones iteradoras (X)
Las funciones que terminan en X iteran fila por fila:
// SUMX: suma evaluando una expresión por cada fila
Ingreso Calculado = SUMX(Ventas, Ventas[Cantidad] * Ventas[PrecioUnitario])
// AVERAGEX: promedio de una expresión
Margen Promedio = AVERAGEX(Ventas, Ventas[Monto] - Ventas[Costo])
// COUNTX: cuenta filas que cumplen una condición
Ventas Grandes = COUNTX(FILTER(Ventas, Ventas[Monto] > 10000), 1)
// MAXX, MINX
Mayor Margen = MAXX(Ventas, Ventas[Monto] - Ventas[Costo])
Columnas calculadas
Se crean en la Vista de Datos. Se evalúan fila por fila al refrescar.
// Rango de precio
Rango Precio =
SWITCH(TRUE(),
Ventas[Monto] >= 50000, "Premium",
Ventas[Monto] >= 10000, "Alto",
Ventas[Monto] >= 1000, "Medio",
"Bajo"
)
// Flag de meta cumplida
Meta Cumplida = IF(Ventas[Monto] >= Ventas[Meta], "Sí", "No")
// Concatenar para clave compuesta
Clave = Ventas[Región] & "-" & FORMAT(Ventas[Fecha], "YYYY-MM")
Cuándo usar medida vs columna calculada
| Escenario | Usar |
|---|---|
| Total de ventas por categoría | Medida |
| % de margen que cambia con filtros | Medida |
| Clasificar cada fila en "Alto/Medio/Bajo" | Columna calculada |
| Crear un campo para usar en un slicer | Columna calculada |
| KPI en una tarjeta | Medida |
| Concatenar nombre + apellido | Columna calculada |
| Ranking dinámico | Medida |
Formato de medidas
Configura el formato directamente en las propiedades:
- Número entero:
#,0 - Moneda:
$#,0.00 - Porcentaje:
0.0%
También puedes usar FORMAT() dentro de medidas de texto:
Ingresos Texto = FORMAT([Ingresos], "$#,##0.00")
Organización con carpetas
Crea carpetas de visualización para agrupar medidas relacionadas:
_Medidas/
├── Financieras/
│ ├── Ingresos
│ ├── Costos
│ └── Margen %
├── Operativas/
│ ├── Num Transacciones
│ └── Ticket Promedio
└── Comparativas/
├── Ventas YoY
└── % del Total
Selecciona la medida → en Propiedades → Carpeta de presentación.
Resumen
Las medidas se calculan dinámicamente según el contexto de filtro y son ideales para KPIs y agregaciones. Las columnas calculadas se evalúan por fila al refrescar y sirven para categorías y atributos. Usa una tabla _Medidas para organización y carpetas para agrupar medidas relacionadas.