Medidas vs columnas calculadas en Power BI

Medidas vs columnas calculadas en Power BI

Las medidas y columnas calculadas en Power BI usan DAX, pero se evalúan en momentos y contextos diferentes. Una columna produce un valor por fila y se almacena en el modelo; una medida calcula un resultado cuando un visual lo solicita.

Elegir mal puede aumentar el tamaño, producir totales inesperados o impedir que un cálculo responda a los filtros.

Qué es una columna calculada

Importe Línea =
Ventas[Cantidad] * Ventas[Precio Unitario]

Se evalúa fila por fila durante la actualización y queda almacenada. Puede utilizarse en:

  • ejes;
  • filas y columnas de matrices;
  • relaciones;
  • ordenamiento;
  • grupos;
  • segmentadores.

La columna conoce el contexto de fila, pero no cambia con la interacción del usuario hasta un nuevo refresco.

Qué es una medida

Ventas Totales =
SUMX (
    Ventas,
    Ventas[Cantidad] * Ventas[Precio Unitario]
)

La medida se evalúa según el contexto de filtro: fecha, producto, región y selección del informe. No guarda un resultado por transacción.

Margen % =
DIVIDE (
    [Ventas Totales] - [Costos Totales],
    [Ventas Totales]
)

Si cambia un segmentador, la medida responde.

Comparación

Aspecto Columna calculada Medida
Momento Refresco Al consultar
Contexto principal Fila Filtro
Almacenamiento Valor por fila Definición
Eje o segmentador No directamente
Responde a filtros No recalcula filas
Uso típico Clasificación Agregación

Cuándo usar una columna

Una columna es apropiada si necesitas una categoría estable por fila:

Rango Importe =
SWITCH (
    TRUE (),
    Ventas[Importe] >= 1000, "Alto",
    Ventas[Importe] >= 300, "Medio",
    "Bajo"
)

Esa etiqueta puede colocarse en un eje. Antes de crearla con DAX, pregunta si debería calcularse en la fuente o en Power Query, donde la transformación ocurre antes de cargar.

Cuándo usar una medida

Usa medida para totales, porcentajes, promedios, acumulados y comparaciones que deben responder al informe:

Participación % =
DIVIDE (
    [Ventas Totales],
    CALCULATE (
        [Ventas Totales],
        REMOVEFILTERS ( Productos[Categoria] )
    )
)

El denominador depende de qué filtro eliminas. Prueba la medida en diferentes niveles y no supongas que el total es la suma de filas visibles.

El error de sumar una columna calculada

Crear margen porcentual por fila y luego promediarlo puede ser incorrecto:

Margen Fila % =
DIVIDE ( Ventas[Margen], Ventas[Importe] )

El porcentaje global debería calcularse con totales:

Margen % =
DIVIDE ( SUM(Ventas[Margen]), SUM(Ventas[Importe]) )

Es una media ponderada implícita. Las razones y porcentajes suelen pertenecer a medidas.

Contexto de fila y de filtro

El contexto de fila indica la fila actual. El contexto de filtro delimita el conjunto activo. CALCULATE puede transformar contexto y las relaciones propagan filtros.

La guía de DAX en Power BI desarrolla CALCULATE, iteradores y variables. El artículo de relaciones explica por qué una medida depende del modelo.

Memoria y rendimiento

Una columna con millones de valores únicos puede comprimir mal y aumentar el modelo. Una medida ahorra almacenamiento, pero una expresión compleja puede consumir CPU en cada consulta.

Optimiza en este orden:

  1. Corrige el modelo.
  2. Elimina columnas no usadas.
  3. Reduce cardinalidad.
  4. Reutiliza medidas base.
  5. Mide con Performance Analyzer.
  6. Optimiza solo el cuello real.

Columna personalizada de Power Query

No la confundas con una columna DAX:

  • Power Query usa M antes de cargar.
  • Columna calculada usa DAX después de cargar y se almacena.
  • Medida usa DAX bajo demanda.

Una transformación determinista y reutilizable suele convenir en origen o Power Query; una lógica que necesita el modelo puede quedar en DAX.

Errores frecuentes

  • Crear columnas para totales que deben responder a filtros.
  • Usar medidas como si fueran categorías.
  • Promediar porcentajes por fila.
  • Duplicar lógica de negocio.
  • Añadir columnas de alta cardinalidad.
  • Ignorar relaciones y contexto.
  • Usar DAX para limpiar datos que deben corregirse antes.
  • Optimizar por intuición.

La decisión correcta no depende de cuál fórmula es más corta, sino de la granularidad y el momento en que el resultado debe cambiar.

Preguntas frecuentes

¿Cuál es la diferencia principal entre medida y columna?
La columna se calcula por fila y se almacena; la medida se evalúa bajo el contexto de filtro del visual.

¿Una medida ocupa memoria?
Guarda su definición, no un valor por fila. Aun así, consume recursos de cálculo cuando se consulta.

¿Puedo usar una medida en un segmentador?
No como campo tradicional. Los segmentadores usan columnas; para escenarios dinámicos existen parámetros y patrones avanzados.

¿Dónde conviene crear una categoría?
Si es estable por fila, puede ir en origen, Power Query o una columna calculada, priorizando la capa más reutilizable y eficiente.

¿Por qué el total de una medida no suma las filas?
Porque la medida se vuelve a evaluar en el contexto del total; no necesariamente agrega los resultados visibles.

¿Los porcentajes deben ser medidas?
Normalmente sí cuando deben calcularse como razón entre totales y responder a filtros.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir