Tienes la medida escrita, no da error, el visual la pinta sin quejarse… y el total no coincide con el Excel que trae el área comercial. Cuando eso pasa, el problema casi nunca es la función que usaste. Es el contexto en el que se está evaluando, o el modelo debajo.
Van las causas en el orden en que conviene revisarlas, de la más común a la más disimulada.
Las tres que explican casi todo
Confundiste contexto de fila con contexto de filtro
Una columna calculada se evalúa fila por fila, al refrescar, y se congela ahí. Una medida se evalúa en el momento, con los filtros que tenga puesto el visual. Por eso una columna de margen funciona perfecto en la tabla de detalle y produce una barbaridad al sumarla en una tarjeta: estás sumando porcentajes.
Regla práctica: si el resultado depende de lo que el usuario filtre, va como medida. Si es un atributo fijo de la fila (una categoría, una bandera, un año), puede ir como columna.
CALCULATE no agrega un filtro: lo reemplaza
Este es el malentendido más caro de DAX. Cuando escribes un filtro simple dentro de CALCULATE, estás sobrescribiendo lo que ya venía del visual para esa columna, no sumándote a ello.
-- Da el total de Lima SIEMPRE, aunque el usuario filtre Arequipa
Ventas Lima = CALCULATE ( [Ventas], Ciudad[Nombre] = "Lima" )
-- Respeta lo que ya venía filtrado y además pide Lima
Ventas Lima (en contexto) =
CALCULATE ( [Ventas], KEEPFILTERS ( Ciudad[Nombre] = "Lima" ) )Las dos versiones son correctas; sirven para cosas distintas. El error es escribir la primera creyendo que hace lo de la segunda.
La relación existe, pero no es la que crees
Abre la vista de modelo y mira las líneas, no las tablas. Tres cosas se esconden ahí: relaciones punteadas (inactivas, que solo se activan con USERELATIONSHIP dentro de CALCULATE), la dirección del filtro —si apunta al revés, tu dimensión no filtra nada— y la cardinalidad. Si Power BI te puso muchos a muchos donde esperabas uno a muchos, hay duplicados en la columna que creías única, y ese es el verdadero bug.
Este orden de revisión es el que se trabaja en Análisis de Datos con Power BI - DAX: 14 sesiones que arrancan en las primeras medidas y la tabla de medidas, y llegan a CALCULATE, RELATED, iteradores, SWITCH con variables y Time Intelligence. Es nivel intermedio, con proyectos y certificado al final, y asume que ya armaste algún tablero antes.
Tres más chicas que igual te mueven el número
La tabla de fechas sin marcar. Las funciones de Time Intelligence (TOTALYTD, SAMEPERIODLASTYEAR y compañía) necesitan una tabla de calendario continua, marcada como tabla de fechas y relacionada con tu tabla de hechos. Si falta un día o la tabla no está marcada, no te sale un error: te sale un número tranquilo y equivocado, que es mucho peor.
Sumaste cuando había que iterar. SUM ( Ventas[Precio] ) * SUM ( Ventas[Cantidad] ) no es lo mismo que SUMX ( Ventas, Ventas[Precio] * Ventas[Cantidad] ). El primero multiplica dos totales; el segundo multiplica fila por fila y después suma. Con precios distintos por producto, la diferencia entre ambos es enorme.
Dividiste con la barra. DIVIDE existe justamente para el caso del denominador en cero: devuelve en blanco en lugar de reventar el visual con un infinito o un error. Es un cambio de un segundo y evita la mitad de los tickets de «el gráfico salió vacío».
Cómo depurarlo sin adivinar
- Saca la medida del tablero bonito y ponla en una matriz pelada, con una sola dimensión. Si ahí cuadra, el problema es un filtro del visual o del panel, no tu DAX.
- Parte la medida en variables y devuelve una a la vez. VAR no es solo para rendimiento: es la única forma decente de ver el paso intermedio.
- Agrega una medida de control con COUNTROWS sobre la tabla de hechos. Si el conteo baja donde no debería, el problema está en el modelo y no en la fórmula.
- Recién entonces revisa la sintaxis. En mi experiencia, llegar hasta acá resuelve el problema antes del paso 4 nueve de cada diez veces.
Lo que nadie dice en los tutoriales: DAX no es difícil por las funciones. Son unas treinta las que se usan a diario. Es difícil porque el mismo código devuelve cosas distintas según dónde lo pongas, y eso no se aprende memorizando fórmulas sino entendiendo el modelo.
Qué estudiar después
Si lo que te falla es la parte visual —qué gráfico usar, cómo ordenar un tablero para que se entienda en diez segundos— eso es otro oficio y se trabaja en Visualización de Datos con Power BI. Y si vas por el puesto completo, la ruta de Analista de Datos con IA mete SQL, Python y el modelado que hace que estos errores dejen de aparecer de entrada.
Lo concreto que te llevas del curso de DAX: una tabla de medidas ordenada en vez de fórmulas regadas por el modelo, comparativos interanuales que cuadran con contabilidad, y la capacidad de mirar una medida ajena y decir en un minuto por qué está dando mal. Eso último es lo que distingue a quien arma tableros de quien los arregla.
Si te sirve resolver estas cosas en vivo y con alguien al lado, en la Comunidad AI Builders hacemos un taller por semana y los casos de modelo salen seguido.

