Anónimo
Hola !
Quería transponer los datos de Excel en Power BI para obtener el elemento, el año, los meses y otros datos en columnas individuales, con los que estoy luchando ahora.
Quiero mostrarlo como en las columnas de abajo.
Elemento Año Mes Datos
Proyectos completados / mes 2019 Oct 0
Proyectos completados / mes 2019 Nov 0
Proyectos completados / mes 2019 1 de diciembre
Proyectos terminados / mes 2019 Oct 0
Proyectos terminados / mes 2019 Nov 0
Proyectos terminados / mes 2019 dic 11
Total de proyectos finalizados 2019 oct 0
Total de proyectos finalizados 2019 noviembre 0
Total de proyectos finalizados 2019 dic 11
Proyectos completados / mes 2019 Oct 0
Proyectos completados / mes 2019 Nov 0
Proyectos completados / mes 2019 Dic 0
Proyectos terminados / mes 2019 Oct 0
Proyectos terminados / mes 2019 Nov 0
Proyectos terminados / mes 2019 Dic 0
Total de proyectos finalizados 2019 octubre 11
Total de proyectos finalizados 2019 noviembre 11
Total de proyectos finalizados 2019 dic 11
y así…..
Hay tres conjuntos de datos en la tabla a continuación y quiero que todo esté en columnas, por lo que es apropiado cuando se crea el informe basado en los datos del año / mes
2019 | |||
oct | nov | dic | |
Proyectos completados / mes | 0 | 0 | 1 |
Proyectos terminados / mes | 0 | 0 | 11 |
Total de proyectos finalizados | 0 | 0 | 11 |
Proyectos totales | 353 | ||
Total de proyectos es | 27039 | ||
2019 | |||
oct | nov | dic | |
ETH – Alto | 3 | 6 | 88 |
ETH acumulativo – bajo | 7 | 11 | 88 |
ETH total bajo | 9 | 12 | 1 |
2019 | |||
oct | nov | dic | |
ETH – bajo | 5 | 8 | 33 |
ETH acumulativo – bajo | 9 | 7 | 33 |
ETH total bajo | 6 | 5 | 1 |
La ayuda será muy apreciada.
ahmedoye
@Anónimo, cuando sus datos tienen las dos filas iniciales que le gustaría traer como columnas separadas (algo así como dos filas de encabezado), debe hacer lo siguiente:
- Transponer la tabla: Esto traerá las dos filas de encabezado a columnas, pero hará que la columna previamente buena entre en filas con los elementos de la primera fila. No te preocupes, aplica los siguientes pasos
- Vaya a la pestaña Transformar y use la primera fila como encabezado: Esto hará que los elementos de la primera fila se conviertan en el encabezado
- Seleccione las dos nuevas columnas, haga clic con el botón derecho y seleccione Desactivar otras columnas: Esto ahora hará que tenga una nueva columna con los elementos en los encabezados convirtiéndose en la nueva columna, y los valores justo delante de ellos como una nueva columna.
Es posible que deba hacer un poco de limpieza aquí y allá después.
Espero que esto funcione para usted, si lo hace, marque como una solución para permitir que otras personas se beneficien de esto.
bfernandez
En respuesta a ahmedoye
@ahmedoye ¡esta es una gran solución!
Consulte a continuación la consulta M:
let
Source = Excel.Workbook(File.Contents("C:Usersbfernandez1DesktopTempBook1.xlsx"), null, true),
Sheet2_Sheet = Source{[Item="Sheet2",Kind="Sheet"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(Sheet2_Sheet,{{"Column1", type text}, {"Column2", type any}, {"Column3", type any}, {"Column4", type any}}),
#"Transposed Table" = Table.Transpose(#"Changed Type"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"Column1", Int64.Type}, {"Column2", type text}, {"EWP's completed per month", Int64.Type}, {"Initial Isometrics completed per month", Int64.Type}, {"Initial Total Isometrics", Int64.Type}, {"Initial total EWP's", Int64.Type}, {"Total Isometrics", Int64.Type}, {"Column8", type any}, {"Column9", Int64.Type}, {"Column10", type text}, {"EWP's completed per month_1", Int64.Type}, {"Isometrics completed per month", Int64.Type}, {"Total Isometrics_2", Int64.Type}}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type1", {"Column1", "Column2"}, "Attribute", "Value"),
#"Filtered Rows" = Table.SelectRows(#"Unpivoted Other Columns", each ([Attribute] <> "Column10" and [Attribute] <> "Column9")),
#"Filled Down" = Table.FillDown(#"Filtered Rows",{"Column1"})
#"Replaced Value" = Table.ReplaceValue(#"Filled Down","_1","",Replacer.ReplaceText,{"Attribute"}),
#"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","_2","",Replacer.ReplaceText,{"Attribute"})
in
#"Replaced Value1"
Por supuesto, cambie donde hay tachados con sus propios datos.
ahmedoye
@Anónimo, cuando sus datos tienen las dos filas iniciales que le gustaría traer como columnas separadas (algo así como dos filas de encabezado), debe hacer lo siguiente:
- Transponer la tabla: Esto traerá las dos filas de encabezado a columnas, pero hará que la columna previamente buena entre en filas con los elementos de la primera fila. No te preocupes, aplica los siguientes pasos
- Vaya a la pestaña Transformar y use la primera fila como encabezado: Esto hará que los elementos de la primera fila se conviertan en el encabezado
- Seleccione las dos nuevas columnas, haga clic con el botón derecho y seleccione Desactivar otras columnas: Esto ahora hará que tenga una nueva columna con los elementos en los encabezados convirtiéndose en la nueva columna, y los valores justo delante de ellos como una nueva columna.
Es posible que deba hacer un poco de limpieza aquí y allá después.
Espero que esto funcione para usted, si lo hace, marque como una solución para permitir que otras personas se beneficien de esto.
bfernandez
En respuesta a ahmedoye
@ahmedoye ¡esta es una gran solución!
Consulte a continuación la consulta M:
let
Source = Excel.Workbook(File.Contents("C:Usersbfernandez1DesktopTempBook1.xlsx"), null, true),
Sheet2_Sheet = Source{[Item="Sheet2",Kind="Sheet"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(Sheet2_Sheet,{{"Column1", type text}, {"Column2", type any}, {"Column3", type any}, {"Column4", type any}}),
#"Transposed Table" = Table.Transpose(#"Changed Type"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"Column1", Int64.Type}, {"Column2", type text}, {"EWP's completed per month", Int64.Type}, {"Initial Isometrics completed per month", Int64.Type}, {"Initial Total Isometrics", Int64.Type}, {"Initial total EWP's", Int64.Type}, {"Total Isometrics", Int64.Type}, {"Column8", type any}, {"Column9", Int64.Type}, {"Column10", type text}, {"EWP's completed per month_1", Int64.Type}, {"Isometrics completed per month", Int64.Type}, {"Total Isometrics_2", Int64.Type}}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type1", {"Column1", "Column2"}, "Attribute", "Value"),
#"Filtered Rows" = Table.SelectRows(#"Unpivoted Other Columns", each ([Attribute] <> "Column10" and [Attribute] <> "Column9")),
#"Filled Down" = Table.FillDown(#"Filtered Rows",{"Column1"})
#"Replaced Value" = Table.ReplaceValue(#"Filled Down","_1","",Replacer.ReplaceText,{"Attribute"}),
#"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","_2","",Replacer.ReplaceText,{"Attribute"})
in
#"Replaced Value1"
Por supuesto, cambie donde hay tachados con sus propios datos.
bfernandez
De acuerdo, si su objetivo es que los datos se vean como le gustaría en la tabla que publicó, puede tomar otro enfoque.
Mantenga los datos tal como vienen de la fuente y realice la edición en Power Query siguiendo los siguientes pasos:
Combinar mes y año:
Luego, analice el MonthYear para obtener la fecha de inicio de cada MonthYear:
Luego, después de cerrar y aplicar los pasos, cree un objeto visual de Matrix y rellénelo con los datos como se muestra a continuación:
Anónimo
En respuesta a bfernandez
Perdón si te había confundido en mi publicación original, la tabla publicada allí contenía los datos de la fuente de datos y la lista que mencioné era cómo debería verse.
Debería tener el siguiente aspecto en Power BI para poder crear informes:
Elemento Año Mes Datos
Proyectos terminados / mes 2019 Nov 0
Proyectos terminados / mes 2019 dic 11
Total de proyectos finalizados 2019 oct 0
Total de proyectos finalizados 2019 noviembre 0
Anónimo
En respuesta a bfernandez
Cuando los datos provienen de Excel, se ve así, los meses y los años están en filas, ¿cómo puedo convertirlos en el formato que tienes en tu primera captura de pantalla y luego seguir adelante?
bfernandez
En respuesta a Anónimo
Estos datos parecen muy desordenados por la forma en que se presentan o no obtengo la imagen completa.
Muestra ciertas categorías que no están agrupadas como deberían o no veo la información.
Por ejemplo, hay varios «Isométricos completados por mes con diferentes valores en la misma columna de octubre de 2019».
¿Puede elaborar un poco más o dar una imagen más amplia de los datos que está proporcionando?
Amitchandak
Consulte también: https://radacad.com/pivot-and-unpivot-with-power-bi
bfernandez
Puede transponer datos utilizando la función Transponer dentro de Power Query.
Puede encontrarlo en la pestaña Transformar, en la sección Tabla.
Anónimo
En respuesta a bfernandez
Mis datos ahora se parecen a esto
bfernandez
En respuesta a Anónimo
No veo nada adjunto a tu respuesta, ¿puedes intentar enviar las capturas de pantalla nuevamente?
Anónimo
En respuesta a bfernandez
Anónimo
En respuesta a bfernandez
Gracias bfernandez, estoy usando la función de transposición pero no está organizando como quiero. Lo intenté de varias maneras, pero desafortunadamente no lo está reorganizando de la manera que quiero.
Gracias