Forum Discussion

FrankWoody's avatar
FrankWoody
Helper I
4 years ago
Solved

M Language Extract Text

I would like to create some criteria when extracting the text based on the number of "-" and the text of the column starting with "ABLE TO PLAY".
If the column starts with the text "ABLE TO PLAY" and the amount of ; "-" is greater than 1 so I want it to extract the text following this RULE:
Text.BetweenDelimiters([SPENDING LOCATION], "-", "-", 0, 1)
But if the number of "-" is less than or equal to 1 then I want it to use:
Text.AfterDelimiter([SPENDING LOCATION], " ", 2).
If the column starts with any text other than "ABLE TO PLAY" it can return the normal value of the column without change.

  • = Table.AddColumn(#"Renamed Columns", "Custom",
    each if
       Text.Length(Text.Select([_5],"-"))>1 and Text.StartsWith([_5],"ABLE TO PLAY")
    then Text.BetweenDelimiters([_5], "-", "-", 0, 1)
    else if
      Text.Length(Text.Select([_5],"-"))<=1 and Text.StartsWith([_5], "ABLE TO PLAY")
    then Text.AfterDelimiter([_5], " ", 2) else [_5])

    Achieve after testing a lot! If anyone has the same problem or something similar I hope it helps.

2 Replies

  • = Table.AddColumn(#"Renamed Columns", "Custom",
    each if
       Text.Length(Text.Select([_5],"-"))>1 and Text.StartsWith([_5],"ABLE TO PLAY")
    then Text.BetweenDelimiters([_5], "-", "-", 0, 1)
    else if
      Text.Length(Text.Select([_5],"-"))<=1 and Text.StartsWith([_5], "ABLE TO PLAY")
    then Text.AfterDelimiter([_5], " ", 2) else [_5])

    Achieve after testing a lot! If anyone has the same problem or something similar I hope it helps.