(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Variables en DAX (VAR): medidas más rápidas y legibles
Power BI

Variables en DAX (VAR): medidas más rápidas y legibles

João Barros 05/07/2026 7 min

Hay una medida en tu modelo que nadie quiere tocar. Tiene tres CALCULATE anidados, repite la misma expresión de ventas en cuatro sitios y, cuando la pones en un objeto visual, el informe duda antes de dibujarse. Cuando alguien pregunta qué hace exactamente, la respuesta honesta suele ser: "funciona, no la toques". Ese es el retrato de una medida escrita sin variables.

Las variables en DAX —declaradas con VAR y devueltas con RETURN— están entre las herramientas más simples y menos aprovechadas de Power BI. La idea es elemental: calcular un valor (o una tabla) una vez, darle un nombre y reutilizarlo tantas veces como haga falta. El efecto, en cambio, no es elemental en absoluto: medidas más rápidas, más fáciles de leer y mucho menos dolorosas de corregir cuando algo sale mal.

Esta guía muestra qué son las variables en DAX, por qué mejoran el rendimiento, cómo usarlas bien y qué trampas evitar. Al final tendrás un patrón que se aplica a casi cualquier medida de tu informe: desde el cálculo de un margen hasta el indicador más enrevesado del panel.

Qué es, en realidad, una variable en DAX

Una variable guarda el resultado de una expresión para que puedas reutilizarlo después por su nombre. Se declara con VAR, seguido de un nombre y de la expresión; el valor final de la medida viene después de RETURN. Una medida puede tener varias declaraciones VAR, pero un solo RETURN.

Variables en DAX (VAR): medidas más rápidas y legibles

Un ejemplo sencillo de margen porcentual:

Margem % = 
VAR Vendas = SUM ( Faturas[Total] )
VAR Custo = SUM ( Faturas[Custo] )
VAR Lucro = Vendas - Custo
RETURN
    DIVIDE ( Lucro, Vendas )

Fíjate en que cada paso tiene un nombre. No necesitas descifrar qué significa SUM ( Faturas[Total] ) tres líneas más abajo: es Vendas. La expresión se lee casi como una frase, y eso ya hace valiosas las variables incluso antes de hablar de rendimiento.

Por qué hacen las medidas más rápidas

La regla de oro es esta: una variable se evalúa una sola vez y el resultado queda guardado para todos los usos posteriores. Cuando escribes SUM ( Faturas[Total] ) en tres puntos de una medida, le estás pidiendo al motor que haga, potencialmente, ese cálculo tres veces. Al guardarlo en una variable, el trabajo se hace una vez y se reaprovecha.

En modelos pequeños la diferencia es imperceptible. En tablas de millones de filas, o en medidas que iteran con SUMX sobre el detalle, evitar recálculos repetidos puede convertir un objeto visual lento en uno instantáneo. Las variables no son un truco exótico de microoptimización: son, muchas veces, la forma más barata de acelerar un informe.

Código más legible: menos repetición, más intención

La legibilidad no es un lujo estético. Una medida que se entiende es una medida que se puede auditar, corregir y hacer evolucionar sin miedo. Las variables permiten partir un cálculo complejo en pasos con nombre, cada uno documentando su intención.

Compara una expresión anidada, escrita en una sola línea, con la versión por pasos. La primera te obliga a leer de dentro hacia fuera y a retener valores intermedios en la cabeza. La segunda te dice, línea a línea, qué está pasando. Dentro de seis meses —o cuando sea otra persona quien abra el archivo— esa claridad vale oro.

Depurar medidas asomándote a las variables

Hay un truco de depuración que por sí solo justifica adoptar variables. Cuando una medida devuelve un resultado extraño, cambia temporalmente el RETURN para que devuelva una de las variables intermedias en lugar del resultado final:

Margem % = 
VAR Vendas = SUM ( Faturas[Total] )
VAR Custo = SUM ( Faturas[Custo] )
VAR Lucro = Vendas - Custo
RETURN
    Lucro

Pones esa medida en una tarjeta, compruebas si Lucro tiene el valor esperado y, cuando encuentres el error, restauras el RETURN original. Sin variables tendrías que partir la fórmula en medidas sueltas solo para inspeccionar los pasos. Con ellas, el diagnóstico se hace en el propio sitio.

Variables que guardan tablas, no solo números

Una variable no tiene por qué ser un número. Puede guardar una tabla entera —el resultado de un FILTER, por ejemplo— y reutilizarla más adelante. Esto abre la puerta a medidas más expresivas sin repetir la lógica de filtrado:

Clientes Ativos Alto Valor = 
VAR Selecao =
    FILTER (
        Clientes,
        Clientes[Estado] = "Ativo" && Clientes[Valor] > 1000
    )
RETURN
    COUNTROWS ( Selecao )

La variable Selecao es una tabla en memoria. Podrías contarla, sumarla o usarla como filtro dentro de CALCULATE: todo a partir de la misma definición, escrita una vez.

La trampa del contexto: dónde se evalúa la variable

Aquí está el punto que pilla a casi todo el mundo. Una variable se evalúa en el contexto donde se declara, no donde se usa. Si declaras una variable fuera de un CALCULATE y luego la usas dentro, conserva el valor que tenía antes de que CALCULATE cambiara el contexto de filtro.

Muchas veces esto es justo lo que quieres: permite, por ejemplo, comparar el valor actual con un valor "congelado" antes del cambio de contexto. Pero si esperabas que la variable "reaccionara" al nuevo filtro, obtendrás un resultado que parece erróneo. No es un fallo de DAX; es la regla haciendo su trabajo. Cuando algo no cuadre dentro de un CALCULATE, pregúntate siempre en qué contexto se evaluó realmente la variable.

Errores comunes que conviene evitar

  • Nombres vagos. Temp1, Aux o X tiran a la basura la mitad de la ventaja. Da nombres que digan qué representa el valor: Vendas, Lucro, ClientesAtivos.
  • Esperar una reacción al contexto cambiado. Como vimos, una variable no "ve" el filtro que un CALCULATE aplica después de declararla.
  • Querer devolver dos cosas. Solo existe un RETURN. Si necesitas dos resultados, o haces dos medidas, o devuelves una tabla.
  • Declarar sin usar. Una variable que nunca llega al RETURN ni a otra variable es ruido: el motor puede ignorarla, pero quien lee el código, no.
  • Suponer que las variables se comparten entre medidas. Cada medida tiene su propio ámbito; un VAR llamado Vendas en una medida no tiene nada que ver con otro del mismo nombre en otra.

Minicaso: un panel de ventas que volvió a respirar

Una empresa de distribución B2B tenía un panel de ventas con unas treinta medidas. Varias repetían el mismo SUMX sobre la tabla de líneas de factura —más de dos millones de registros— para calcular ingresos, margen y ticket medio. La página principal tardaba cerca de nueve segundos en dibujarse, y los analistas más recientes evitaban cambiar nada por miedo a romper algo.

El equipo reescribió ocho medidas críticas, moviendo los cálculos repetidos a variables al principio de cada fórmula. No cambiaron el modelo ni añadieron hardware. El tiempo de carga de la página bajó a unos tres segundos y, igual de importante, un analista júnior pudo entender y ajustar las medidas sin ayuda. La legibilidad convirtió una zona intocable del informe en código que el equipo pasó a mantener con confianza.

En la práctica

Adopta las variables por defecto, no como una técnica avanzada reservada a expertos. Dos reglas prácticas resuelven casi todo: si repites una expresión, conviértela en una variable; si una medida pasa de tres o cuatro líneas, seguramente se lee mejor con VAR. Das nombres claros a los pasos, evalúas cada expresión una sola vez y ganas, gratis, un método de depuración. Es, en el fondo, higiene básica de DAX, y de la que más rinde por minuto invertido.

← Volver a Insights
¿Hablamos?

¿Listo para transformar sus datos?

Reserve una reunión gratuita de 30 minutos y descubra cómo podemos ayudar a su equipo a tomar mejores decisiones.

Agendar Reunión Gratuita
bConcepts