Forum Discussion
Column split by conditon
I have a requirement to extract/split data if value starts with P or QM to be 7 characters rest should be as-is, how it can be achived? help needed
As-is
PABCP01A
CSOMTO04
PPQRX01M
QM0888TA
ATLCTL01
to-be
PABCP01
CSOMTO04
PPQRX01
QM0888T
ATLCTL01
Anonymous -
Are you meaning that you have so many conditions for Text.StartsWith = "P" || "QM" || etc.?
If so, then you should include those requirements in your question.
Otherwise, you just need to add the logic from the last statment
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if Text.StartsWith([#"As-is"], "P") then Text.RemoveRange([#"As-is"],7) else if Text.StartsWith([#"As-is"],"QM") then Text.RemoveRange([#"As-is"],7) else [#"As-is"])
4 Replies
- ChrisMendozaResident Rockstar
Anonymous -
This seems to work:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCnB0cg4wMHRUitWJVnIO9vcN8TcwAXMCAgKDIgwMfcGcQF8DCwuLEIgyxxAf5xAfA0Ol2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"As-is" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"As-is", type text}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if Text.StartsWith([#"As-is"], "P") then Text.RemoveRange([#"As-is"],7) else if Text.StartsWith([#"As-is"],"QM") then Text.RemoveRange([#"As-is"],7) else [#"As-is"]) in #"Added Custom"- AnonymousNot applicable
ChrisMendoza i have many such values below is the sample
- ChrisMendozaResident Rockstar
Anonymous -
Are you meaning that you have so many conditions for Text.StartsWith = "P" || "QM" || etc.?
If so, then you should include those requirements in your question.
Otherwise, you just need to add the logic from the last statment
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if Text.StartsWith([#"As-is"], "P") then Text.RemoveRange([#"As-is"],7) else if Text.StartsWith([#"As-is"],"QM") then Text.RemoveRange([#"As-is"],7) else [#"As-is"])