Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
I am tring to transpose a table from this:
Brand | Purchase intent 1 | Purchase intent 2 | Purchase intent 3
Brand 1 |100 | 95 | 65
Brand 2 | 99 | 85 | 45
Brand 3 | 88 | 65 | 15
To this:
Brand | Brand 1 | Brand 2 | Brand 3
Purchase intent 1 | 100 | 99 | 88
Purchase intent 2 | 95 | 85 | 65
Purchase intent 3 | 65 | 45 | 15
I am doing this by editing the query, and performing the following steps:
1) Transpose
2) Use First Row as Headers
But after doing this the row labels are missing, the result is:
Brand 1 | Brand 2 | Brand 3
100 | 99 | 88
95 | 85 | 65
65 | 45 | 15
How do I keep the first column of labels: Purchase intent 1, 2, 3?
Solved! Go to Solution.
Hi @nerdlump ,
You need to use the Unpivot / Pivot options:
Check the M code below:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcipKzEtRMFTSUTI0MACSlqZAwsxUKVYHJmcEErUEEhYgKRNkKWOQqAVEA9AAoFQsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Brand = _t, #"Purchase Intent 1" = _t, #"Purchase Intent 2" = _t, #"Purchase Intent 3" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Brand", type text}, {"Purchase Intent 1", Int64.Type}, {"Purchase Intent 2", Int64.Type}, {"Purchase Intent 3", Int64.Type}}), #"Unpivoted Only Selected Columns" = Table.Unpivot(#"Changed Type", {"Purchase Intent 1", "Purchase Intent 2", "Purchase Intent 3"}, "Attribute", "Value"), #"Pivoted Column" = Table.Pivot(#"Unpivoted Only Selected Columns", List.Distinct(#"Unpivoted Only Selected Columns"[Brand]), "Brand", "Value", List.Sum) in #"Pivoted Column"
Regards,
MFelix
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsPosting an answer to this in case someone else needs to transpose a .json with a dynamic set of column names.
Add a custom column with some text, i used "Pivot".
Right click your new column and then "Unpivot other columns".
Then you can delete your new column and your column headers will now be transposed into a column for you.
Voila.
Hi @nerdlump ,
You need to use the Unpivot / Pivot options:
Check the M code below:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcipKzEtRMFTSUTI0MACSlqZAwsxUKVYHJmcEErUEEhYgKRNkKWOQqAVEA9AAoFQsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Brand = _t, #"Purchase Intent 1" = _t, #"Purchase Intent 2" = _t, #"Purchase Intent 3" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Brand", type text}, {"Purchase Intent 1", Int64.Type}, {"Purchase Intent 2", Int64.Type}, {"Purchase Intent 3", Int64.Type}}), #"Unpivoted Only Selected Columns" = Table.Unpivot(#"Changed Type", {"Purchase Intent 1", "Purchase Intent 2", "Purchase Intent 3"}, "Attribute", "Value"), #"Pivoted Column" = Table.Pivot(#"Unpivoted Only Selected Columns", List.Distinct(#"Unpivoted Only Selected Columns"[Brand]), "Brand", "Value", List.Sum) in #"Pivoted Column"
Regards,
MFelix
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsUnpromote headers and then transpose...
Thanks @MFelix , your suggested solution worked a charm 🙂 thanks for helping me out with my problem area.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
109 | |
99 | |
77 | |
66 | |
54 |
User | Count |
---|---|
144 | |
104 | |
102 | |
87 | |
64 |