Una de las decisiones más importantes en DAX: entender cuándo usar columnas calculadas y cuándo usar medidas marcará la diferencia entre un modelo lento y uno eficiente
Principiante
📋
Columnas Calculadas
¿Qué es una columna calculada?
Una columna calculada es una columna nueva que añades a una tabla existente usando una fórmula DAX. Se calcula una vez durante la actualización de datos y su resultado se almacena en el modelo — ocupa espacio en memoria.
Características:
Se evalúa fila por fila (contexto de fila)
El resultado se almacena en el archivo PBIX (en memoria)
Se calcula al actualizar datos, no en tiempo de consulta
Puede usarse en slicers, ejes X/Y de gráficos, filas de tabla, y para filtrar
Puede usarse como campo en relaciones
Ejemplo:
// Columna calculada en FactVentas — se almacena en el modelo
Importe Total = FactVentas[Cantidad] * FactVentas[PrecioUnitario]
// Columna calculada con IF — categoriza cada fila
Segmento Precio =
IF(
FactVentas[PrecioUnitario] > 100,
"Premium",
IF(FactVentas[PrecioUnitario] > 50, "Medio", "Básico")
)
// Columna calculada con RELATED — trae datos de otra tabla
Categoria Producto = RELATED(DimProducto[Categoria])
📏
Medidas (Measures)
¿Qué es una medida?
Una medida es una fórmula DAX que se evalúa dinámicamente en el momento de la consulta, respondiendo al contexto de filtro actual del visual o informe. No almacena datos — solo calcula cuando es necesario.
Características:
Se evalúa en contexto de filtro (no fila por fila)
No ocupa espacio en memoria — solo se calcula cuando se usa
Se recalcula dinámicamente con cada cambio de filtro o slicer
Puede usarse en la sección Valores de un visual
Puede contener CALCULATE para modificar el contexto de filtro
Ejemplo:
// Medida básica — se recalcula según los filtros del visual
Ventas Totales = SUM(FactVentas[Importe Total])
// Medida con CALCULATE — modifica el contexto de filtro
Ventas Año Anterior =
CALCULATE(
SUM(FactVentas[Importe Total]),
SAMEPERIODLASTYEAR(DimFecha[Fecha])
)
// Medida de ratio — combina dos medidas
% Margen =
DIVIDE(
SUM(FactVentas[Margen]),
SUM(FactVentas[Importe Total]),
0
)
🔍
Diferencias Clave
Comparativa completa
📋 Columna Calculada
Contexto de fila (row context)
Se calcula al actualizar datos
Almacena el resultado (usa RAM)
Puede usarse en slicers y ejes
Puede usarse en relaciones
No puede usar CALCULATE directamente
Visible en la tabla de datos
📏 Medida
Contexto de filtro (filter context)
Se calcula en tiempo de consulta
No almacena datos (usa CPU)
Solo en la sección "Valores"
No puede usarse en relaciones
Puede usar CALCULATE libremente
No ocupa columnas en tablas
Impacto en el rendimiento:
Aspecto
Columna calculada
Medida
Tamaño del archivo PBIX
Aumenta (guarda datos)
No cambia
Tiempo de actualización
Aumenta (recalcula todas)
No afecta
Velocidad de consulta
Rápida (dato ya calculado)
Variable (depende de la fórmula)
Flexibilidad
Resultado fijo
Responde al contexto dinámicamente
🎯
¿Cuándo Usar Cada Una?
Usa una columna calculada cuando...
Necesitas el valor para filtrar, agrupar o segmentar (en un slicer o eje de gráfico)
Necesitas crear una columna de clave para una relación
El cálculo no depende del contexto del visual (es fijo por fila)
Necesitas acceder a valores de otra tabla relacionada con RELATED()
La columna no existe en el origen y sería difícil crearla en Power Query
Usa una medida cuando...
Necesitas un valor que cambia según los filtros del informe
Quieres hacer totales, ratios, comparativas o cálculos de período anterior
El cálculo requiere CALCULATE o funciones de inteligencia de tiempo
Quieres mantener el archivo PBIX pequeño
El cálculo es una agregación (SUM, AVERAGE, COUNT, etc.)
💡 Regla de oro: Si tu cálculo termina con SUM, AVERAGE, COUNT, MAX, MIN o cualquier otra agregación — es una medida. Si describes un atributo de una fila específica (color, categoría, precio con descuento) — puede ser una columna calculada. Cuando tengas duda, elige la medida: es más flexible y eficiente. 🌸
⚠️
Errores Comunes de Principiantes
Error #1: Crear columnas calculadas para todo
El error más frecuente es crear una columna calculada Ventas = SUM(FactVentas[Importe]). Esto no funciona como esperas — SUM en una columna calculada suma toda la tabla sin tener en cuenta los filtros del informe. Siempre crea medidas para las agregaciones.
Error #2: Columnas calculadas con alta cardinalidad innecesaria
Crear columnas calculadas que generan muchos valores únicos (como concatenar ID + fecha para crear un ID único) aumenta la cardinalidad del modelo y lo hace más lento. Si no necesitas esa columna para filtrar o como clave de relación, evítala.
Error #3: No usar tablas de medidas
// RECOMENDADO: crea una tabla vacía solo para organizar medidas
// En Power Query crea una tabla: = #table({},{})
// Nómbrala "Medidas" o "_Medidas" (el _ la pone al principio)
// Así todas tus medidas quedan organizadas en un sitio
// y no dispersas por todas las tablas del modelo
📌 Buena práctica: Crea siempre una tabla vacía dedicada para tus medidas (se llama tabla de medidas o measure table). Nómbrala con un guion bajo al principio (_Medidas) para que aparezca primero en el panel de campos y sea fácil de encontrar.
🚀 ¡Gran avance! Ahora que entiendes la diferencia, el siguiente paso es aprender a crear medidas poderosas con las funciones de filtro y contexto DAX (CALCULATE, ALL, FILTER). Para entender el impacto en rendimiento en profundidad, visita Optimización de Rendimiento.