Funciones DAX en Power BI: guía de las más usadas (con ejemplos)
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ón | Para qué sirve | Ejemplo |
| SUM | Suma una columna | Total Ventas = SUM(Ventas[Importe]) |
| SUMX | Suma una expresión fila a fila | Importe = SUMX(Ventas, Ventas[Cant] * Ventas[Precio]) |
| AVERAGE | Media aritmética de una columna | Media = AVERAGE(Ventas[Importe]) |
| COUNT / CONTAR | Cuenta valores de una columna; si necesitas contar filas completas, se utiliza COUNTROWS. | Nº Pedidos = COUNT(Ventas[Id]) |
| MAX / MAXX | Valor 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ón | Para qué sirve | Ejemplo |
| IF | Evalúa una condición simple | Estado = IF([Margen] > 0, "OK", "KO") |
| SWITCH | Permite 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) |
| ISBLANK | Comprueba si una expresión devuelve un valor vacío. | Estado = IF(ISBLANK([Ventas]), "Sin datos", "Con datos") |
| BLANK | Devuelve 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ón | Para qué sirve | Ejemplo |
|---|---|---|
| CALCULATE | Modifica 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") |
| FILTER | Devuelve una tabla con las filas que cumplen una condición. Suele utilizarse junto con CALCULATE. | Ventas Altas = CALCULATE([Ventas], FILTER(Ventas, Ventas[Importe] > 1000)) |
| ALL | Elimina los filtros aplicados sobre una tabla o columna. Muy útil para calcular porcentajes sobre el total. | Total = CALCULATE([Ventas], ALL(Region)) |
| ALLEXCEPT | Elimina todos los filtros de una tabla excepto los indicados. | Ventas por País = CALCULATE([Ventas], ALLEXCEPT(Ventas, Ventas[Pais])) |
| VALUES | Devuelve los valores únicos visibles según el contexto actual. | Clientes = COUNTROWS(VALUES(Cliente[Id])) |
| SELECTEDVALUE | Devuelve el único valor seleccionado o un valor alternativo si hay varios o ninguno. | País = SELECTEDVALUE(Region[Pais], "Varios") |
| RELATED | Recupera un valor desde otra tabla aprovechando una relación existente en el modelo de datos. | Categoría = RELATED(Producto[Categoria]) |
| LOOKUPVALUE | Busca 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]) |
| EARLIER | Permite 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ón | Para qué sirve | Ejemplo |
|---|---|---|
| CALENDAR | Crea 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)) |
| CALENDARAUTO | Genera automáticamente una tabla de fechas a partir de las fechas existentes en el modelo de datos. | Fechas = CALENDARAUTO() |
| DATE | Construye 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() |
| DATEADD | Desplaza 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ón | Para qué sirve | Ejemplo |
|---|---|---|
| LEFT | Devuelve 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) |
| FORMAT | Convierte un valor en texto aplicando un formato personalizado (moneda, porcentaje, fecha, etc.). | Ventas € = FORMAT([Ventas], "#,##0 €") |
| VALUE | Convierte 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ón | Para qué sirve | Ejemplo |
|---|---|---|
| SUMMARIZE | Agrupa una tabla por una o varias columnas y permite añadir cálculos resumidos. | Resumen = SUMMARIZE(Ventas, Ventas[Pais], "Total", [Ventas]) |
| DISTINCT | Devuelve los valores únicos de una columna o las filas únicas de una tabla. | Países = DISTINCT(Cliente[Pais]) |
| RANKX | Clasifica elementos según una medida o expresión. | Ranking = RANKX(ALL(Producto[Nombre]), [Ventas], , DESC, DENSE) |
| TOPN | Devuelve las primeras N filas de una tabla según un criterio de ordenación. | Top 5 = TOPN(5, ALL(Producto[Nombre]), [Ventas], DESC) |
| VAR / RETURN | Guarda 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.
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?
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.
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.

