Forum Discussion
Anonymous
6 years agoNot applicable
Split Column by First Letter
Hi All, I have a dataset that combines order and seller. I am attempting to split them by first letter due to the variance of delimeter in each cell. Is it possible to build a solution for just t...
- 6 years ago
Hi Anonymous ,
You could try below M code to see whteher it work or not.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMvXQNTTVNdJ3yk9SitWJVrIMBgoY6RoZ6oakpoBFgNIGhrpGCr6JRZnFxYlKsbEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Current = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Current", type text}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each let MyList = Text.ToList([Current]), ListCount = List.Count(MyList), ListArr = {"A".."Z"} in Text.Combine(List.Generate(()=> [ a = 0, b = MyList {a} ], each [a] < ListCount, each [ a = [a] + 1, b = if List.Contains(ListArr, MyList {a}) then " " & MyList {a} else MyList {a} ], each [b] ))), #"Inserted Text After Delimiter" = Table.AddColumn(#"Added Custom", "Text After Delimiter", each Text.AfterDelimiter([Custom], " ", {0, RelativePosition.FromEnd}), type text), #"Removed Columns" = Table.RemoveColumns(#"Inserted Text After Delimiter",{"Custom"}) in #"Removed Columns"Best Regards,
Zoe ZhiIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- 6 years ago
Hi Anonymous
Try this.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMvXQNTTVNdJ3yk9SitWJVrIMBgoY6RoZ6oakpoBFgNIGhrpGCr6JRZnFxYlgMV8IALMTQaAYCFJSgBpiAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Current = _t]), #"Added Custom" = Table.AddColumn(Source, "records", ( rec ) => let position = Text.PositionOfAny( rec[Current], {"A".."Z"}, 1 ), result = [ Code = Text.Start( rec[Current], position -1 ), Name = Text.Range( rec[Current], position ) ] in result ), #"Expanded records" = Table.ExpandRecordColumn(#"Added Custom", "records", {"Code", "Name"}, {"Code", "Name"}), #"Replaced Errors" = Table.ReplaceErrorValues(#"Expanded records", {{"Code", null}, {"Name", null}}), #"Changed Type" = Table.TransformColumnTypes(#"Replaced Errors",{{"Code", type text}, {"Name", type text}}) in #"Changed Type"Best Regards,
Mariusz
If this post helps, then please consider Accepting it as the solution.
Please feel free to connect with me.
LinkedIn
Anonymous
3 years agoNot applicable
This would be so incredibly simple with RegEx support. ðŸ˜