Forum Discussion
Columnas unpivot
Hola
Estoy intentando despivotear las columnas B a M, pero no puedo obtener el resultado deseado en el editor de consultas. Puedo obtener los resultados deseados en Microsoft Access escribiendo la consulta y usando Union All. ¿Es posible hacer esto en power Query Editor? He intentado agregar una columna indexada para poder ordenar los números numéricos después de unpivot coumns B a M, pero eso no ayudó ya que al despivotar las columnas B a M también cambia los números de índice.
Datos:
Resultado deseado:
| Pedidos reales | Periodo | Importe |
| 532910 Prf Svcs Rev | 1 | -60000.00 |
| laboratorio 690296: Externo | 1 | 8.22 |
| 692025 Overhead: Miscelánea (laboratorio) | 1 | 1.73 |
| 5610901 KTI-PTO - Fibra de VIDRIO | 1 | -16377.47 |
| 605509 Contratos-Otros Svcs | 1 | 833.57 |
| 645200 SI Transferencias de gastos | 1 | 200.00 |
| laboratorio 690296: Externo | 1 | 0.06 |
| 692025 Overhead: Miscelánea (laboratorio) | 1 | 3305.90 |
| 95142290 TIS-A/N- salesforce | 1 | 20081.83 |
| 532910 Prf Svcs Rev | 2 | -60000.00 |
| laboratorio 690296: Externo | 2 | 8.22 |
| 692025 Overhead: Miscelánea (laboratorio) | 2 | 4.38 |
| 5610901 KTI-PTO - Fibra de VIDRIO | 2 | -11331.24 |
| 605509 Contratos-Otros Svcs | 2 | 4962.10 |
| 645200 SI Transferencias de gastos | 2 | 1000.00 |
| laboratorio 690296: Externo | 2 | 0.89 |
| 692025 Overhead: Miscelánea (laboratorio) | 2 | 3929.57 |
| 95142290 TIS-A/N- salesforce | 2 | 28603.93 |
| 532910 Prf Svcs Rev | 3 | 0.00 |
| laboratorio 690296: Externo | 3 | 0.00 |
| 692025 Overhead: Miscelánea (laboratorio) | 3 | 0.00 |
| 5610901 KTI-PTO - Fibra de VIDRIO | 3 | 0.00 |
| 605509 Contratos-Otros Svcs | 3 | 0.00 |
| 645200 SI Transferencias de gastos | 3 | 0.00 |
| laboratorio 690296: Externo | 3 | 0.00 |
| 692025 Overhead: Miscelánea (laboratorio) | 3 | 0.00 |
| 95142290 TIS-A/N- salesforce | 3 | 0.00 |
7 Replies
- Syndicate_Admin
Administrator
Por favor, publique un dato de muestra que podamos copiar y pegar (no una imagen) o un enlace a un archivo de Excel.
- Syndicate_Admin
Administrator
¿O ha probado Unpivot Other Columns en su lugar seleccionando solo la/s columna/s que desea que permanezcan pivotadas?
- Syndicate_Admin
Administrator
Aquí está el enlace a los datos: https://docs.google.com/spreadsheets/d/1EMqc3KrH2J6k5LpQakikSZIH3MgHvpNHu6gZwpYuY40/edit?usp=sharing
Probé unpivot Other Columns, pero no funcionó.
- Syndicate_Admin
Administrator
Hola
Necesita más que Unpivoting para su caso de uso. Pruebe el M-Script a continuación.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("vZJBa8MwDIX/ishpg8az5diJeytjG2XdUprcQg9u6tJCSIcdyn7+5JYx2NnU8FmCKLzk6XVdtnF2gNrvnQ/ZLBMEEpIoCEVooiQqwsQZHq84KTDbzrpMSTSCA6z9AZpLH2DjLvQ015wO4/xfn6JEWW04Gg2wsrs5vHxPzo92iN/JEP9KOjXkqADqi/NHZ/dz+DiFHh4Gu3uMVrDy6hmTVUJRpQU3XAC8t8t83daQw+tp5zy8rRZNE30VWpYlK8prL6QUDIuUf82V4gbg+TxO3vZTyOvpSPpxzdFjKZmK2oXRyETS7RYKOYWqWdJuv9wYHLTejuFwCyr+pkncLVc0oK+lMvfLlZRcMRPfkAbNzexU0kaJAtGQye2yyRdPnzlAsIMLh7Pv3c3kSrAqBhsrzSUzMpX89gc=", 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, Column12 = _t, Column13 = _t]), #"Transposed Table" = Table.Transpose(Source), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Transposed Table", {"Column1"}, "Attribute", "Value"), #"Changed Type" = Table.TransformColumnTypes(#"Unpivoted Other Columns",{{"Value", type text}}), RealOrdersName = Table.SelectRows(#"Changed Type", each ([Column1] = "Real Orders")), Custom1 = #"Unpivoted Other Columns", #"Filtered Rows1" = Table.SelectRows(Custom1, each [Column1] <> "Real Orders"), #"Merged Queries" = Table.NestedJoin(#"Filtered Rows1", {"Attribute"}, RealOrdersName, {"Attribute"}, "ColumnName", JoinKind.LeftOuter), #"Expanded ColumnName" = Table.ExpandTableColumn(#"Merged Queries", "ColumnName", {"Value"}, {"Real Orders"}), #"Renamed Columns" = Table.RenameColumns(#"Expanded ColumnName",{{"Column1", "Period"}, {"Value", "Amount"}}), #"Removed Other Columns" = Table.SelectColumns(#"Renamed Columns",{"Real Orders", "Amount", "Period"}), #"Changed Type1" = Table.TransformColumnTypes(#"Removed Other Columns",{{"Amount", type number}, {"Period", Int64.Type}}), #"Sorted Rows" = Table.Sort(#"Changed Type1",{{"Period", Order.Ascending}}) in #"Sorted Rows"Aquí hay una captura de pantalla del resultado:
Ejemplo pbIX - https://drive.google.com/file/d/1TD1fOdwaxP2pVDPp2goKprXVIno9rkch/view?usp=sharing
- Syndicate_Admin
Administrator
Gracias por trabajar en esto y perdón por la respuesta tardía. ¿Sería posible tener los datos de resultado deseados en el mismo orden de clasificación (columna Orden real) que los datos originales?