Lección 10 de 36Transformar con Power Query

Combinar tablas: Merge y Append

Une datos de múltiples fuentes en una sola tabla.

20 minutos

En el mundo real, los datos rara vez están en una sola tabla. Ventas en un archivo, clientes en otro, productos en una base de datos. Power Query ofrece dos técnicas poderosas para integrar estas fuentes: Merge (combinar) y Append (anexar).

Merge vs Append: ¿Cuándo usar cada uno?

Técnica Propósito Analogía Resultado
Merge Unir columnas de diferentes tablas VLOOKUP en Excel / JOIN en SQL Agrega columnas a la derecha
Append Apilar filas de tablas similares Copiar y pegar debajo / UNION en SQL Agrega filas abajo

Visualización conceptual

MERGE (Combinar):

Tabla A        Tabla B           Resultado
ID | Nombre    ID | Ciudad    →   ID | Nombre | Ciudad
---|--------   ---|--------       ---|--------|--------
1  | Juan      1  | Madrid        1  | Juan   | Madrid
2  | Ana       2  | Barcelona     2  | Ana    | Barcelona

APPEND (Anexar):

Tabla A           Tabla B              Resultado
Mes | Ventas      Mes | Ventas    →    Mes | Ventas
----|-------      ----|-------          ----|-------
Ene | 1000        Mar | 1500            Ene | 1000
Feb | 1200        Abr | 1600            Feb | 1200
                                        Mar | 1500
                                        Abr | 1600

1. Merge (Combinar Consultas)

Merge une tablas basándose en una columna común (clave). Es equivalente a:

  • VLOOKUP en Excel
  • JOIN en SQL
  • Relaciones entre tablas

Tipos de Merge (Tipos de Join)

Power Query ofrece 6 tipos de merge:

Tipo Descripción Filas en resultado Caso de uso
Left Outer Todas de izquierda + coincidencias de derecha Todas de tabla A Agregar info opcional a tabla principal
Right Outer Todas de derecha + coincidencias de izquierda Todas de tabla B Menos común, equivale a invertir tablas
Full Outer Todas de ambas tablas Todas de A + todas de B Análisis de coincidencias y diferencias
Inner Solo filas que coinciden Solo coincidencias Validar datos, análisis estricto
Left Anti Solo de izquierda SIN coincidencia Filas de A sin match Encontrar faltantes
Right Anti Solo de derecha SIN coincidencia Filas de B sin match Encontrar faltantes

Escenario: Agregar información de clientes a ventas

Tabla Ventas:

VentaID | ClienteID | Monto
--------|-----------|-------
1001    | C01       | 1500
1002    | C02       | 2300
1003    | C01       | 800

Tabla Clientes:

ClienteID | Nombre      | Ciudad
----------|-------------|----------
C01       | Juan Pérez  | Madrid
C02       | Ana López   | Barcelona
C03       | Luis Gómez  | Valencia

Objetivo: Agregar Nombre y Ciudad a cada venta.

Paso a paso: Left Outer Join

  1. Preparar tablas

    • Asegúrate de tener ambas tablas cargadas en Power Query
    • Identifica la columna común: ClienteID
  2. Iniciar Merge

    • Selecciona la tabla Ventas (tabla principal)
    • Ve a Inicio > Combinar consultas > Combinar consultas
    • O bien, Inicio > Combinar consultas > Combinar consultas como nueva (crea una tercera consulta)
  3. Configurar coincidencia

    • Primera tabla: Ventas (ya seleccionada)
    • Haz clic en la columna ClienteID en la vista previa (se resalta)
    • Segunda tabla: Desplegable > Selecciona Clientes
    • Haz clic en la columna ClienteID en la vista previa de Clientes
    • Tipo de combinación: Left Outer (todas las filas de la primera, coincidencias de la segunda)
  4. Verificar privacidad (si aparece)

    • Si es la primera vez, puede aparecer un diálogo de privacidad
    • Selecciona niveles de privacidad apropiados o marca "Omitir comprobación"
  5. Expandir columnas

    • Aparece una nueva columna "Clientes" con valor [Table]
    • Haz clic en el icono de expansión (dos flechas opuestas) en el encabezado
    • Desmarca "ClienteID" (ya lo tienes)
    • Desmarca "Usar el nombre de la columna original como prefijo" (opcional)
    • Selecciona: Nombre, Ciudad
    • Aceptar
  6. Resultado final

VentaID | ClienteID | Monto | Nombre      | Ciudad
--------|-----------|-------|-------------|----------
1001    | C01       | 1500  | Juan Pérez  | Madrid
1002    | C02       | 2300  | Ana López   | Barcelona
1003    | C01       | 800   | Juan Pérez  | Madrid

Código M generado:

= Table.NestedJoin(
    #"Ventas",
    {"ClienteID"},
    Clientes,
    {"ClienteID"},
    "Clientes",
    JoinKind.LeftOuter
)

Expandir columnas:

= Table.ExpandTableColumn(
    #"Consultas combinadas",
    "Clientes",
    {"Nombre", "Ciudad"},
    {"Nombre", "Ciudad"}
)

Casos especiales de Merge

Inner Join: Solo coincidencias

Cuándo usar: Cuando SOLO quieres ventas de clientes que existen en tu catálogo.

Configuración: Tipo de combinación = Inner

Resultado:

  • Si una venta tiene ClienteID no existente en Clientes, se elimina
  • Solo filas con coincidencia en ambas tablas

Código M:

JoinKind.Inner

Full Outer: Todas las filas

Cuándo usar: Análisis de completitud, encontrar discrepancias.

Resultado:

  • Todas las ventas (tengan o no cliente)
  • Todos los clientes (hayan comprado o no)
  • Valores null donde no hay coincidencia

Ejemplo práctico:

VentaID | ClienteID | Monto | Nombre      | Ciudad
--------|-----------|-------|-------------|----------
1001    | C01       | 1500  | Juan Pérez  | Madrid
1002    | C02       | 2300  | Ana López   | Barcelona
1003    | C01       | 800   | Juan Pérez  | Madrid
null    | C03       | null  | Luis Gómez  | Valencia

Luis Gómez aparece aunque no haya comprado (útil para encontrar clientes inactivos).

Anti Join: Encontrar faltantes

Left Anti: Filas de tabla A sin coincidencia en B

Caso de uso: Ventas con ClienteID inválido

  • Tabla A: Ventas
  • Tabla B: Clientes
  • Resultado: Ventas de clientes no registrados

Configuración: Tipo de combinación = Left Anti

No expandes la columna (viene vacía de todas formas)

Código M:

JoinKind.LeftAnti

Right Anti: Filas de tabla B sin coincidencia en A

Caso de uso: Clientes que nunca han comprado

  • Tabla A: Ventas
  • Tabla B: Clientes
  • Resultado: Clientes sin ventas

Merge con múltiples columnas

A veces la relación requiere más de una columna:

Escenario: Ventas por Sucursal y Fecha

Tabla Ventas          Tabla Metas
Sucursal | Fecha      Sucursal | Fecha      | Meta
---------|--------    ---------|--------    |------
Madrid   | 2026-01   Madrid   | 2026-01    | 50000
Madrid   | 2026-02   Madrid   | 2026-02    | 55000

Combinar con múltiples claves:

  1. En el diálogo de Merge, mantén presionado Ctrl
  2. Haz clic en Sucursal y luego en Fecha (en Ventas)
  3. Haz clic en Sucursal y luego en Fecha (en Metas)
  4. Ambas columnas deben coincidir para hacer match

Código M:

= Table.NestedJoin(
    Ventas,
    {"Sucursal", "Fecha"},
    Metas,
    {"Sucursal", "Fecha"},
    "Metas",
    JoinKind.LeftOuter
)

Errores comunes en Merge

Error Causa Solución
Multiplicación de filas Varios registros coinciden Verificar unicidad en tabla derecha
Columna [Table] vacía No hay coincidencias Revisar tipos de datos, espacios extra
Rendimiento lento Merge rompe Query Folding Intentar hacer join en origen SQL
Valores null inesperados Tipo de join incorrecto Verificar si necesitas Left/Inner/Full

2. Append (Anexar Consultas)

Append apila tablas verticalmente. Las tablas deben tener columnas similares (o al menos algunas en común).

Cuándo usar Append

  • Combinar ventas de múltiples meses en archivos separados
  • Unir datos de diferentes sucursales con la misma estructura
  • Consolidar exportaciones históricas
  • Integrar datos de múltiples hojas de Excel similares

Escenario: Consolidar ventas mensuales

Ventas_Enero.xlsx:

Fecha       | Producto | Monto
------------|----------|-------
2026-01-05  | Laptop   | 1200
2026-01-15  | Mouse    | 25

Ventas_Febrero.xlsx:

Fecha       | Producto | Monto
------------|----------|-------
2026-02-03  | Teclado  | 80
2026-02-20  | Monitor  | 350

Objetivo: Una sola tabla con todas las ventas.

Paso a paso: Append básico

  1. Cargar ambas tablas

    • Importa Ventas_Enero
    • Importa Ventas_Febrero
    • Ambas deben estar en el panel de Consultas
  2. Iniciar Append

    • Selecciona la primera tabla: Ventas_Enero
    • Ve a Inicio > Anexar consultas > Anexar consultas
    • O bien, Anexar consultas como nueva (recomendado para conservar originales)
  3. Configurar anexado

    • Aparece diálogo con opciones:
      • Dos tablas: Para combinar solo dos
      • Tres o más tablas: Para múltiples tablas
    • Selecciona Dos tablas
    • Segunda tabla: Ventas_Febrero
    • Aceptar
  4. Resultado

Fecha       | Producto | Monto
------------|----------|-------
2026-01-05  | Laptop   | 1200
2026-01-15  | Mouse    | 25
2026-02-03  | Teclado  | 80
2026-02-20  | Monitor  | 350

Código M:

= Table.Combine({Ventas_Enero, Ventas_Febrero})

Append de múltiples tablas

Para consolidar 3 o más tablas:

  1. Inicio > Anexar consultas > Anexar consultas como nueva
  2. Selecciona Tres o más tablas
  3. En "Tablas disponibles", selecciona las tablas y haz clic en Agregar >
  4. Se mueven a "Tablas para anexar"
  5. Puedes reordenarlas arrastrando
  6. Aceptar

Código M:

= Table.Combine({
    Ventas_Enero,
    Ventas_Febrero,
    Ventas_Marzo,
    Ventas_Abril
})

Append con columnas diferentes

¿Qué pasa si las tablas no tienen exactamente las mismas columnas?

Tabla A:

Fecha | Producto | Monto

Tabla B:

Fecha | Producto | Monto | Vendedor

Resultado del Append:

Fecha       | Producto | Monto | Vendedor
------------|----------|-------|----------
2026-01-05  | Laptop   | 1200  | null
2026-01-15  | Mouse    | 25    | null
2026-02-03  | Teclado  | 80    | Ana López

Power Query crea una columna por cada columna única en todas las tablas. Donde no existe el valor, coloca null.

Buena práctica: Estandariza columnas antes de hacer Append. Si Tabla A usa "Precio" y Tabla B usa "Monto", renombra una de ellas para que coincidan.

Técnica avanzada: Append dinámico con carpetas

Escenario: Tienes una carpeta con 50 archivos Excel de ventas mensuales. Cada mes se agrega un archivo nuevo.

Solución: Conectar a la carpeta completa

  1. Inicio > Obtener datos > Carpeta
  2. Selecciona la carpeta con los archivos
  3. Aceptar
  4. Power Query muestra lista de archivos
  5. Haz clic en Combinar > Combinar y transformar datos
  6. Selecciona tabla/hoja a consolidar
  7. Aceptar

Resultado: Tabla consolidada de todos los archivos

Ventaja mágica: Cuando agregues un nuevo archivo a la carpeta y refresques los datos, ¡se incluye automáticamente!

Código M (simplificado):

let
    Origen = Folder.Files("C:\Ventas\"),
    FiltrarExcel = Table.SelectRows(Origen, each Text.EndsWith([Name], ".xlsx")),
    ConsolidarArchivos = Table.Combine(FiltrarExcel[Content])
in
    ConsolidarArchivos

3. Casos de Uso Prácticos

Caso 1: Enriquecer ventas con datos de producto

Problema: Tienes VentaID, ProductoID y Monto. Necesitas agregar Categoría y Precio de lista.

Solución:

  1. Merge de Ventas con Productos (Left Outer)
  2. Columna clave: ProductoID
  3. Expandir: Categoría, PrecioLista

Beneficio: Ahora puedes analizar ventas por categoría sin alterar la tabla original.

Caso 2: Consolidar sucursales

Problema: Cada sucursal exporta su propio archivo Excel mensual.

Solución:

  1. Crear carpeta "Ventas_Sucursales"
  2. Conectar a carpeta en Power Query
  3. Combinar archivos automáticamente
  4. Agregar columna calculada "Sucursal" extrayendo de nombre de archivo

Beneficio: Actualización automática cada mes, sin editar código.

Caso 3: Análisis de clientes activos vs inactivos

Problema: Identificar clientes registrados que nunca han comprado.

Solución:

  1. Merge de Clientes con Ventas (Right Anti)
  2. Columna clave: ClienteID
  3. Resultado: Clientes sin ventas

Acción: Campaña de reactivación dirigida.

Caso 4: Validar integridad de datos

Problema: Verificar si hay ventas con ProductoID no existente en catálogo.

Solución:

  1. Merge de Ventas con Productos (Left Anti)
  2. Columna clave: ProductoID
  3. Resultado: Ventas huérfanas

Acción: Corregir errores de captura o agregar productos faltantes.

4. Merge vs Relaciones en Power BI

Pregunta común: ¿Cuándo usar Merge en Power Query vs Relaciones en el modelo de datos?

Criterio Merge en Power Query Relaciones en modelo
Performance Consume más memoria Más eficiente
Flexibilidad Fijo al refrescar Dinámico en reportes
Uso Cuando necesitas columnas físicas Para cálculos DAX
Complejidad Tabla más ancha Modelo normalizado

Regla general:

  • Usa Relaciones siempre que sea posible (es la forma correcta en Power BI)
  • Usa Merge solo cuando:
    • No puedes crear relación (datos no normalizados)
    • Necesitas la columna físicamente para transformaciones posteriores
    • La tabla derecha es muy pequeña (tabla de parámetros)

5. Optimización y Mejores Prácticas

Para Merge

Haz Merge temprano si mantiene Query Folding ✅ Verifica tipos de datos de columnas clave (texto con texto, número con número) ✅ Elimina espacios en columnas de texto antes de combinar ✅ Usa Inner Join cuando sea posible (filtra más datos, mejor rendimiento) ✅ Expande solo columnas necesarias (no todas por defecto)

Evita Merge en columnas sin índice en bases de datos ❌ No uses Full Outer a menos que realmente lo necesites (duplica filas) ❌ No hagas Merge de tablas gigantes sin filtrar antes

Para Append

Estandariza nombres de columnas antes de anexar ✅ Filtra datos innecesarios antes de consolidar (reduce volumen) ✅ Usa Append dinámico con carpetas para escalabilidad ✅ Agrega columna de origen para rastrear de qué archivo vino cada fila ✅ Documenta el orden de anexado si importa

No anexes tablas con estructuras muy diferentesNo olvides limpiar datos antes de consolidar (basura in = basura out)

Columna de origen en Append dinámico

Cuando usas Append de carpeta, agrega columna con nombre de archivo:

= Table.AddColumn(#"Archivos expandidos", "Origen", each [Source.Name])

Útil para auditoría y filtrado posterior.

Puntos Clave de esta Lección

  1. Merge agrega columnas, Append agrega filas - Merge para relacionar tablas, Append para consolidar
  2. Left Outer es el tipo de join más común - Mantiene todas las filas de la tabla principal
  3. Inner Join filtra datos - Solo coincidencias, útil para validación
  4. Anti Join encuentra faltantes - Perfecto para análisis de integridad
  5. Append funciona con columnas diferentes - Crea todas las columnas únicas, rellena nulls
  6. Append dinámico de carpetas escala - Actualización automática al agregar archivos
  7. Prefiere relaciones sobre Merge - Más eficiente en Power BI, usa Merge solo cuando sea necesario
  8. Estandariza antes de combinar - Tipos de datos, nombres de columnas, limpieza

Verificación de Conocimientos

Pregunta 1

Tienes tabla Ventas (10,000 filas) y tabla Clientes (500 filas). Quieres agregar Nombre y Ciudad a cada venta. ¿Qué tipo de Merge debes usar?

A) Inner Join B) Left Outer Join (Ventas como izquierda) C) Right Outer Join D) Full Outer Join

Ver respuesta

Respuesta: B) Left Outer Join (Ventas como izquierda)

Quieres conservar TODAS las ventas (tabla izquierda) y agregar información de clientes donde haya coincidencia. Left Outer garantiza que no pierdes ninguna venta. Inner eliminaría ventas sin cliente válido, Full Outer agregaría filas de clientes sin ventas (innecesario).

Pregunta 2

Tienes 12 archivos Excel en una carpeta (uno por mes). ¿Cuál es la mejor forma de consolidarlos?

A) Importar cada archivo y hacer 11 Append manuales B) Conectar a Carpeta y usar Combinar archivos C) Copiar y pegar todos en un solo Excel y luego importar D) Hacer Merge de los 12 archivos

Ver respuesta

Respuesta: B) Conectar a Carpeta y usar Combinar archivos

Esta es la única solución escalable y automática. Cuando agregues el archivo del mes 13, solo necesitas refrescar los datos. Las otras opciones requieren trabajo manual cada mes. Merge es incorrecto (combina columnas, no filas).

Pregunta 3

Después de hacer Merge, la nueva columna muestra "[Table]" y no se expande. ¿Cuál es la causa más probable?

A) Seleccionaste el tipo de join incorrecto B) Las columnas clave tienen tipos de datos diferentes C) La tabla derecha está vacía D) No hay suficiente memoria

Ver respuesta

Respuesta: B) Las columnas clave tienen tipos de datos diferentes

La causa más común de Merge sin coincidencias es que una columna es Texto y la otra Número (ej: "001" vs 1), o hay espacios extra en texto. Power Query requiere coincidencia exacta. Verifica tipos de datos y aplica Recortar a columnas de texto antes de Merge.


Próximos Pasos

En la siguiente lección dominarás columnas calculadas y transformaciones avanzadas en Power Query:

  • Crear columnas personalizadas con lenguaje M
  • Columnas condicionales con IF/ELSE visual
  • Extraer información de fechas (año, mes, trimestre)
  • Columnas de índice y ranking
  • Funciones de texto avanzadas

Ya sabes conectar, limpiar y combinar datos. Ahora aprenderás a crear información nueva a partir de la existente.

Completaste esta leccion?

Marca esta leccion como completada. Tu progreso se guardara en tu navegador.