Anteriormente hice una serie de artículos sobre las operaciones Merge/JOIN (aquí está la primera parte) y ahora es tiempo de publicar uno sobre las operaciones combinar/anexar.
Entonces… ¿Cómo se combinan/anexan/apilan tablas con Power BI/Power Query?
Hay múltiples formas de hacer esto, pero vamos a comenzar con lo más básico.
Caso: Combinar datos de 2 archivos CSV
Imagina que tenemos 2 archivos CSV.
- Datos de ventas en el año 2017 (Sales 2017)
- Datos de ventas en el año 2018 (Sales 2018)
En realidad, nuestras fuentes de datos pueden ser cualquiera. Puede ser un archivo CSV y un archivo de Excel, quizás una tabla de una base de datos y otra de una API.
Hacerlo en Power BI / Power Query no tiene mayor diferencia ya que harán los mismos procesos sin importar sus fuentes de datos. Lo que estoy a punto de mostrarte aplica para cada fuente de datos posible dentro de Power BI / Power Query.
Queremos anexar ambas en una única tabla. ¿Cómo hacemos eso?
Conectarse a los Datos
Este es un proceso bastante sencillo en donde seleccionamos nuestra fuente de datos desde la ventana “Obtener datos” y luego hacemos el proceso de importación. Este proceso mostrará una ventana del navegador para que puedas seleccionar tu archivo y luego te dará una vista previa de los datos como esta:
Para terminar, puedes hacer clic en Editar para ir directo al editor de Power Query.
Esto es bastante sencillo y en nuestro caso, nuestros archivos CSV tienen el formato correcto, por lo que no necesitamos hacer transformaciones aparte de las que hace Power BI / Power Query de forma automática.
Repetimos este proceso para el archivo 2018 y luego tendremos 2 consultas:
Esas son las consultas o las tablas que queremos apilar una encima de la otra. ¿Cómo hacemos eso?
Combinar / Apilar / Anexar Tablas
Esta es la parte más fácil de todas. Ahora lo único que debes hacer es encontrar el botón que dice Anexar consultas (Append Queries) y luego aparecerá una nueva ventana. Ahí puedes combinar todas las consultas que quieras.
No tienen que ser únicamente 2 tablas, pueden ser tantas tablas como quieras. Esto significa que el año siguiente, cuando ya tenga listos los datos del 2019 puedo simplemente crear una nueva consulta y agregarla a la lista de tablas que quiero que se combinen. Así de sencillo.
El resultado de esto será una tabla con todas las columnas de las tablas que combinamos y todos los datos de ambas.
Consideraciones
Carga de Datos
Cuando creas las consultas, estarán fijadas de forma predefinida para cargarse a tu Modelo de Datos o también se pueden crear como nuevas tablas dentro de Excel si usas Power Query para Excel.
Esto puede crear duplicación de datos, lo que no es necesario en absoluto. Para evitar que esto suceda, puedes cambiar el comportamiento de las consultas Ventas 2017 y Ventas 2018 y fijarlas como Solo conexión.
Con el Power BI Desktop,
Puedes hacer clic derecho en la consulta y deshabilitar la opción Cargar al desmarcar la opción Activar carga (Enable Load).
Privacidad de datos y el plegado de consultas (query folding)
Al combinar tus datos, sigue los lineamientos de muestra de Privacidad de Datos (aquí) y del Plegado de Consultas (aquí) como se mostró en los artículos anteriormente escritos. Esto significa que tendrás que estar pendiente del funcionamiento de esos conceptos en tu caso específico. Recomiendo que leas los artículos sobre este tema en caso te topes con errores o problemas de rendimiento.
La función Table.Combine
Cuando haces el proceso descrito en esta entrada de blog, Power Query terminará usando una función llamada Table.Combine.
Cuando Power Query usa esta función, el proceso es similar a cuando haces una SQL UNION ALL. Esto significa que Power Query intentará encontrar columnas equivalentes en todas las tablas y apilará los datos de forma adecuada. Si una tabla tiene columnas que la otra no, entonces llenará los espacios vacíos con valores nulos.
Esta función es POR MUCHO el mejor método cuando se trata de anexar datos ya que es una función que fue diseñada específicamente para este propósito.
Buenas tardes,
Cuando cargo una hoja de datos como solo conexión y hago los pasos que necesite al Cerrar y Cargar no se donde se cargan los datos , no aparece ninguna hoja nueva con la carga, me podrían decir porque sucede esto.
Muchas gracias,
Un saludo,
Hola Mayte,
No estoy al 100% seguro de lo que está sucediendo en tu caso, pero al definir una consulta como «connection only» esta no se deberá de ser cargada. Podrías siempre revisar la consulta desde tu «queries pane» para revisar cómo está configurada dicha consulta y dónde debería de cargarse.
Buenos días,
Realicé el proceso de Append queries as new, todo funcionó bien cuando lo hice, luego cuando se modificaron las tablas de origen (se agregaron más filas), power BI no reconoce la nueva información.
Qué puedo hacer?
Hola Hugo! Habría que revisar en detalle porqué sucede esto. Lo mejor es ir paso por paso de tu consulta para ver qué sucede y si realmente el power Query está apuntando al archivo correcto.
Saludos!
Buenas, a nivel de rendimiento, que recomiendas para Power Bi, fuente de datos csv o excel?
gracias.
Csv
Gracias. Imaginaba que fuera así, pero al ser Office, pensé que a lo mejor lo habían orientado a que trabajases con Excel también.
Buenas tardes se que mi duda no esta con el tema del cual habla pero, me pueden apoyar es que quiero saber si es posible realizar un cambio de la base de datos sql. Es decir power bi esta conectado a «basadedatos» pero cambiaron la base a «BDatos», todos los cálculos están hechos en «basadedatos» es posible cambiarlos sin tener que hacer los cálculos nuevamente.
¡De antemano gracias! Saludos cordiales.
Hola!
Este artículo te puede ayudar:
https://support.microsoft.com/en-us/office/data-source-settings-power-query-9f24a631-f7eb-4729-88dd-6a4921380ca9
Saludos!
Hola!
Sabes como puedo agregar una columna que muestre el nombre de las diferentes tablas que anexe?
Muchas gracias!!
Hola!
Lamentablemente con esta forma no es posible hacerlo. Necesitarías tomar un alcance un poco diferente. Usualmente lo más sencillo es crear una nueva columna dentro de cada una de tus tablas (consulta) con el mismo nombre de columna, pero con un valor distinto para cada tabla (consulta). Así cuando las combines podrás determinar de qué fuente viene.
Espero sea de ayuda.
Saludos!
Hola, una consulta, si tengo 2 tablas distintas en una misma hoja de excel, puedo usarlas en POWER BI ?, o las tablas deben estar en hojas separadas?
MUCHAS GRACIAS
Puedes importar ambas como consultas distintas y luego combinarlas en una sola tabla. No habría problema con ello.
Saludos!
Cuando hago combinación de dos tablas, me duplica valores en el merge, que pasos estoy saltando o que debo hacer para no duplicar valores?
Hola!
¿Podría ser que estás anexando la misma tabla (consulta) consigo misma?
Realmente sin conocer tus datos o tus consultas no podría darte una respuesta concreta, pero lo que planteo arriba es lo primero que revisaría.
Saludos!
Hola Miguel,
muy buena explicacion, me fue muy util 🙂
si recibo una nueva tabla con los daros de 2019 y mas tarde 2020 ¿es posible crear una tabla que apìle todas las tablas recibidas sin tener que guardar las tablas anteriores?
Gracias 🙂
Hola!
Te invito a leer los otros artículos en esta serie que hablan sobre ese tema:
https://www.thepoweruser.com/es/2019/04/23/combinar-o-anexar-datos-combinar-archivos-de-excel/
https://www.thepoweruser.com/es/2019/04/16/combinar-o-anexar-datos-combinar-archivos-planos/
Saludos!
Necesito anexar dos consultas que tienen identicas columnas y en la misma ubicación cada una, pero cuando las anexo, cambia la posición de las columnas y no coinciden entre las consultas. Porque puede ser?
Hola!
Realmente no sabría decirte. ¿Podría ser que las consultas no tienen el mismo orden de columnas?
Hola miguel,
cuando desativas la carga de la datos(Enable load) desde el editor de Power Query(como en tu ejemplo), ¿afecta en algo a la operación con las tablas(ya sea combinar o anexar) o unicamente oculta la tabla a power BI? ¿Y la opcion «Load disabled»(que aparecce al principio de este post) como se activa?
Gracias Miguel, saludos 🙂
Hola!
No tiene ningún impacto más allá de que la consulta no será cargada a tu modelo de datos.
Con un simple clic izquierdo sobre tu consulta debes de poder ver el menú contextual para la consulta y poder deshabilitar al carga de ser necesario.
Saludos!
Muchas gracias por la aclaración miguel
Hola tengo un problema al usar la función UNION para unir 2 bases de datos de contabilidad, las cuales se originan de un software en desuso hasta 2020 y el nuevo software que se utiliza a partir de 2021. Ya hice el trabajo de homogenizar los datos y cantidad de columnas en ambas bases de datos (22 columnas).
Sin embargo, al reordenar la ubicación de las columnas en el editor de PQ esto no afecta el orden de las columnas en las tablas en Power Bi Desktop.
Consecuentemente, resultando una salida, después de aplicar UNION, con los datos «cambiados» en diferentes columnas.
Cómo puedo solucionar este problema?
Hola!
Te recomiendo no utilizar DAX para este caso y utilizar el Power Query para combinar dichas tablas. Usualmente el tema de las tablas calculadas con DAX son un último recurso a la hora de anexar tablas.
Si el sistema que mencionas está en desuso, trata de archivar los datos de dicha base de datos en un dataflow de Power BI o tal vez en un archivo plano para que así sea más sencillo de anexar los datos.
Buenas noches, tengo 3 columnas, con calculate. Las 3 tienen espacios vacios y me gustaria juntarlas. Es posible? (los espacios vacios son los que llenarian las otras columnas) en POWER BI
Hola!
No estoy seguro de entender este caso. El artículo de arriba habla sobre combinar / anexar tablas, pero según entiendo lo que estás tratando de llevar a cabo es combinar o fusionar múltiples columnas en una sola. Es posible hacerlo en Power Query, seleccionando las columnas y luego darle click al botón de «Combinar columnas» en la interfaz, pero es un tema totalmente ajeno a lo que planteo en el artículo de arriba.
Mi recomendación es que publiques tu consulta completa con lujo de detalles en el foro oficial de Power BI en español utilizando el enlace de abajo:
https://community.powerbi.com/t5/Translated-Spanish-Desktop/bd-p/pbi_spanish_desktop
Hola yo quisiera saber si hay alguna forma de evitar que una consulta se actualicé pero la otra si. Es decir tengo una consulta que tiene un histórico de tres años y ya las he cargado al modelo. Y solamente quisiera actualizar la del nuevo año y que se anexen dichas consultas ya que la consulta que tiene tres años históricos no va a variar nunca entonces quiero saber si me puedo evitar tener que actualizar dicha consulta pero la otra que tiene datos del año actual si se actualicé y se anexen
Hola!
No estoy seguro de entender el caso, pero acá te paso un artículo que habla de la opción para «excluir el refrescado de datos de consulta»:
https://docs.microsoft.com/es-es/power-bi/connect-data/refresh-include-in-report-refresh#excluding-queries-from-refresh
Espero te sea de ayuda.
Saludos!
Hola! Estoy combinando dos consultas, trayendo la variable forecast de la tabla 2. En la consulta resultado solo para dos de los registros el valor de forecast aparece duplicado es decir 10 en lugar de 5. Ya he verificado que no tengo duplicados en las consultas de inicio. Cual puede ser la causa?
Hola!
El resultado depende muchísimo de tus datos y cómo lucen, por lo que sin conocimiento de ellos no podría brindarte una respuesta concreta.
Recomiendo publicar tu consulta con datos de ejemplos (e inclusive archivos de ejemplo) dentro del foro oficial de Power BI:
https://community.powerbi.com/t5/Translated-Spanish-Desktop/bd-p/pbi_spanish_desktop
error al anexar consultar en power query, una columna me queda con texto vacío. A pesar de que cada tabla independiente tiene un 100% de datos rellenados sin errores, tiene el mismo formato, texto