Power Query y DAX son las dos herramientas que dan el salto de «tengo tres CSV sucios y una hoja llena de fórmulas» a «tengo un modelo de datos que se refresca solo y una tabla dinámica con medidas». Power Query importa archivos y los limpia siguiendo unos pasos que se vuelven a aplicar al pulsar Actualizar; DAX escribe los cálculos que esas tablas necesitan (importe total, acumulado del año, variación frente al año anterior).
Aquí vas a partir de tres ficheros de ventas con columnas mal nombradas y formatos mezclados. Power Query los va a juntar en una sola tabla limpia y DAX va a crear sobre ella una columna de mes, una medida de importe total, una medida filtrada por categoría, el acumulado del año y la variación frente al año anterior. Al terminar tendrás la tabla dinámica conectada al modelo de datos, lista para seguir añadiendo medidas.
Funciona en Microsoft 365, Excel 2024 y Excel 2021 con Power Query y Power Pivot integrados. En Excel 2019 y 2016 también está Power Query; Power Pivot y DAX requieren el complemento de Power Pivot, que viene de serie en Microsoft 365, 2024 y 2021. En Excel para la web y para Mac las opciones son más limitadas.
Qué hace Power Query y qué aporta DAX al modelo
Imagina una tienda con tres ficheros CSV de ventas: uno por trimestre. Cada uno lo ha escrito una persona distinta, así que las columnas se llaman parecido pero no igual («Importe», «Importe_2», «Total»), las fechas vienen en formatos distintos y las categorías están abreviadas en unos y escritas del todo en otros. Abrir los tres CSV a mano y copiar-pegar en una hoja funciona la primera vez, pero el mes que viene hay que repetirlo todo y los datos nuevos ya no caben en una hoja sin orden.
Power Query resuelve la primera parte: importa los tres ficheros, los junta en una sola tabla y aplica una limpieza que se queda grabada como una receta. Cuando llegue el siguiente trimestre, basta con soltar los CSV en la misma carpeta y pulsar Actualizar: los mismos pasos se vuelven a aplicar sobre los datos nuevos sin tocar nada.
DAX resuelve la segunda parte: una vez la tabla está en el modelo de datos, DAX añade los cálculos que una tabla dinámica corriente no sabe hacer por sí sola. Una columna calculada con FORMATO y RELATED enriquece cada fila con el mes y la categoría; una medida con SUM calcula el total al consultarla; TOTALYTD y SAMEPERIODLASTYEAR comparan el año actual con el anterior. Power Query transforma; DAX calcula. Los dos juntos son lo que en Excel se llama «modelo de datos».
Dónde están Power Query y DAX en tu Excel
Los dos viven en sitios distintos de la cinta de opciones, y eso ya te dice qué hace cada uno. Power Query está en Datos, porque trae datos de fuera; DAX necesita Power Pivot, que es otra ficha pensada para el modelo de datos.
Power Query integrado desde Excel 2016
En Excel 2010 y 2013, Power Query se descargaba como un complemento aparte de Microsoft y había que instalarlo a mano. Desde Excel 2016 viene ya dentro de Excel, dentro del grupo Obtener y transformar datos de la pestaña Datos. La ventana de Power Query (el editor con la lista de pasos aplicados a la derecha) se abre al elegir cualquier origen del origen que sale en el menú Obtener datos.
En Excel para Mac y en Excel para la web existen menos orígenes de datos (conectores) que en la versión de escritorio de Windows. Para los CSV y tablas de una carpeta, los pasos de este tutorial funcionan en Mac y en la web.
DAX con Power Pivot: el requisito de la versión
Power Pivot es un complemento de Excel pensado para trabajar con varias tablas relacionadas entre sí, el modelo de datos. Ahí es donde las medidas DAX tienen sentido, porque la medida «importe total de Bebidas» cruza la tabla de ventas con la de productos.
Power Pivot viene como complemento en Excel 2013 y siguientes, y viene integrado de serie en Microsoft 365, Excel 2024 y Excel 2021. Sin Power Pivot no hay modelo de datos y, por tanto, no se pueden escribir medidas DAX. La pestaña Power Pivot se activa desde Archivo > Opciones > Complementos > Complementos de COM aplicaciones administradas > Microsoft Power Pivot for Excel.
Cómo se limpia una tabla con Power Query
Los tres CSV de ventas se llaman ventas_t1.csv, ventas_t2.csv y ventas_t3.csv, todos en la carpeta C:\Ventas\. Cada uno trae fecha, producto, categoría, cantidad, precio_unitario, Importe, Importe_2 y Total. La idea es dejarlos en una sola tabla con columnas Fecha, Producto, Categoria, Cantidad, PrecioUnitario e Importe.
Importar el primer CSV y ver la vista previa
- Abre un libro nuevo en blanco y ve a
Datos > Obtener y transformar datos > Desde texto/CSV. - Elige
ventas_t1.csvy pulsa Importar. - En la ventana de vista previa, abre el desplegable Origen del archivo y elige
65001 (Unicode UTF-8)para que las tildes se lean bien. - Abre el desplegable Delimitador y elige Coma.
- Pulsa Transformar datos para abrir el editor de Power Query.
ventas_t1; a la derecha, el panel Configuración de consulta con Pasos aplicados (Origen, Encabezados promovidos…).Quitar columnas, cambiar tipos y poner encabezados
El editor de Power Query muestra la tabla con sus datos; arriba van los nombres de columna y a la derecha el panel Pasos aplicados, que va registrando cada cambio.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Fecha | Producto | Categoria | Cantidad | PrecioUnitario | Importe | Importe_2 | Total |
| 2 | 15/01/2026 | Lapiz | Papelería | 8 | 1,50 | 12,00 | 12,00 | 12,00 |
| 3 | 16/01/2026 | Cuaderno | Papelería | 5 | 3,20 | 16,00 | 16,00 | 16,00 |
| 4 | 17/01/2026 | Goma | Papelería | 12 | 0,80 | 9,60 | 9,60 | 9,60 |
| 5 | 18/01/2026 | Bolígrafo | Papelería | 20 | 0,60 | 12,00 | 12,00 | 12,00 |
| 6 | 20/01/2026 | Refresco | Bebidas | 6 | 1,90 | 11,40 | 11,40 | 11,40 |
| 7 | 22/01/2026 | Agua | Bebidas | 24 | 0,55 | 13,20 | 13,20 | 13,20 |
Pasos en el editor:
- Clic derecho sobre la columna
Importe_2> Quitar columna. Aparece el paso «Columnas quitadas» en Pasos aplicados. - Clic en el icono ABC/123 del encabezado de
Totaly elige Moneda. Aparece el paso «Tipo cambiado». - Clic derecho sobre
Total> Cambiar nombre, escribeImportey pulsa Entrar. - Si los encabezados están en la primera fila de datos, ve a Inicio > Transformar > Usar primera fila como encabezado.
Unir los tres CSV en una sola consulta
En vez de importar uno a uno, vamos a crear una consulta Carpeta que mire dentro de C:\Ventas\, lea los tres CSV y los anexe en una sola tabla.
- Cierra el editor de Power Query con Inicio > Cerrar > Cerrar y cargar en… > Solo crear conexión.
- Ve a
Datos > Obtener y transformar datos > Desde archivo > Desde carpeta. - Escribe la ruta
C:\Ventas\y pulsa Aceptar. - En la ventana de la carpeta, pulsa Combinar y transformar datos > Combinar y transformar datos.
- En el cuadro que sale, elige
ventas_t1.csvcomo archivo de ejemplo y pulsa Aceptar. - Se abre el editor de Power Query con la consulta
Transformar archivo de ventas_t1. Repite los pasos de limpieza anteriores (quitarImporte_2, cambiar tipo deImporte). - Pulsa Cerrar y cargar en… > Solo crear conexión.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Fecha | Producto | Categoria | Importe | Cantidad | PrecioUnitario |
| 2 | 15/01/2026 | Lapiz | Papelería | 12,00 | 8 | 1,50 |
| 3 | 16/01/2026 | Cuaderno | Papelería | 16,00 | 5 | 3,20 |
| 4 | 20/01/2026 | Refresco | Bebidas | 11,40 | 6 | 1,90 |
| 5 | 22/01/2026 | Agua | Bebidas | 13,20 | 24 | 0,55 |
| 6 | 05/04/2026 | Cuaderno | Papelería | 19,20 | 6 | 3,20 |
| 7 | 12/04/2026 | Refresco | Bebidas | 22,80 | 12 | 1,90 |
| 8 | 18/07/2026 | Goma | Papelería | 14,40 | 18 | 0,80 |
Cerrar y cargar en una hoja o solo en el modelo
Al pulsar Cerrar y cargar en… salen tres opciones que cambian por completo lo que puedes hacer después:
- Tabla: lleva la tabla limpia a una hoja como una tabla de Excel normal, sin modelo de datos.
- Informe de tabla dinámica: lleva la tabla al modelo de datos y abre una tabla dinámica nueva en una hoja.
- Solo crear conexión: deja la tabla en el editor, sin hoja ni tabla dinámica. Luego la usarás desde Power Pivot.
Crear columnas calculadas y medidas con DAX
Con la tabla Ventas ya en el modelo, vamos a la pestaña Power Pivot. La ventana de Power Pivot muestra las tablas cargadas y permite crear columnas calculadas (columna a la derecha del todo de cada tabla) y medidas (botón Nueva medida).
Una columna calculada con FORMATO y RELATED
Una columna calculada se evalúa al refrescar el modelo y se guarda fila a fila en la tabla. Sirve para enriquecer cada fila con datos derivados de sus propios valores o de tablas relacionadas.
=FORMATO([Fecha]; "mmm aaaa")
=RELATED('Productos'[Categoria])
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Fecha | Producto | Categoria | Importe | Cantidad | PrecioUnitario | Mes |
| 2 | 15/01/2026 | Lapiz | Papelería | 12,00 | 8 | 1,50 | ene 2026 |
| 3 | 16/01/2026 | Cuaderno | Papelería | 16,00 | 5 | 3,20 | ene 2026 |
| 4 | 20/01/2026 | Refresco | Bebidas | 11,40 | 6 | 1,90 | ene 2026 |
| 5 | 05/04/2026 | Cuaderno | Papelería | 19,20 | 6 | 3,20 | abr 2026 |
| 6 | 12/04/2026 | Refresco | Bebidas | 22,80 | 12 | 1,90 | abr 2026 |
Tu primera medida: una suma con CALCULATE y SUM
Una medida es un cálculo que se evalúa al consultarla, en el contexto del filtro que tenga la tabla dinámica (la categoría, el mes, el año…). Las medidas no se guardan fila a fila; se calculan cada vez.
Importe total:=SUM('Ventas'[Importe])
Importe Bebidas:=CALCULATE(SUM('Ventas'[Importe]); 'Productos'[Categoria]="Bebidas")
| Medida | Qué hace | Dónde se ve |
|---|---|---|
Importe total |
Suma el Importe de todas las filas visibles | Una sola cifra por tabla dinámica |
Importe Bebidas |
Suma el Importe de las filas con Categoría = Bebidas | Cifra independiente por categoría |
Medida frente a columna calculada: cuándo va cada una
| Cálculo | Columna calculada | Medida |
|---|---|---|
| Se evalúa al | Refrescar el modelo | Consultar (al abrir la tabla dinámica) |
| Se guarda | Fila a fila en la tabla | No: solo la fórmula |
| Cambia con los filtros de la tabla dinámica | No: ya está guardada | Sí: se recalcula con cada filtro |
| Coste | Ocupa memoria (una cifra por fila) | No ocupa fila, solo CPU |
| Úsala para | Categorías, meses, importes por fila | Sumas, promedios, ratios, totales |
| Regla de oro | Si el resultado es un atributo de la fila | Si el resultado es un agregado |
Medidas con tiempo: el YTD, el año anterior y la variación
Las funciones de tiempo de DAX necesitan una tabla de fechas marcada como tabla de fechas. Vamos a crearla, marcarla y usarla para las medidas de comparación.
Acumulado del año con TOTALYTD
Acumulado año:=TOTALYTD(SUM('Ventas'[Importe]); 'Calendario'[Fecha])
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Mes | Importe total | Importe Bebidas | Acumulado año |
| 2 | ene 2026 | 39,40 | 24,60 | 39,40 |
| 3 | abr 2026 | 42,00 | 22,80 | 81,40 |
| 4 | jul 2026 | 14,40 | 0,00 | 95,80 |
Mismo periodo del año pasado con SAMEPERIODLASTYEAR
Importe año pasado:=CALCULATE(SUM('Ventas'[Importe]); SAMEPERIODLASTYEAR('Calendario'[Fecha]))
Variación %:=DIVIDE([Importe total]-[Importe año pasado]; [Importe año pasado]; 0)
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Mes | Importe total | Acumulado año | Importe año pasado | Variación % |
| 2 | ene 2026 | 39,40 | 39,40 | 0,00 | 0 |
| 3 | abr 2026 | 42,00 | 81,40 | 0,00 | 0 |
| 4 | jul 2026 | 14,40 | 95,80 | 0,00 | 0 |
Crear la tabla Calendario si tu tabla no la trae
DAX puede crear la tabla directamente en el modelo.
- En Power Pivot, ve a Inicio > Ver > Vista de diagrama.
- Pulsa Nueva tabla y escribe la fórmula.
Calendario = CALENDARIO(FECHA(2026;1;1); FECHA(2026;12;31))
- Selecciona la nueva tabla, ve a Diseño de tabla > Marcar como tabla de fechas > Marcar como tabla de fechas.
Por qué DAX no da lo que esperabas
DAX tiene sus propias reglas, y los errores al empezar casi siempre se deben a confundir medida con columna calculada, dividir entre cero o no entender el contexto de filtro.
La medida suma el total en cada fila de la tabla
Si escribes =SUM('Ventas'[Importe]) en una columna calculada, el resultado es el Importe de esa fila, no el total, porque la columna se evalúa fila a fila. El total verdadero se obtiene con una medida.
Importe por fila:=SUM('Ventas'[Importe])
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Fecha | Producto | Categoria | Importe | Cantidad | PrecioUnitario | Mes | Importe por fila |
| 2 | 15/01/2026 | Lapiz | Papelería | 12,00 | 8 | 1,50 | ene 2026 | 12,00 |
| 3 | 20/01/2026 | Refresco | Bebidas | 11,40 | 6 | 1,90 | ene 2026 | 11,40 |
Arreglo: muévela a Medida. En Power Pivot, Nueva medida, escribe
Importe total:=SUM('Ventas'[Importe])y verás el total correcto en la tabla dinámica.
DIVIDE en lugar de la barra para evitar #¡DIV/0!
Importe por unidad:=[Importe total]/[Cantidad]
Importe por unidad:=DIVIDE([Importe total]; [Cantidad]; 0)
| A | B | C | |
|---|---|---|---|
| 1 | Categoria | Cantidad | Importe por unidad |
| 2 | Papelería | 51 | 1,26 |
| 3 | Bebidas | 42 | 1,13 |
La medida "no filtra" dentro de CALCULATE
Importe Bebidas:=CALCULATE(SUM('Ventas'[Importe]); 'Productos'[Categoria]="Bebidas")
Si en la tabla dinámica ves el mismo total en cada fila, puede ser que el filtro esté fuera del argumento de CALCULATE. Ponlo siempre dentro: CALCULATE(SUM(...); CONDICIÓN).
Arreglo: si necesitas un filtro más complejo, usa FILTER dentro de CALCULATE solo cuando los argumentos directos (los pares
columna = valor) no lleguen.
Lo que no puedes (o no conviene) hacer con Power Query y DAX
Power Query transforma tablas enteras siguiendo unos pasos: no sirve para escribir una fórmula en una celda suelta, como =A2*1,21. Para eso sigue usando las fórmulas de Excel. Power Query usa el lenguaje M, distinto del de las fórmulas normales; si necesitas una transformación que no esté en los menús, abres el Editor avanzado y escribes en M.
DAX no crea tablas como las de Excel (rangos A1:C10 con datos sueltos). Las medidas y columnas de DAX viven dentro del modelo de datos, que es otra cosa: tablas relacionadas entre sí, sin celdas vacías entre ellas y con encabezados siempre en la primera fila. Para crear una tabla desde cero dentro del modelo, se usa CALENDARIO o DATATABLE, no se selecciona un rango.
DAX depende de un modelo de datos con relaciones bien hechas. Si la tabla Ventas no está relacionada con Productos, la función RELATED devuelve #¡REL! y los filtros no funcionan. Las relaciones se crean en Power Pivot > Vista de diagrama, arrastrando el campo clave de una tabla al campo clave de la otra.
Sin Power Pivot no hay DAX en absoluto. Si tu versión de Excel no tiene la ficha Power Pivot, no puedes escribir medidas; tendrías que calcular las sumas y variaciones con fórmulas tradicionales en una hoja.
Lo que ya sabes hacer con Power Query y DAX
- Cargar tres CSV desde una carpeta con Power Query y unirlos en una sola tabla limpia.
- Quitar columnas, cambiar tipos y renombrar encabezados en el editor de Power Query, viendo cada paso en el panel Pasos aplicados.
- Cargar la tabla al modelo de datos para poder escribir DAX sobre ella.
- Crear columnas calculadas con FORMATO y RELATED para enriquecer cada fila.
- Crear medidas con SUM y CALCULATE, filtradas por categoría o por cualquier atributo.
- Crear la tabla Calendario y marcarla como tabla de fechas para usar las medidas de tiempo.
- Calcular el YTD con TOTALYTD y el año pasado con SAMEPERIODLASTYEAR, y la variación en porcentaje con DIVIDE.
- Reconocer los tres errores más comunes al empezar: medida en columna calculada, división entre cero y filtro fuera de CALCULATE.
El siguiente paso es abrir una tabla dinámica sobre el modelo de datos, arrastrar Mes a filas, Importe total y Acumulado año a valores y Segmentación de datos a filtros. Cuando esa tabla dinámica esté lista, cualquier nueva medida DAX que escribas aparecerá automáticamente como un campo más para arrastrar.
Dudas al usar Power Query y DAX en Excel
1. ¿Qué es DAX Studio y para qué sirve con Power Query?
DAX Studio es una herramienta externa y gratuita que se conecta a Power BI, Analysis Services y algunas versiones de Power Pivot para escribir y analizar consultas DAX con más detalle que en el editor habitual. Permite ver el plan de consulta, medir el rendimiento con estadísticas de servidor y copiar expresiones al portapapeles para llevarlas a tu informe.
2. ¿Qué novedades trajo la actualización de Power BI de septiembre de 2026?
Microsoft publica cada mes una nota con las novedades de Power BI Desktop y el servicio; las funciones añadidas en septiembre de 2026 están descritas una por una en el blog oficial de Power BI y en las notas de la versión de cada mes. Consulta esa entrada concreta para ver el listado completo de cambios en DAX, Power Query y el servicio.
3. ¿Cómo se calcula DATEDIFF en Power BI con DAX?
DATEDIFF calcula la diferencia entre dos fechas en la unidad que elijas: la sintaxis es DATEDIFF(<fecha_inicio>, <fecha_fin>, <intervalo>), donde <intervalo> puede ser DAY, MONTH, QUARTER o YEAR. Por ejemplo, DATEDIFF(Ventas[FechaPedido], Ventas[FechaEnvio], DAY) devuelve los días transcurridos entre el pedido y el envío.
4. ¿Dónde está la referencia oficial de DAX?
La referencia oficial está en la documentación de Microsoft Learn, en la sección DAX (Data Analysis Expressions), con cada función explicada con su sintaxis, sus argumentos, el tipo de valor que devuelve y ejemplos. También existe la guía de referencia de expresiones DAX en formato PDF que Microsoft publica para descargar.
5. ¿Cómo se escribe una consulta DAX?
Una consulta DAX empieza con la palabra clave EVALUATE seguida del nombre de una tabla o de una expresión que devuelva una tabla, por ejemplo EVALUATE Ventos y, opcionalmente, una cláusula ORDER BY para ordenar los resultados. En Power BI se ejecuta desde el editor de consultas DAX y en Excel desde la ventana de Power Pivot.
6. ¿Cuáles son las funciones DAX más usadas?
Las más repetidas en informes son las de agregado (SUM, AVERAGE, COUNT, MIN, MAX), las de iteración como SUMX que recorren fila a fila, las de tiempo inteligente (TOTALYTD, SAMEPERIODLASTYEAR, DATEADD) y las de filtrado y relación (CALCULATE, FILTER, RELATED, USERELATIONSHIP). Con CALCULATE y una medida se resuelve la mayoría de los cálculos habituales.
7. ¿Qué hace la función SUMX en Power BI?
SUMX es una función de iteración que recorre una tabla fila a fila, evalúa la expresión que le pones en cada fila y al final suma todos los resultados. La sintaxis es SUMX(<tabla>, <expresión>); por ejemplo, SUMX(Ventas, Ventas[Cantidad] * Ventas[PrecioUnitario]) calcula el importe total multiplicando cantidad por precio en cada línea.
8. ¿Qué es DAX Info View y cómo se instala?
DAX Info View es un panel externo de DAX Studio pensado para que los modeladores vean de un vistazo todas las medidas, columnas calculadas y tablas del modelo, con funciones, dependencias y métricas de cada elemento. Se descarga desde el sitio oficial de DAX Studio y se activa en la pestaña Add-ins del propio programa.
Fuentes
- MicrosoftPower Query (Obtener y transformar datos) — documentación oficialconsultado el 07/10/2026
- MicrosoftPOTENCIA — documentación oficialconsultado el 07/10/2026
- MicrosoftIM.POT — documentación oficialconsultado el 07/10/2026
- MicrosoftImportar un archivo de texto o CSV — documentación oficialconsultado el 07/10/2026
- MicrosoftExcel 2016 — documentación oficialconsultado el 07/10/2026