Unir varias tablas mensuales para diferentes años en una sola

Un usuario Pregunto ✅

yurik74

Quiero combinar y descentrar varias tablas de diseño idéntico en una normalizada.

Entonces las tablas se ven así:

2010 ene feb dic
A N1 N4
B N2 N5
C N3 N7

y tengo, digamos 10 de esos – para los años 2011, 12 y así sucesivamente.

Estoy tratando de combinar estas tablas y deshacerlas todas en la tabla que se parece a la siguiente:

Fecha Monto
A 31/01/2010 N1
B 31/01/2010 N2
C 31/01/2010 N3
A 28/02/2010 N4
B 28/02/2010 N5
C 28/02/2010

N6

C 31/12/2020

N360

Todas las tablas de origen se encuentran en una hoja de Excel en las mismas columnas, por lo que el título del producto está en la columna B, el primer mes en la columna C y así sucesivamente.

Entiendo que puedo hacer consultas separadas para cada tabla, pero eso parece una exageración y parece que hay una solución más fácil.

Logré lo que quería, pero es un camino bastante largo y no parece muy eficiente. Mi enfoque se puede resumir de la siguiente manera:

1. Cargue todas las tablas, elimine las filas vacías (ceros)

2. Transponga la tabla resultante para obtener las fechas del primer año en la primera columna, luego 3 columnas con datos, luego las fechas del segundo año en la columna 5 y así sucesivamente. Ver ejemplo a continuación

2010 A B C 2011 A B C
ene N1 N2 N3 ene
feb feb

dic

dic

3. Combinar cada 4 columnas

4. Tablas resultantes sin pivotar

5. Dividir columnas en diferentes columnas

el resto es bastante obvio.

PictureThis_screenshot_20210920_172515.jpg

Entonces, como puede imaginar, necesito fusionar 10 columnas y es una especie de ajuste manual que no me gusta.

Estaba pensando que debe haber una manera de dividir estas columnas en la tabla, de modo que en lugar de 40 columnas por 13 filas, tenga 4 columnas por 130.

Intenté deshacer el pivote: no puedo obtener lo que quiero, intenté agregar la columna de índice y luego el módulo por 4, para poder pivotar por la columna del módulo, pero tampoco está generando lo que quiero.

Intenté usar Table.Split() y obtuve una lista de tablas, y luego pensé en unirlas, pero no estoy muy seguro de cómo hacerlo.

Puede ser que esté en un camino completamente equivocado, pero estoy bastante seguro de que no soy el primero con este tipo de tarea.

CNENFRNL

Simplemente cambie el nombre de la primera columna de 2010/2011/… a «Producto»; elimine cada tabla y combine todas las tablas no pivotadas.

yurik74

En respuesta a CNENFRNL

Quería obtener una solución, por lo que si se agrega una nueva tabla con datos mensuales debajo de las existentes, mi tabla resultante se actualizaría al actualizar y no necesito deshacer una tabla nueva.

amichandak

@ Yurik74, no es un dato ideal para BI. Necesito consultar con un experto en M.

@ImkeF, ¿puedes ayudar con esto?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *