When I do Split by Column I can choose my delimiter, but when I expand 'Advanced options' I can see it's going to use the maximum number of delimiters I have at this time.
How can I do the same function (split column by delimiter into new columns) but with a dynamic max number of delimiters, as this will sometimes change?
Thank you
Solved! Go to Solution.
Hi @thisisausername,
Refering to the video, I made a sample for your reference. Here we can split the column without setting the number of delimiters. M code for your reference.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCklNzDXUTUzUTUrSTU5WitWBCBkBhRLhPGOgVLJuSkoKXMRE19DIWNfYyMhIKTYWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column", type text}}), #"Lowercased Text" = Table.TransformColumns(#"Changed Type",{{"Column", Splitter.SplitTextByDelimiter("-"), type text}}), Column = #"Lowercased Text"[Column], #"Converted to Table" = Table.FromList(Column, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Expanded Column1" = Table.ExpandListColumn(#"Converted to Table", "Column1"), #"Added Conditional Column" = Table.AddColumn(#"Expanded Column1", "Custom", each if Text.StartsWith([Column1], "Team") then [Column1] else null), #"Filled Down" = Table.FillDown(#"Added Conditional Column",{"Custom"}), #"Filtered Rows" = Table.SelectRows(#"Filled Down", each not Text.StartsWith([Column1], "Team")), #"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"Custom", "Column1"}) in #"Reordered Columns"
Hi @thisisausername,
Refering to the video, I made a sample for your reference. Here we can split the column without setting the number of delimiters. M code for your reference.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCklNzDXUTUzUTUrSTU5WitWBCBkBhRLhPGOgVLJuSkoKXMRE19DIWNfYyMhIKTYWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column", type text}}), #"Lowercased Text" = Table.TransformColumns(#"Changed Type",{{"Column", Splitter.SplitTextByDelimiter("-"), type text}}), Column = #"Lowercased Text"[Column], #"Converted to Table" = Table.FromList(Column, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Expanded Column1" = Table.ExpandListColumn(#"Converted to Table", "Column1"), #"Added Conditional Column" = Table.AddColumn(#"Expanded Column1", "Custom", each if Text.StartsWith([Column1], "Team") then [Column1] else null), #"Filled Down" = Table.FillDown(#"Added Conditional Column",{"Custom"}), #"Filtered Rows" = Table.SelectRows(#"Filled Down", each not Text.StartsWith([Column1], "Team")), #"Reordered Columns" = Table.ReorderColumns(#"Filtered Rows",{"Custom", "Column1"}) in #"Reordered Columns"
Great video!
Oh your video just made my day!
Hi @thisisausername ,
"Each occurance" option should cover that. If you don't add anything into how many columns Power Query does that for you.
Let me know if you have any questions.
If this solves your issues, please mark it as the solution, so that others can find it easily. Kudos are nice too.
Nathaniel
Proud to be a Super User!