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.
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?