Forum Discussion
Anonymous
5 years agoNot applicable
Need help in transforming the table.
Hello, I am in the learning phase of the Power BI. I have been struggling on one problem for last three days. I have this below table. I need to transform this into table looking like ...
- 5 years ago
Anonymous
Paste this code in a New Blank Query in the Advanced Editor and check the steps. All using GUI.let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Pcw7C4QwEATgv7JsbWOCsfbR2MhxbUgRNHAH9wARMfvrdQJJkWHYj4y1/PBb+O30DMt/W2kaKXLFw+v9WfNt9t9w30a/B6pzUbloOthVliHd/U6UiJC6QA/Al4gQVWAAaABCdAKVpxoAQpoCacoAEMoUSFMtACEtO3cB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"(blank)" = _t, #"(blank).1" = _t, #"(blank).2" = _t, #"(blank).3" = _t, #"(blank).4" = _t]), #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]), #"Merged Columns" = Table.CombineColumns(#"Promoted Headers",{"Date 1", "Date 2", "Date 3 v"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Merged"), #"Pivoted Column" = Table.Pivot(#"Merged Columns", List.Distinct(#"Merged Columns"[#"Child Record Name"]), "Child Record Name", "Merged"), #"Merged Columns1" = Table.CombineColumns(#"Pivoted Column",{"A", "B", "C"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Merged"), #"Split Column by Delimiter" = Table.SplitColumn(#"Merged Columns1", "Merged", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Merged.1", "Merged.2", "Merged.3", "Merged.4", "Merged.5", "Merged.6", "Merged.7", "Merged.8", "Merged.9"}) in #"Split Column by Delimiter"
Fowmy
Super User
5 years agoAnonymous
Paste this code in a New Blank Query in the Advanced Editor and check the steps. All using GUI.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Pcw7C4QwEATgv7JsbWOCsfbR2MhxbUgRNHAH9wARMfvrdQJJkWHYj4y1/PBb+O30DMt/W2kaKXLFw+v9WfNt9t9w30a/B6pzUbloOthVliHd/U6UiJC6QA/Al4gQVWAAaABCdAKVpxoAQpoCacoAEMoUSFMtACEtO3cB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"(blank)" = _t, #"(blank).1" = _t, #"(blank).2" = _t, #"(blank).3" = _t, #"(blank).4" = _t]),
#"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Merged Columns" = Table.CombineColumns(#"Promoted Headers",{"Date 1", "Date 2", "Date 3 v"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Merged"),
#"Pivoted Column" = Table.Pivot(#"Merged Columns", List.Distinct(#"Merged Columns"[#"Child Record Name"]), "Child Record Name", "Merged"),
#"Merged Columns1" = Table.CombineColumns(#"Pivoted Column",{"A", "B", "C"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Merged"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Merged Columns1", "Merged", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Merged.1", "Merged.2", "Merged.3", "Merged.4", "Merged.5", "Merged.6", "Merged.7", "Merged.8", "Merged.9"})
in
#"Split Column by Delimiter"
- Anonymous5 years agoNot applicable
You made my day. Thank you so much.
Is there any way where we can retain the column name?
- Fowmy5 years ago
Super User
Anonymous
Please find below the code with the Column Names renamed as desired:let Source = Table.FromRows( Json.Document( Binary.Decompress( Binary.FromText( "PYw7CoAwEESvEra2SUSt/TQ2IrYhRTABBT8gFrqn11GSYh/DPHa0pt4efjvF4Mf9cKJtKKF6mhcXms6u/u0ae3ohQ1AhpGQSTejL9y6EG2AZRQWBhxtgFUUNkUIA/E+pMJVBAJxF8U3lEIDKo/imCgiACzLmAQ==", BinaryEncoding.Base64 ), Compression.Deflate ) ), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ #"(blank)" = _t, #"(blank).1" = _t, #"(blank).2" = _t, #"(blank).3" = _t, #"(blank).4" = _t ] ), #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars = true]), #"Merged Columns" = Table.CombineColumns( #"Promoted Headers", {"Date 1", "Date 2", "Date 3"}, Combiner.CombineTextByDelimiter("|", QuoteStyle.None), "Merged" ), #"Pivoted Column" = Table.Pivot( #"Merged Columns", List.Distinct(#"Merged Columns"[#"Child Record Name"]), "Child Record Name", "Merged" ), #"Merged Columns1" = Table.CombineColumns( #"Pivoted Column", {"A", "B", "C"}, Combiner.CombineTextByDelimiter("|", QuoteStyle.None), "Merged" ), Step1 = Table.SplitColumn( #"Merged Columns1", "Merged", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), { "Merged.1", "Merged.2", "Merged.3", "Merged.4", "Merged.5", "Merged.6", "Merged.7", "Merged.8", "Merged.9" } ), Custom2 = Table.ExpandListColumn( Table.AddColumn( Table.FromList( List.Distinct(#"Promoted Headers"[Child Record Name]), Splitter.SplitByNothing(), null, null, ExtraValues.Error ), "Custom", each List.Skip(Table.ColumnNames(#"Promoted Headers"), 2) ), "Custom" ), NewHeaderList = Table.AddColumn(Custom2, "NewHeader", each [Column1] & " (" & [Custom] & ")")[ NewHeader ], OldHeaderList = List.Skip(Table.ColumnNames(Step1), 1), Step3 = Table.ToColumns( Table.Transpose(Table.FromColumns({OldHeaderList, NewHeaderList}, {"Old", "New"})) ), #"Renamed Columns" = Table.RenameColumns(Step1, Step3) in #"Renamed Columns" - Fowmy5 years ago
Super User
Anonymous
I will see that when I have time for sure.