Forum Discussion
Pregunta de unpivot
Hola
Tengo un conjunto de datos como este para muchos países. ¿Cómo despivot y transponer este tipo de tabla de Excel?
| Alemania | ||||||||||
| Año fiscal | 16-Nov-19 | 16-Dic-19 | 16-Enero-20 | 16-Feb-20 | 16-Mar-20 | 16-Abr-20 | 16-Mayo-20 | 16-Jun-20 | 16-Jul-20 | 16-Aug-20 |
| En | 3 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
| Emea | 2 | 2 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | 3 |
| Ap | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
| Ax | 2 | 1 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 2 |
| Para | 1 | 4 | 2 | 2 | 1 | 2 | 1 | 1 | 1 | 3 |
| Como | 2 | 2 | 3 | 3 | 4 | 3 | 4 | 2 | 4 | 1 |
| India | ||||||||||
| Año fiscal | 16-Nov-19 | 16-Dic-19 | 16-Enero-20 | 16-Feb-20 | 16-Mar-20 | 16-Abr-20 | 16-Mayo-20 | 16-Jun-20 | 16-Jul-20 | 16-Aug-20 |
| En | 3 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
| Emea | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 |
| Ap | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
| Ax | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 2 |
| Para | 1 | 4 | 2 | 2 | 1 | 2 | 1 | 1 | 1 | 3 |
| Como | 2 | 2 | 3 | 3 | 4 | 3 | 4 | 2 | 4 | 1 |
| Italia | ||||||||||
| Año fiscal | 16-Nov-19 | 16-Dic-19 | 16-Enero-20 | 16-Feb-20 | 16-Mar-20 | 16-Abr-20 | 16-Mayo-20 | 16-Jun-20 | 16-Jul-20 | 16-Aug-20 |
| En | 3 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
| Emea | 3 | 3 | 2 | 3 | 3 | 3 | 2 | 3 | 3 | 3 |
| Ap | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
| Ax | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 2 |
| Para | 1 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 3 |
| Como | 2 | 2 | 3 | 3 | 4 | 3 | 4 | 2 | 4 | 1 |
| E.e.u.u | ||||||||||
| Año fiscal | 16-Nov-19 | 16-Dic-19 | 16-Enero-20 | 16-Feb-20 | 16-Mar-20 | 16-Abr-20 | 16-Mayo-20 | 16-Jun-20 | 16-Jul-20 | 16-Aug-20 |
| En | 3 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
| Emea | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 |
| Ap | 2 | 3 | 3 | 3 | 2 | 3 | 2 | 2 | 2 | 1 |
| Ax | 2 | 1 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 2 |
| Para | 1 | 4 | 3 | 3 | 3 | 3 | 1 | 1 | 1 | 3 |
| Como | 2 | 2 | 1 | 2 | 1 | 1 | 4 | 2 | 4 | 1 |
| Uae | ||||||||||
| Año fiscal | 16-Nov-19 | 16-Dic-19 | 16-Enero-20 | 16-Feb-20 | 16-Mar-20 | 16-Abr-20 | 16-Mayo-20 | 16-Jun-20 | 16-Jul-20 | 16-Aug-20 |
| En | 3 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
| Emea | 2 | 2 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 2 |
| Ap | 2 | 3 | 3 | 2 | 3 | 2 | 3 | 3 | 2 | 3 |
| Ax | 2 | 2 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 2 |
| Para | 1 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | 3 | 3 |
| Como | 2 | 1 | 2 | 1 | 1 | 3 | 1 | 2 | 1 | 1 |
Hola, @MuraliPrasathS
Puede utilizar los pasos siguientes para despivot y transponer los datos. Aquí está el ejemplo.
1 Utilice encabezados como primera fila
2 Transponer la tabla
3 Utilice la primera fila como encabezados
4 Agregue una columna Personalizada con el nombre del país y arrástrela a la ubicación adecuada para reordenar la columna
5 Realice las mismas operaciones con otras consultas y, a continuación, anexe consultas como nuevas para obtener una nueva consulta
El resultado tiene este aspecto:
Saludos
Caiyun Zheng
¿Esa es la respuesta que estás buscando? Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
3 Replies
- Syndicate_Admin
Administrator
No @MuraliPrasathS ,
En el Editor de consultas de POwer, marque la columna con las áreas y haga clic en lo siguiente:
Saludos
Mikelytics
-------------------------------------------------------------------------------
¿Respondí a tu petición? Por favor, marque mi puesto como solución.
Apreciamos sus Kudos.
- Syndicate_Admin
Administrator
Aquí hay una manera de hacerlo, con el enfoque Shift y Fill Down. Para ver cómo funciona, simplemente cree una consulta en blanco, vaya a Editor avanzado y reemplace el texto allí con el código M a continuación.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("5ZZdC4IwFIb/SnitkB8EXQ7SSDACCQrxYpmEYBaWgf8+pzbnnLMvKBQ8nNeXw3Hw7Mw5jjD34yOMUkEUeI8rOoIRXDwYjrY+jDNLnkjL002Sp4We+R7WJowkZVxow99hbcEYa3COCT/F2kwiQodVfXJAGq0DWJmlIjsLhRuoXLd0QJgqFXUv778ibF5/uSjf4Ndm9/qX8vJZWarVOlVZxq3ycpuxdo3ISpmLxYwy9Vyg6kW0D+BgyLOihXxXUOT5nf+S/BWG/Z959ox/izxv1lvI06R/QH5tg95zf2PiWduj46x/ceLprdHBnd4eH3MH+iC5N3/iTO4KlSvNPelbuj+48y8bDe40c7Xhue4d", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t, Column6 = _t, Column7 = _t, Column8 = _t, Column9 = _t, Column10 = _t, Column11 = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"Column6", type text}, {"Column7", type text}, {"Column8", type text}, {"Column9", type text}, {"Column10", type text}, {"Column11", type text}}), #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Column1] <> " ")), #"Added Custom" = Table.AddColumn(#"Filtered Rows", "Country", each if [Column2] = "" then [Column1] else null), #"Filled Down" = Table.FillDown(#"Added Custom",{"Country"}), #"Filtered Rows1" = Table.SelectRows(#"Filled Down", each ([Column2] <> "")), #"Promoted Headers" = Table.PromoteHeaders(#"Filtered Rows1", [PromoteAllScalars=true]), #"Filtered Rows2" = Table.SelectRows(#"Promoted Headers", each ([Fiscal Year] <> "Fiscal Year")), #"Renamed Columns" = Table.RenameColumns(#"Filtered Rows2",{{List.Last(Table.ColumnNames(#"Filtered Rows2")), "Country"}}), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Renamed Columns", {"Fiscal Year", "Country"}, "Attribute", "Value"), #"Changed Type1" = Table.TransformColumnTypes(#"Unpivoted Other Columns",{{"Country", type text}, {"Attribute", type date}}), #"Renamed Columns1" = Table.RenameColumns(#"Changed Type1",{{"Fiscal Year", "Region"}}) in #"Renamed Columns1"Aquí es lo que la salida se ve como el uso de los datos de ejemplo (no estaba seguro de cómo llamar a su primera columna, así que fui con "Región".
palmadita
- Syndicate_Admin
Administrator
Hola, @MuraliPrasathS
Puede utilizar los pasos siguientes para despivot y transponer los datos. Aquí está el ejemplo.
1 Utilice encabezados como primera fila
2 Transponer la tabla
3 Utilice la primera fila como encabezados
4 Agregue una columna Personalizada con el nombre del país y arrástrela a la ubicación adecuada para reordenar la columna
5 Realice las mismas operaciones con otras consultas y, a continuación, anexe consultas como nuevas para obtener una nueva consulta
El resultado tiene este aspecto:
Saludos
Caiyun Zheng
¿Esa es la respuesta que estás buscando? Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.