Excel Power Query en 2026: ETL para analistas de datos y preguntas de entrevista
Guía completa de Excel Power Query para ETL: transformaciones de datos, lenguaje M, combinación de consultas y preguntas de entrevista para analistas de datos.

Excel Power Query transforma la manera en que los analistas de datos manejan flujos de trabajo ETL (Extract, Transform, Load) directamente en Excel. A diferencia de las operaciones manuales de copiar y pegar o las macros VBA complejas, Power Query ofrece una interfaz visual respaldada por el lenguaje M, permitiendo transformaciones de datos reproducibles que se actualizan con un solo clic.
Power Query está integrado en Excel 365, Excel 2021, Excel 2019 y Excel 2016. En versiones anteriores, estaba disponible como complemento gratuito llamado "Power Query para Excel". El mismo motor impulsa los dataflows de Power BI Desktop.
Lo que Power Query resuelve para los analistas de datos
Los analistas de datos dedican tiempo significativo a la preparación de datos: fusionar archivos de diferentes fuentes, limpiar formatos inconsistentes, filtrar filas irrelevantes y reestructurar tablas para análisis. Power Query aborda estas tareas mediante un editor de consultas que registra cada paso de transformación. Cuando los datos de origen cambian, todo el pipeline se vuelve a ejecutar automáticamente.
El flujo de trabajo sigue tres etapas: conectar a fuentes de datos, aplicar transformaciones y cargar resultados en tablas de Excel o en el modelo de datos. Cada paso se registra en la barra de fórmulas usando sintaxis del lenguaje M, que puede editarse directamente para escenarios avanzados.
Este enfoque difiere de las fórmulas tradicionales de Excel. Mientras que las fórmulas recalculan celdas, Power Query opera sobre tablas completas antes de que lleguen a la hoja de cálculo. Una consulta que consolida 50 archivos CSV, elimina duplicados y despivotea columnas se ejecuta una vez y produce una tabla limpia, en lugar de construir fórmulas anidadas complejas que ralentizan el libro.
Conexión a fuentes de datos con Obtener datos
Power Query soporta conexiones a archivos (CSV, Excel, JSON, XML), bases de datos (SQL Server, MySQL, PostgreSQL, Oracle), servicios en la nube (SharePoint, Azure, Salesforce) y páginas web. El tipo de conexión determina qué opciones de autenticación e importación aparecen.
// Fuentes de datos comunes en Power Query
Datos > Obtener datos > Desde archivo > Desde CSV
Datos > Obtener datos > Desde base de datos > Desde base de datos SQL Server
Datos > Obtener datos > Desde otras fuentes > Desde web
Datos > Obtener datos > Desde carpeta (múltiples archivos)La opción "Desde carpeta" es particularmente útil para consolidar múltiples archivos. En lugar de importar cada archivo por separado, Power Query escanea una carpeta, lista todos los archivos coincidentes y los combina en una sola consulta. Agregar un nuevo archivo a la carpeta lo incluye automáticamente en la próxima actualización.
Al conectarse a una base de datos SQL, Power Query puede enviar la lógica de transformación al servidor mediante query folding. Los filtros y selecciones de columnas se traducen en cláusulas SQL WHERE y SELECT, reduciendo los datos transferidos a Excel. La barra de fórmulas muestra la opción "Ver consulta nativa" cuando el folding está activo.
Transformaciones principales en el Editor de consultas
El Editor de consultas proporciona comandos de cinta para operaciones comunes, pero entender el código M subyacente ayuda cuando se necesitan personalizaciones. Cada transformación agrega un paso al panel "Pasos aplicados", creando una secuencia auditable.
Filtrado y ordenamiento de filas
El filtrado elimina las filas que no cumplen con los criterios. El menú desplegable del encabezado de columna proporciona filtros rápidos, mientras que el diálogo "Filtrar filas" soporta condiciones complejas con lógica AND/OR.
// Paso FilteredRows en lenguaje M
let
Source = Excel.CurrentWorkbook(){[Name="SalesData"]}[Content],
FilteredRows = Table.SelectRows(Source, each [Region] = "EMEA" and [Amount] > 1000)
in
FilteredRowsLa función Table.SelectRows toma una tabla y una condición. La palabra clave each crea una función donde _ representa la fila actual, y el acceso a campos usa la notación de corchetes [Region]. Las condiciones múltiples se combinan con los operadores and u or.
Eliminación y renombrado de columnas
Las fuentes de datos a menudo incluyen columnas que no son necesarias para el análisis. Eliminarlas temprano reduce el uso de memoria y simplifica los pasos posteriores.
// Eliminar columnas, luego renombrar las restantes
let
Source = Excel.CurrentWorkbook(){[Name="RawData"]}[Content],
RemovedColumns = Table.RemoveColumns(Source, {"TempID", "InternalNotes", "Debug"}),
RenamedColumns = Table.RenameColumns(RemovedColumns, {{"Cust_Name", "CustomerName"}, {"Amt", "Amount"}})
in
RenamedColumnsLa lista de columnas usa llaves {} para múltiples elementos. El renombrado toma una lista de pares, donde cada par contiene el nombre antiguo y el nuevo. Las convenciones de nomenclatura consistentes entre consultas facilitan la combinación de conjuntos de datos.
División y fusión de columnas
Las columnas de texto frecuentemente necesitan análisis. Una columna "NombreCompleto" podría necesitar dividirse en nombre y apellido, o columnas separadas de fecha y hora podrían necesitar fusionarse.
// Dividir NombreCompleto por delimitador en dos columnas
let
Source = Excel.CurrentWorkbook(){[Name="Contacts"]}[Content],
SplitColumn = Table.SplitColumn(Source, "FullName", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"FirstName", "LastName"})
in
SplitColumnLa función Splitter.SplitTextByDelimiter maneja la lógica de análisis. Para patrones más complejos, Splitter.SplitTextByEachDelimiter o Splitter.SplitTextByPositions ofrecen control adicional. Cuando el número de columnas resultantes varía, Power Query crea columnas dinámicamente.
Conversiones de tipos y calidad de datos
Power Query infiere los tipos de columna en la importación, pero la asignación explícita de tipos detecta errores temprano. Una columna de texto que contiene IDs numéricos debe permanecer como texto si los ceros iniciales son importantes. Las columnas de fecha importadas como texto causan problemas de ordenamiento.
// Asignaciones explícitas de tipos
let
Source = Csv.Document(File.Contents("C:\Data\transactions.csv")),
TypedColumns = Table.TransformColumnTypes(Source, {
{"TransactionID", type text},
{"Date", type date},
{"Amount", type number},
{"IsProcessed", type logical}
})
in
TypedColumnsLa palabra clave type especifica el tipo objetivo. Los tipos disponibles incluyen text, number, date, datetime, datetimezone, time, duration, logical y binary. Los errores de tipo aparecen como valores "Error" en las celdas, haciendo visibles los problemas de calidad de datos antes del análisis.
El manejo de valores null requiere lógica explícita. La función Table.ReplaceValue sustituye nulls con valores predeterminados, mientras que Table.SelectRows con [Column] <> null los filtra.
Agrupación y agregación con Agrupar por
La agregación de datos por categorías es un requisito frecuente. La transformación "Agrupar por" colapsa las filas que comparten los mismos valores clave y aplica funciones de agregación.
// Agrupar ventas por región y año, calcular suma y conteo
let
Source = Excel.CurrentWorkbook(){[Name="Sales"]}[Content],
Grouped = Table.Group(Source, {"Region", "Year"}, {
{"TotalSales", each List.Sum([Amount]), type number},
{"OrderCount", each Table.RowCount(_), Int64.Type},
{"AvgOrderValue", each List.Average([Amount]), type number}
})
in
GroupedLas columnas de agrupación aparecen primero, seguidas de las definiciones de agregación. Cada agregación especifica un nombre de nueva columna, una función de agregación y un tipo de resultado opcional. La palabra clave each representa la subtabla para cada grupo, permitiendo cualquier función de tabla o lista.
Las agregaciones anidadas permiten cálculos como "porcentaje del total del grupo" al referenciar tanto el valor de la fila como el agregado del grupo en un paso posterior.
¿Listo para aprobar tus entrevistas de Data Analytics?
Practica con nuestros simuladores interactivos, flashcards y tests técnicos.
Pivot y Unpivot para reestructuración de datos
Pivot convierte los valores de fila en columnas, creando un diseño de tabla cruzada. Unpivot hace lo contrario, convirtiendo columnas en filas para estructuras normalizadas.
// Despivotear columnas de meses en filas
let
Source = Excel.CurrentWorkbook(){[Name="MonthlySales"]}[Content],
// Original: columnas Product, Jan, Feb, Mar, Apr
Unpivoted = Table.UnpivotOtherColumns(Source, {"Product"}, "Month", "Sales")
// Resultado: columnas Product, Month, Sales
in
UnpivotedLa función Table.UnpivotOtherColumns mantiene las columnas especificadas fijas y despivotea el resto. Esto es más seguro que listar todas las columnas a despivotear, porque agregar nuevas columnas de mes las incluye automáticamente. Los dos últimos parámetros nombran la columna de atributo ("Month") y la columna de valor ("Sales").
Pivot usa Table.Pivot con una función de agregación para casos donde existen múltiples valores para la misma combinación fila-columna:
// Pivotear ventas por región
let
Source = Excel.CurrentWorkbook(){[Name="DetailedSales"]}[Content],
Pivoted = Table.Pivot(Source, List.Distinct(Source[Region]), "Region", "Amount", List.Sum)
in
PivotedCombinación y anexión de consultas
Combinar datos de múltiples fuentes es donde Power Query reduce el esfuerzo manual. Combinar realiza una unión entre dos tablas basada en columnas coincidentes. Anexar apila las tablas verticalmente.
// Left join: Pedidos con detalles de Cliente
let
Orders = Excel.CurrentWorkbook(){[Name="Orders"]}[Content],
Customers = Excel.CurrentWorkbook(){[Name="Customers"]}[Content],
Merged = Table.NestedJoin(Orders, {"CustomerID"}, Customers, {"ID"}, "CustomerDetails", JoinKind.LeftOuter),
Expanded = Table.ExpandTableColumn(Merged, "CustomerDetails", {"Name", "Email"})
in
ExpandedLa función Table.NestedJoin crea una columna de tabla anidada que contiene las filas coincidentes. La función Table.ExpandTableColumn luego aplana la estructura anidada en columnas regulares. Los tipos de unión incluyen Inner, LeftOuter, RightOuter, FullOuter, LeftAnti y RightAnti.
Anexar con Table.Combine requiere nombres de columnas coincidentes. Cuando los esquemas difieren, Table.SelectColumns en cada fuente antes de combinar asegura consistencia:
// Anexar dos tablas de ventas con columnas consistentes
let
Sales2024 = Table.SelectColumns(Source2024, {"Date", "Product", "Amount"}),
Sales2025 = Table.SelectColumns(Source2025, {"Date", "Product", "Amount"}),
Combined = Table.Combine({Sales2024, Sales2025})
in
CombinedColumnas personalizadas y lógica condicional
La funcionalidad "Agregar columna > Columna personalizada" permite campos calculados usando expresiones M. La lógica condicional usa la sintaxis if-then-else.
// Agregar una columna calculada con lógica condicional
let
Source = Excel.CurrentWorkbook(){[Name="Orders"]}[Content],
AddedColumn = Table.AddColumn(Source, "OrderCategory", each
if [Amount] >= 10000 then "Enterprise"
else if [Amount] >= 1000 then "Business"
else "Consumer",
type text
)
in
AddedColumnLa expresión if debe incluir ambas ramas then y else. Las condiciones anidadas se encadenan con else if. El último parámetro especifica el tipo de columna, mejorando el rendimiento y previniendo problemas de inferencia de tipos.
Para transformaciones complejas, las funciones auxiliares definidas en el bloque let mantienen la legibilidad del código:
let
// Función auxiliar para trimestre fiscal
GetFiscalQuarter = (date as date) as text =>
let
month = Date.Month(date),
fiscalQ = if month >= 4 and month <= 6 then "Q1"
else if month >= 7 and month <= 9 then "Q2"
else if month >= 10 and month <= 12 then "Q3"
else "Q4"
in
fiscalQ,
Source = Excel.CurrentWorkbook(){[Name="Transactions"]}[Content],
AddedQuarter = Table.AddColumn(Source, "FiscalQuarter", each GetFiscalQuarter([Date]), type text)
in
AddedQuarterManejo de errores en Power Query
Los errores de transformación aparecen como valores "Error" en las celdas en lugar de fallar toda la consulta. La construcción try-otherwise maneja los errores graciosamente:
// Manejar errores potenciales de división
let
Source = Excel.CurrentWorkbook(){[Name="Metrics"]}[Content],
AddedRatio = Table.AddColumn(Source, "Ratio", each
try [Value1] / [Value2] otherwise null,
type number
)
in
AddedRatioLa palabra clave try intenta la expresión y retorna un registro con los campos HasError y Value. La cláusula otherwise proporciona un valor de respaldo cuando HasError es verdadero. Para más control, accede a los detalles del error con try Expression:
// Capturar detalles del error
let
result = try SomeRiskyFunction(),
output = if result[HasError] then "Error: " & result[Error][Message] else result[Value]
in
outputPreguntas de entrevista sobre Power Query para analistas de datos
Los entrevistadores evalúan tanto las habilidades prácticas como la comprensión de cuándo Power Query encaja en un flujo de trabajo. Estas preguntas aparecen frecuentemente en entrevistas para analistas de datos.
¿Qué es query folding y por qué es importante?
Query folding traduce las transformaciones de Power Query en consultas nativas para la fuente de datos. Al conectarse a SQL Server, un paso de filtro se convierte en una cláusula WHERE ejecutada en el servidor, reduciendo la transferencia de red. No todas las transformaciones hacen folding: las funciones M personalizadas, ciertas manipulaciones de fechas y las operaciones después de un paso que no hace folding rompen la cadena. Verifica el estado del folding haciendo clic derecho en un paso y buscando "Ver consulta nativa".
¿Cómo difiere Power Query de las fórmulas de Excel para transformación de datos?
Las fórmulas de Excel operan celda por celda dentro de la hoja de cálculo y recalculan en cada cambio. Power Query opera sobre tablas antes de que lleguen a la hoja de cálculo, procesando datos en bloque durante la actualización. Para transformaciones como despivotear, deduplicación o fusión de archivos, Power Query expresa la lógica más directamente que fórmulas INDEX-MATCH anidadas o columnas auxiliares.
¿Cuándo elegir Power Query sobre Power BI para ETL?
Power Query en Excel es adecuado para escenarios donde los analistas necesitan datos transformados en formato de hoja de cálculo para análisis ad-hoc, tablas dinámicas o compartir con usuarios que no tienen acceso a Power BI. Power BI proporciona visualización más rica, mayor capacidad de datos y funciones de compartición empresarial. El mismo código M funciona en ambas herramientas, así que las consultas desarrolladas en Excel pueden migrar a Power BI Desktop sin reescribir.
¿Cómo manejar incompatibilidades de tipos de datos al anexar tablas?
Establece tipos explícitos en cada tabla fuente antes de combinar con Table.Combine. Si una columna es texto en una fuente y número en otra, la anexión falla o produce errores. Usa Table.TransformColumnTypes en ambas fuentes para imponer tipos consistentes. El patrón try-otherwise maneja casos límite donde la conversión falla para valores específicos.
Explica la diferencia entre Combinar y Anexar en Power Query.
Combinar realiza una unión horizontal basada en columnas clave coincidentes, similar a SQL JOIN. Anexar realiza una unión vertical de filas de múltiples tablas, similar a SQL UNION ALL. Combinar requiere al menos una columna común para la coincidencia. Anexar requiere que las columnas con los mismos nombres se alineen correctamente.
Para una preparación más profunda sobre conceptos SQL que complementan las habilidades de Power Query, el módulo de funciones de ventana SQL cubre patrones de ranking y agregación, mientras que el módulo de subconsultas y CTEs de SQL aborda técnicas de estructuración de consultas.
Opciones de carga y estrategias de actualización
Después de las transformaciones, el botón "Cerrar y cargar" ofrece opciones de carga: cargar a una tabla de hoja de cálculo, cargar solo al modelo de datos (Power Pivot), o crear una consulta de solo conexión. Las consultas de solo conexión sirven como pasos de preparación para otras consultas sin consumir espacio en la hoja de cálculo.
El comportamiento de actualización depende del destino de carga. Las tablas de hoja de cálculo se actualizan con el botón "Actualizar todo" o pueden configurarse para actualizarse al abrir el archivo. Las tablas del modelo de datos participan en el ciclo de actualización del modelo de datos del libro. Para consultas conectadas a bases de datos externas, pueden aparecer solicitudes de credenciales durante la actualización a menos que existan credenciales guardadas.
La actualización en segundo plano permite que el libro permanezca utilizable durante la carga de datos, pero crea complejidad cuando las fórmulas dependientes dependen de datos actualizados. La opción "Habilitar actualización en segundo plano" en las propiedades de consulta controla este comportamiento. Para reportes críticos, deshabilitar la actualización en segundo plano asegura ejecución secuencial.
Consideraciones de rendimiento para grandes conjuntos de datos
Power Query puede manejar millones de filas, pero la capacidad de respuesta del libro depende de cómo se cargan los datos. Cargar al modelo de datos en lugar de tablas de hoja de cálculo evita el límite de filas de Excel y mejora el rendimiento de las tablas dinámicas. Eliminar columnas innecesarias temprano reduce la huella de memoria.
Para consultas que toman varios minutos, la "Vista previa de datos" en el Editor de consultas muestra solo una muestra. Las transformaciones se aplican al conjunto completo de datos durante la actualización. Los errores visibles en la vista previa indican problemas, pero algunos errores aparecen solo con los datos completos. Ejecutar una actualización de prueba en un subconjunto valida la consulta antes de procesar todo.
Al consolidar muchos archivos, la función de combinación binaria de Power Query procesa archivos en paralelo. Definir una función que transforma un archivo, luego invocarla para cada fila en la lista de archivos, proporciona más control que el enfoque de combinación predeterminado.
La documentación de Microsoft sobre mejores prácticas de Power Query detalla técnicas de optimización incluyendo estructuras de dependencia de consultas y uso de buffer.
Power Query para pipelines ETL reproducibles
Los pasos grabados en Power Query crean documentación de la lógica de transformación. Cuando los requisitos cambian, modificar un paso actualiza automáticamente todos los pasos posteriores. Esto contrasta con las manipulaciones ad-hoc de Excel que requieren recreación desde cero cuando los datos de origen cambian.
Los equipos pueden compartir consultas exportando conexiones o almacenando el código M de las consultas en control de versiones. El Editor avanzado (Vista > Editor avanzado) muestra el script M completo, que puede copiarse y pegarse en otro libro. Para escenarios empresariales, los dataflows de Power BI y Fabric proporcionan gestión centralizada de consultas.
- Power Query maneja ETL dentro de Excel usando pasos de transformación grabados y reproducibles
- El lenguaje M subyacente a la interfaz visual permite personalizaciones más allá de los comandos de cinta
- Query folding envía filtros y proyecciones a las bases de datos de origen para mejor rendimiento
- Combinar realiza uniones entre tablas, Anexar apila las tablas verticalmente
- Las asignaciones de tipo y el manejo de errores previenen problemas silenciosos de calidad de datos
- Las consultas de solo conexión crean pasos de preparación reutilizables sin salida de hoja de cálculo
- Las preguntas de entrevista se enfocan en query folding, comparación con fórmulas y distinciones entre combinar y anexar
¡Empieza a practicar!
Pon a prueba tu conocimiento con nuestros simuladores de entrevista y tests técnicos.
¿Sabrías detectar el bug en Data Analytics?
Un fragmento real, un bug oculto, un intento al día. Sin cuenta para probar.

Escrito por
Anthony Fillion-MailletFundador de SharpSkill
Desarrollador fullstack desde hace más de 10 años. Dirige SharpSkill y responde por todo lo que se publica aquí.
Actualizado el 20 de septiembre de 2026
Compartir
Artículos relacionados

Preguntas de Entrevista para Data Analyst 2026: Guía Completa de SQL, Python y Analytics
Domina las preguntas más frecuentes en entrevistas para data analyst en 2026. Funciones window SQL, manipulación con pandas, estadísticas y casos de negocio con ejemplos de código prácticos.

Preguntas de Entrevista Data Analyst Italia 2026: SQL Avanzado, Python y Casos de Estudio
Prepararse para entrevistas de Data Analyst en Italia con preguntas reales de empresas italianas en 2026. SQL avanzado, Python pandas, casos de estudio y proceso de contratación italiano.

Polars vs Pandas en 2026: Rendimiento, Sintaxis y Preguntas de Entrevista para Analistas de Datos
Comparación exhaustiva entre Polars y Pandas en 2026 con benchmarks de rendimiento, diferencias de sintaxis y preguntas de entrevista técnica para analistas de datos.