Este es el diseño típico de los archivos y las semanas dispuestas horizontal y verticalmente. De un archivo a otro, el número de filas puede diferir debido a la variación en el número de filas.
Ahora, vaya a Power Query y obtenga los archivos. Seleccione Nueva fuente y haga clic en Más. Luego, haga clic en Todo y elija Carpeta.
Seleccione Parámetro y presione OK.
Te mostrará los archivos en Carpeta. Debe reunir todos los archivos en una sola consulta de resultados. Al hacer clic en Combinar y transformar, se cargan los datos y se crean varias consultas.
A continuación, elija cualquier archivo de la carpeta como archivo de muestra y seleccione cualquier elemento que desee iniciar.
Al observar Consulta1, puede ver datos de Archivo1 y Archivo2.
Formulación de cálculos en Power Query
El formato de los datos en Query1 sigue siendo incorrecto. Puede cambiarlo a través de la consulta Transformar archivo de muestra.
Si cambia el formato de esa consulta a una forma tabular, servirá como modelo para todos los archivos en la carpeta.
Quite las primeras 2 filas y Column1.
Luego, llene los espacios dentro de la tabla. Vaya a la pestaña Transformar y seleccione Transponer. Seleccione las columnas que contienen fechas y haga clic en el encabezado. Haga clic en Rellenar y seleccione Abajo.
Las columnas con fechas en la barra de fórmulas significan que si hay un número variable de filas en cada semana, los resultados no estarán en esas columnas. Por lo tanto, elimine el paso Relleno en la sección Pasos aplicados.
Cada grupo de tablas comienza con una columna que contiene fechas. Debe realizar operaciones básicas para volver a colocarlas en un formato tabular.
Agregue un paso manual presionando f(x) en la barra de fórmulas. Luego, ingrese Table.ToColumns . Esto convierte cada columna en una lista que contiene listas.
Convierta la lista en una tabla y agregue un número de índice. Puede cambiar de 0 o 1.
Llenar los huecos en las fechas
Todavía hay lagunas en las fechas que debe completar. Sin embargo, la operación de relleno no funciona para las listas. Tienes que convertir esta lista en una tabla.
Seleccione la columna Índice y haga clic en Agrupar por. Reemplace Count to ToTable para cambiar el nombre de la columna. Cambie RowCount a FromColumns y apunte a Column1 donde se colocan las listas. Luego, conviértelo en una tabla tipo.
Ahora puede ver que la lista se convierte en una tabla con una sola columna.
Ahora, realice la operación de relleno para cada tabla. Primero, agregue una columna personalizada y llámela FillDown .
Debe acceder al primer valor de la primera columna de la tabla, por lo que para la fórmula, use IF . Haga referencia a la columna ToTable que contiene la tabla. Ingrese Column1 como la columna a la que desea hacer referencia. Luego, use nulo entre ellos para recuperar el primer valor de la lista.
Luego, verifica si esa es una fecha. Si es así, rellene esa columna con Table.Filldown. Dentro de esa función, ingrese ToTable y Column1. Pero si no es una fecha, ingrese ToTable para devolver la tabla completa.
Esto le dará una nueva columna con tablas completas.
Encuentre dónde se colocan las fechas de las columnas y divídalas en tablas separadas. Para ello, debe convertir las tablas en una lista de columnas.
Después de las funciones Table.FillDown y Else en la barra de fórmulas, haga referencia a Column1.
Esto convertirá sus tablas en listas con un conjunto de fechas.
Luego, vuelva a convertir la lista en una tabla actualizando su columna de índice. Recuerde que el lugar divisorio es donde está la posición de la columna de fecha. Entonces, agregue una columna personalizada y llámela Index2 . Luego, verifique si la lista contiene fechas.
Use IF e ingrese FillDown. Solo tienes que comprobar el primer valor de la lista. Si es una fecha, devuelve Index. Si no, ingrese nulo . Luego, llene esa columna hacia abajo.
Agrupación de tablas separadas
Utilice Agrupar por en la columna Index2. Esto agrupa las tablas con los mismos valores de Index2 en una sola.
No vas a contar las filas. Entonces, cambie RowCount a FromColumns y agregue la columna FillDown. Luego, cambie el tipo a tabla.
Si hace clic en una tabla, verá las columnas dentro de ella.
A continuación, debe agregar todas las tablas separadas juntas en una sola tabla. Cree un paso manual y use Table.Combine. Luego, haga referencia a la columna Contar dentro de ella.
Seleccione Columna1 y Columna2. Haga clic en Transformar y seleccione Dejar de girar otras columnas. A continuación, le mostrará 4 columnas.
Quite la columna Atributo porque no es necesaria. Luego, cambie los nombres de las columnas a Fecha , Movimientos y Nombre . Cambie el tipo de datos de la columna Fecha a Fecha y la columna Nombre a Texto.
Ahora ha actualizado las transformaciones al archivo de ejemplo de transformación.
Si va a Consulta1, puede ver que no se puede encontrar la Columna1 de la tabla. Por lo tanto, elimine el paso Tipo cambiado en la sección Pasos aplicados.
Por último, cambie los tipos de datos de las columnas. Establezca el tipo de datos de la columna Fecha en Fecha. Luego, establezca el tipo de datos de las columnas Movimientos y Nombre en Texto.
Ahora ha actualizado y cambiado el formato del modelo de datos a una forma tabular.