Forum Discussion

prabhatnath's avatar
prabhatnath
Icon for Advocate III rankAdvocate III
2 years ago
Solved

Split a Text column by delimiter multiple combinations - mQuery

Hi Friends, I have a table that is loaded into Power BI and has a column as "Cycles" and has text data as below. And I wanted to add another column "FY Quarter" during the data load steps using m...
  • danextian's avatar
    2 years ago

    Hi prabhatnath ,

     

    Try the following custom column in the query editor:

    if Text.Contains([Cycles], "\Cycle-") then Text.BetweenDelimiters([Cycles], "\", "\Cycle-", {1, RelativePosition.FromEnd}, 0) else Text.AfterDelimiter([Cycles], "\", {0, RelativePosition.FromEnd})

    Here's the complete M Code

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCijKz0pNLomJcYs0MoaQuoEmMTHOlck5qbqGSjpKUCGlWB1Cqo3wqDaByGGRgJC6gVC7wCzcimB2GZOk2oQk1abEqDaCKzLCowhmpBlJqs2RVccCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Cycles = _t, #"FY Quarter" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Cycles", type text}, {"FY Quarter", type text}}),
        Custom = Table.AddColumn(#"Changed Type", "Custom", each 
    if Text.Contains([Cycles], "\Cycle-") then Text.BetweenDelimiters([Cycles], "\", "\Cycle-", {1, RelativePosition.FromEnd}, 0) else Text.AfterDelimiter([Cycles], "\", {0, RelativePosition.FromEnd}), type text)
    in
        Custom

     

  • Ahmedx's avatar
    2 years ago

    plse try this

    try
    List.Select(
    Text.Split([Cycles],"\"),(x)=> Text.Contains(x,"-Q", Comparer.OrdinalIgnoreCase)){0} otherwise List.Select(
    Text.Split([Cycles],"\"),(x)=> Text.Contains(x,"FY", Comparer.OrdinalIgnoreCase)){0}