Blog | ES | EN
Saltar al contenido

Funciones DAX en Power BI: guía de las más usadas (con ejemplos)

11 min de lectura803

Los gráficos pueden ser espectaculares, pero sin cálculos fiables detrás, las conclusiones pierden valor. Ahí es donde entra en juego DAX (Data Analysis Expressions), el lenguaje de fórmulas que permite convertir Power BI en una herramienta de análisis realmente potente 🚀.

Uno de los problemas más habituales aparece cuando una medida parece correcta, pero no devuelve el resultado esperado ⚠️. En muchos casos, el fallo no está en la sintaxis, sino en una comprensión incompleta del contexto de filtro y del contexto de fila.

En esta guía aprenderás qué es DAX, qué conceptos debes dominar y cuáles son las funciones DAX Power BI más utilizadas. Además, entenderás por qué contratar un experto en Power BI puede marcar la diferencia si buscas desarrollar modelos robustos y fiables.

¿Qué es DAX en Power BI? Fundamentos rápidos

DAX (Data Analysis Expressions) es el lenguaje de fórmulas utilizado por Power BI, SQL Server Analysis Services Tabular y Excel Power Pivot para realizar cálculos sobre un modelo tabular ya cargado.

Su objetivo 🎯 es crear medidas, columnas calculadas, tablas calculadas y KPI y métricas avanzadas que permiten analizar y visualizar información de forma dinámica en modelos tabulares de datos.

Es importante no confundir DAX con Power Query o el lenguaje M:

  • DAX trabaja sobre el modelo ya construido para realizar cálculos dinámicos.
  • Power Query (M) sirve para importar, limpiar y transformar datos antes de cargarlos.

Si todavía no conoces la herramienta, puedes leer primero nuestra guía sobre qué es Power BI y sus principales usos empresariales.

Medidas vs. columnas calculadas

Uno de los conceptos más importantes en DAX es distinguir entre medidas y columnas calculadas.

🧮 Una columna calculada se evalúa fila por fila dentro del modelo de datos y su resultado queda almacenado de forma permanente en la tabla. Esto la convierte en la mejor opción cuando el valor que se quiere obtener es fijo para cada registro.

Por ejemplo, si queremos calcular el margen de cada venta, podemos restar el precio menos el coste directamente en una nueva columna, de forma que cada fila tenga su propio resultado.

📊 Una medida, en cambio, no almacena resultados. Se calcula dinámicamente cada vez que el usuario interactúa con el informe y su valor depende del contexto de filtro en el que se esté evaluando. Esto significa que puede cambiar según los segmentadores, gráficos o tablas donde se utilice.

Un ejemplo típico es el cálculo de ventas totales, donde la suma de importes se recalcula automáticamente en función de los filtros aplicados en el informe.

Contexto de filtro y contexto de fila (lo que hay que entender sí o sí)

Estos dos conceptos explican gran parte del comportamiento de DAX. De hecho, entender la diferencia entre ambos suele marcar el punto en el que las fórmulas empiezan a tener sentido.

  • Contexto de fila: DAX evalúa una fila concreta de una tabla. Es el comportamiento habitual de las columnas calculadas y de las funciones iteradoras (como SUMX o MAXX), que realizan el cálculo registro a registro.
  • Contexto de filtro: formado por todos los filtros activos del informe, ya provengan de segmentadores, gráficos, tablas, relaciones entre tablas o filtros de página. Es este contexto el que determina qué datos utiliza una medida en cada momento.

Imagina la siguiente medida ➡️ Ventas = SUM (Ventas [Importe] ).

Aunque la fórmula siempre es la misma, el resultado cambia según el contexto del informe: 10 M € para toda la empresa, 2 M € si el informe se filtra por España, o 300k € si se enfoca en las ventas de Barcelona.

La fórmula no cambia; lo que cambia es el contexto de filtro. Ese es uno de los principios fundamentales de DAX y la razón por la que una misma medida devuelve valores diferentes en cada visualización.

💡 Aquí entra en juego CALCULATE. Esta función permite modificar el contexto de filtro de una medida y, por ello, se considera el auténtico núcleo de DAX. Dominarlo supone comprender gran parte del lenguaje y construir métricas mucho más potentes.

Funciones de agregación

Las funciones de agregación permiten resumir datos y calcular la mayoría de KPI de un informe de forma eficiente en Power BI.

FunciónPara qué sirveEjemplo
SUMSuma una columnaTotal Ventas = SUM(Ventas[Importe])
SUMXSuma una expresión fila a filaImporte = SUMX(Ventas, Ventas[Cant] * Ventas[Precio])
AVERAGEMedia aritmética de una columnaMedia = AVERAGE(Ventas[Importe])
COUNT / CONTARCuenta valores de una columna; si necesitas contar filas completas, se utiliza COUNTROWS.Nº Pedidos = COUNT(Ventas[Id])
MAX / MAXXValor máximo (MAXX itera)Venta Máxima = MAXX(Ventas, Ventas[Importe])

💡 Las funciones cuyo nombre termina en X (SUMX, MAXX, AVERAGEX…) se conocen como funciones iteradoras. Reciben una tabla como entrada y evalúan una expresión fila por fila antes de devolver el resultado final.

Funciones lógicas y condicionales

Las funciones lógicas permiten evaluar condiciones, clasificar resultados y controlar qué valor debe mostrar una medida o columna calculada en cada situación.

FunciónPara qué sirveEjemplo
IFEvalúa una condición simpleEstado = IF([Margen] > 0, "OK", "KO")
SWITCHPermite evaluar varias condiciones (mejor que IF anidados)Nivel = SWITCH(TRUE(), [V]>100, "Alto", [V]>50, "Medio", "Bajo")
AND (Y)Devuelve TRUE cuando se cumplen las dos condiciones indicadas.; también puede escribirse con el operador && .Activo = AND([A] > 0, [B] > 0)
OR Devuelve TRUE cuando se cumple al menos una de las condiciones; la alternativa mediante operador es ||.Revisar = OR([Margen] < 0, [Devoluciones] > 10)
ISBLANKComprueba si una expresión devuelve un valor vacío.Estado = IF(ISBLANK([Ventas]), "Sin datos", "Con datos")
BLANKDevuelve un valor vacío
Margen = IF([Ventas] = 0, BLANK(), [Margen])

💡 ISBLANK comprueba si un valor está vacío; BLANK genera ese valor vacío. Aunque suelen utilizarse juntas, cumplen funciones diferentes.

Funciones de filtro y de contexto: las más potentes

Las funciones de filtro y contexto permiten decidir qué filas debe utilizar una medida en cada cálculo. Son esenciales para crear porcentajes, comparativas, acumulados y KPI que respondan correctamente a los filtros del informe.

FunciónPara qué sirveEjemplo
CALCULATEModifica el contexto de filtro de una medida para calcularla sobre un conjunto de datos específico.Ventas España = CALCULATE([Ventas], Region[Pais] = "España")
FILTERDevuelve una tabla con las filas que cumplen una condición. Suele utilizarse junto con CALCULATE.Ventas Altas = CALCULATE([Ventas], FILTER(Ventas, Ventas[Importe] > 1000))
ALLElimina los filtros aplicados sobre una tabla o columna. Muy útil para calcular porcentajes sobre el total.Total = CALCULATE([Ventas], ALL(Region))
ALLEXCEPTElimina todos los filtros de una tabla excepto los indicados.Ventas por País = CALCULATE([Ventas], ALLEXCEPT(Ventas, Ventas[Pais]))
VALUESDevuelve los valores únicos visibles según el contexto actual.Clientes = COUNTROWS(VALUES(Cliente[Id]))
SELECTEDVALUEDevuelve el único valor seleccionado o un valor alternativo si hay varios o ninguno.País = SELECTEDVALUE(Region[Pais], "Varios")
RELATEDRecupera un valor desde otra tabla aprovechando una relación existente en el modelo de datos.Categoría = RELATED(Producto[Categoria])
LOOKUPVALUEBusca un valor mediante una o varias condiciones, incluso sin utilizar una relación directa (similar a BUSCARV).Precio = LOOKUPVALUE(Tarifa[Precio], Tarifa[IdProducto], Ventas[IdProducto])
EARLIERPermite acceder a un contexto de fila anterior, normalmente en columnas calculadas.Ranking = COUNTROWS(FILTER(Producto, Producto[Ventas] > EARLIER(Producto[Ventas]))) + 1

💡 La función más importante de esta categoría es CALCULATE. Si entiendes cómo modifica el contexto de filtro, habrás comprendido buena parte del funcionamiento de DAX. Muchas de las medidas avanzadas en Power BI se construyen combinando CALCULATE con funciones como FILTER, ALL o VALUES.

Funciones de fecha e inteligencia de tiempo

Las funciones de fecha permiten construir calendarios, trabajar con periodos y comparar el rendimiento entre meses, trimestres o años. Para que la inteligencia de tiempo funcione correctamente, es necesario disponer de una tabla de fechas 📅 completa y relacionada con la tabla de datos.

FunciónPara qué sirveEjemplo
CALENDARCrea una tabla de fechas entre una fecha inicial y una fecha final definidas por el usuario.Fechas = CALENDAR(DATE(2024,1,1), DATE(2026,12,31))
CALENDARAUTOGenera automáticamente una tabla de fechas a partir de las fechas existentes en el modelo de datos.Fechas = CALENDARAUTO()
DATEConstruye una fecha a partir del año, mes y día.Fecha = DATE(2026, 6, 30)
TODAY (HOY)Devuelve la fecha actual del sistema.Hoy = TODAY()
DATEADDDesplaza un periodo de fechas para realizar comparaciones temporales (mes anterior, año anterior, etc.).Ventas Año Ant. = CALCULATE([Ventas], DATEADD(Fechas[Fecha], -1, YEAR))

Por ejemplo, en el caso de DATEADD. si el informe muestra marzo de 2026, la medida de ventas del año anterior evaluará marzo de 2025. La comparación se adapta automáticamente al contexto temporal.

💡 Una tabla de fechas bien configurada es la base de la inteligencia de tiempo en Power BI. Debe contener una fila por cada día del periodo analizado, estar relacionada con la tabla de datos y marcarse como tabla de fechas. Sin esta estructura, funciones como DATEADD pueden devolver resultados incompletos o inesperados cuando existen días sin registros.

Funciones de texto

Las funciones de texto permiten extraer caracteres, medir longitudes, convertir valores y construir etiquetas para informes.

FunciónPara qué sirveEjemplo
LEFTDevuelve los primeros caracteres de una cadena de texto.Prefijo = LEFT(Cliente[Codigo], 3)
LEN (LARGO)Devuelve el número de caracteres de un texto. En la interfaz en español puede aparecer como LARGO.Longitud = LEN(Cliente[Nombre])
MID (EXTRAE)Extrae una parte de un texto indicando la posición inicial y el número de caracteres. En español equivale a EXTRAE.Tramo = MID(Cliente[Codigo], 2, 3)
FORMATConvierte un valor en texto aplicando un formato personalizado (moneda, porcentaje, fecha, etc.).Ventas € = FORMAT([Ventas], "#,##0 €")
VALUEConvierte un valor almacenado como texto en un número.Importe = VALUE(Ventas[ImporteTexto])

💡 LEFT, LEN y MID trabajan con texto; VALUE convierte texto en número y FORMAT hace el proceso contrario. Ten en cuenta que FORMAT devuelve texto, por lo que ese resultado ya no podrá utilizarse para realizar cálculos.

Funciones de tabla, ranking y variables

Estas funciones permiten construir tablas calculadas, obtener valores únicos, crear clasificaciones y organizar fórmulas complejas de una forma más clara.

FunciónPara qué sirveEjemplo
SUMMARIZEAgrupa una tabla por una o varias columnas y permite añadir cálculos resumidos.Resumen = SUMMARIZE(Ventas, Ventas[Pais], "Total", [Ventas])
DISTINCTDevuelve los valores únicos de una columna o las filas únicas de una tabla.Países = DISTINCT(Cliente[Pais])
RANKXClasifica elementos según una medida o expresión.Ranking = RANKX(ALL(Producto[Nombre]), [Ventas], , DESC, DENSE)
TOPNDevuelve las primeras N filas de una tabla según un criterio de ordenación.Top 5 = TOPN(5, ALL(Producto[Nombre]), [Ventas], DESC)
VAR / RETURNGuarda resultados intermedios en variables para crear fórmulas más claras y fáciles de mantener.Con IVA = VAR Total = [Ventas] RETURN Total * 1.21

💡 El error nº1 con DAX es tratarlo como Excel. En lugar de trabajar sobre celdas, en DAX una medida mira el CONTEXTO (los filtros del informe). Si una medida no devuelve el resultado esperado, el 90% de las veces no es un error de sintaxis: es contexto de filtro mal entendido. Domina CALCULATE y habrás dominado el 80% de DAX.

Del dashboard al análisis: quién domina DAX de verdad

📊 Crear gráficos en Power BI resulta relativamente sencillo. Pero construir un modelo de datos sólido, comprender las relaciones entre tablas, optimizar el rendimiento de las medidas y desarrollar cálculos de inteligencia de tiempo requiere un conocimiento mucho más profundo.

Es precisamente esa capacidad para diseñar modelos fiables y escribir fórmulas DAX eficientes lo que diferencia a un auténtico especialista en Business Intelligence de un usuario que únicamente conoce la herramienta a nivel visual.

Por qué contratar un experto en Power BI con iTalenters

En muchos procesos de selección es habitual encontrar candidatos que indican tener conocimientos de Power BI. Sin embargo, el verdadero nivel suele apreciarse cuando deben enfrentarse a problemas reales de modelado de datos, contexto de filtro, optimización de medidas o desarrollo de fórmulas DAX complejas.

🤝 En iTalenters entendemos que estas competencias no pueden evaluarse únicamente mediante una entrevista. Por ello, ayudamos a las empresas a identificar profesionales capaces de diseñar soluciones de análisis fiables, eficientes y alineadas con las necesidades del negocio.

Si buscas incorporar perfiles especializados en Business Intelligence 🧠, puedes conocer más sobre nuestros Expertos en Análisis de datos.

iTalenters News, la newsletter mensual sobre talento IT
iTalenters News · newsletter mensual

Contratar talento IT cambia cada mes. Entérate antes.

La newsletter mensual de iTalenters: actualidad con lectura para RRHH, el perfil IT más buscado del mes, contenido propio y herramientas gratuitas. Cinco minutos, cero relleno.

Un correo al mes. Te das de baja cuando quieras.

También te puede interesar...

Qué es Power BI y para qué sirve

Descubre qué es Power BI de Microsoft, cómo funciona y para qué sirve. Aprende sus ventajas para el…

Qué es Business Intelligence (BI) y por qué es clave para las empresas

Descubre qué es Business Intelligence o Inteligencia de Negocios: para qué sirve, funciones y beneficios.

Herramientas de Data Science: las más utilizadas y sus aplicaciones

Descubre cuáles son las herramientas de Data Science más utilizadas en la actualidad y cuando utilizar cada una…

Data Science: qué es, para qué sirve y aplicaciones prácticas

Descubre qué es Data Science, para qué sirve y por qué es importante en la transformación digital.

SELECCIONAMOS TALENTO IT
PARA TI

Déjanos tus datos para valorar tu caso, contactarte y ver como podemos ayudarte.

Ya hemos ayudado a +150 empresas a crecer, siendo un brazo más de su equipo de selección IT.

¿Hablamos?

| iTalenters
Sobre el autor:
Marketing Specialist

Apasionada de la comunicación y la creatividad, especializada en marketing digital como motor para conectar ideas, marcas y personas. Disfruto trabajando en proyectos donde aprender, aportar valor y seguir creciendo, formando parte de equipos que impulsan el talento y apuestan por la innovación.

Sobre el revisor:
CEO en iTalenters

Apasionado de la tecnología, siempre pensando en la mejora de procesos y en impulsar la estrategia de la empresa. Más de 15 años de experiencia en consultoría IT, con un enfoque estratégico en desarrollo de negocio y talento. Mi propósito es transformar empresas y llevarlas al siguiente nivel.