Forum Discussion
sjh_au
8 years agoRegular Visitor
Convert rows into columns when row header found
Hi, I have some data from ADFind tool. The data has headers rather than a separate column every time a new record is matched. Any idea's how to convert something like this into rows/columns in ...
- 8 years ago
You may refer to the code below.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkpNzi9KUbBSMFSK1YlWcs7PMQRyyhJzSlMN4UJGcCEjmJAxXMgYLAQ3xwjDHCO4OSZwIRNUTcYYmoyBmmIB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t]), #"Added Custom" = Table.AddColumn(Source, "Custom", each if Text.StartsWith([Column1], "Record :") then [Column1] else null), #"Filled Down" = Table.FillDown(#"Added Custom",{"Custom"}), #"Filtered Rows" = Table.SelectRows(#"Filled Down", each not Text.StartsWith([Column1], "Record : ")), #"Split Column by Delimiter" = Table.SplitColumn(#"Filtered Rows", "Column1", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), {"Column1.1", "Column1.2"}), #"Pivoted Column" = Table.Pivot(#"Split Column by Delimiter", List.Distinct(#"Split Column by Delimiter"[Column1.1]), "Column1.1", "Column1.2") in #"Pivoted Column"
v-chuncz-msft
Community Support
8 years ago
You may refer to the code below.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkpNzi9KUbBSMFSK1YlWcs7PMQRyyhJzSlMN4UJGcCEjmJAxXMgYLAQ3xwjDHCO4OSZwIRNUTcYYmoyBmmIB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
#"Added Custom" = Table.AddColumn(Source, "Custom", each if Text.StartsWith([Column1], "Record :") then [Column1] else null),
#"Filled Down" = Table.FillDown(#"Added Custom",{"Custom"}),
#"Filtered Rows" = Table.SelectRows(#"Filled Down", each not Text.StartsWith([Column1], "Record : ")),
#"Split Column by Delimiter" = Table.SplitColumn(#"Filtered Rows", "Column1", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
#"Pivoted Column" = Table.Pivot(#"Split Column by Delimiter", List.Distinct(#"Split Column by Delimiter"[Column1.1]), "Column1.1", "Column1.2")
in
#"Pivoted Column"