Transponer datos de Excel en columnas en Power BI

Un usuario Pregunto ✅

Anónimo

Hola !

Quería transponer los datos de Excel en Power BI para obtener el artículo, el año, los meses y otros datos en columnas individuales, con las que estoy luchando ahora.

Quiero mostrarlo como en las columnas de abajo.

Artículo Año Mes Datos

Proyectos completados/mes 2019 Oct 0

Proyectos completados/mes 2019 Nov 0

Proyectos completados/mes 2019 Dic 1

Proyectos Se completó/mes 2019 Oct 0

Proyectos Es completado/mes 2019 Nov 0

Proyectos Está terminado/mes 2019 Dic 11

El total de proyectos está completado 2019 oct 0

El total de proyectos está completado 2019 noviembre 0

El total de proyectos está completado 2019 11 de diciembre

Proyectos completados/mes 2019 Oct 0

Proyectos completados/mes 2019 Nov 0

Proyectos completados/mes 2019 Dic 0

Proyectos Se completó/mes 2019 Oct 0

Proyectos Es completado/mes 2019 Nov 0

Proyectos Es completado/mes 2019 Dic 0

El total de proyectos está completado 2019 oct 11

El total de proyectos está completado 2019 noviembre 11

El total de proyectos está completado 2019 11 de diciembre

y así…..

Hay tres conjuntos de datos en la tabla a continuación y quiero que todo esté en columnas para que sea apropiado al crear el informe basado en los datos del año/mes.

2019
oct nov dic
Proyectos completados/mes 0 0 1
Proyectos completados/mes 0 0 11
El total de proyectos está completado 0 0 11
Proyectos totales 353
El total de proyectos es 27039
2019
oct nov dic
ETH – Alto 3 6 88
ETH acumulativo – bajo 7 11 88
ETH bajo total 9 12 1
2019
oct nov dic
ETH – bajo 5 8 33
ETH acumulativo – bajo 9 7 33
ETH bajo total 6 5 1

La ayuda será muy apreciada.

ahmedoye

@Anónimo, cuando sus datos tengan las dos filas iniciales que le gustaría traer como columnas separadas (algo así como dos filas de encabezado), debe hacer lo siguiente:

  1. Transponer la tabla: Esto traerá las dos filas de encabezados en columnas, pero hará que la columna que antes era buena se convierta en filas con los elementos en la primera fila. No te preocupes, aplica los siguientes pasos
  2. 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.
  3. Seleccione las dos nuevas columnas, haga clic con el botón derecho y seleccione Desenmarañar 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 es así, márquelo como 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, cambia donde hay tachados con tus propios datos.

ahmedoye

@Anónimo, cuando sus datos tengan las dos filas iniciales que le gustaría traer como columnas separadas (algo así como dos filas de encabezado), debe hacer lo siguiente:

  1. Transponer la tabla: Esto traerá las dos filas de encabezados en columnas, pero hará que la columna que antes era buena se convierta en filas con los elementos en la primera fila. No te preocupes, aplica los siguientes pasos
  2. 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.
  3. Seleccione las dos nuevas columnas, haga clic con el botón derecho y seleccione Desenmarañar 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 es así, márquelo como 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, cambia donde hay tachados con tus propios datos.

bfernandez

De acuerdo, si su objetivo es que los datos se vean como le gustaría en la tabla que publicó, puede adoptar otro enfoque.

Mantenga los datos tal como vienen de la fuente y realice su edición en Power Query siguiendo los siguientes pasos:

Combinar mes y año:

fusionar.png

MesAño.png

Luego analice el MonthYear para obtener la fecha de inicio de cada MonthYear:

Analizar.png

SoM.png

Luego, después de cerrar y aplicar los pasos, cree una matriz visual y complétela con los datos como se muestra a continuación:

Matriz.png

Anónimo

En respuesta a bfernandez

Perdón si lo confundí en mi publicación original, la tabla publicada allí era la información 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 que pueda crear informes:

Artículo Año Mes Datos

Proyectos Es completado/mes 2019 Nov 0

Proyectos Está terminado/mes 2019 Dic 11

El total de proyectos está completado 2019 oct 0

El total de proyectos está completado 2019 noviembre 0

Anónimo

En respuesta a bfernandez

Cuando los datos provienen de Excel, se ven así, los meses y los años están en filas, ¿cómo puedo convertirlos en el formato que tiene en su primera captura de pantalla y luego continuar?

Captura2.PNG

bfernandez

En respuesta a Anónimo

Estos datos parecen muy desordenados por la forma en que se presentan o no obtengo una imagen completa.

Me esta mostrando ciertas categorias que no estan agrupadas como deberian estar o no estoy viendo la informacion.

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?

amichandak

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.

transponer.png

Anónimo

En respuesta a bfernandez

Mis datos ahora se ven así

bfernandez

En respuesta a Anónimo

No puedo ver nada adjunto a su respuesta, ¿puede intentar enviar las capturas de pantalla nuevamente?

Anónimo

En respuesta a bfernandez

Captura.PNG

Anónimo

En respuesta a bfernandez

Gracias bfernandez, estoy usando la función de transposición pero no está arreglando como quiero. Lo intenté de varias maneras, pero lamentablemente no lo estoy reorganizando como quiero que sea.

Gracias

Deja un comentario

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