Forum Discussion

Yuvaraj's avatar
Yuvaraj
Helper I
9 years ago
Solved

How to extract the data between special characters

Hi,   I am new to PowerBI, In below table i need to extract ID between the special characters(* and &).Could you please help me    Comments 1.Found the root cause of "Reachability bill grou...
  • MarcelBeug's avatar
    MarcelBeug
    9 years ago

    Ah, so far it wasn't clear to me that you had multiple lines in each text field... at least that's what I understand now.

     

    I created an Excel file with some test data (yours and some slubby examples) and the code below in Power BI - Query Editor and another video to illustrate how it works.

     

    let
        Source = Excel.Workbook(File.Contents("C:\Users\Marcel\Documents\Forum bijdragen\Power BI Community\How to extract text between special characters.xlsx"), null, true),
        Table1_Table = Source{[Item="Table1",Kind="Table"]}[Data],
        #"Changed Type" = Table.TransformColumnTypes(Table1_Table,{{"Comments", type text}}),
        AddedStart = Table.AddColumn(#"Changed Type", "Start", each Text.PositionOf([Comments],"*",Occurrence.All)),
        ExpandedStart = Table.ExpandListColumn(AddedStart, "Start"),
        StartPlus1 = Table.TransformColumns(ExpandedStart, {{"Start", each _ + 1, type number}}),
        AddedLength = Table.AddColumn(StartPlus1, "Length", each if [Start] = null then null else Text.PositionOf(Text.Range([Comments],[Start]),"&",Occurrence.First)),
        AddedID = Table.AddColumn(AddedLength, "ID", each if [Start] = null or [Length] = -1 then null else Text.Range([Comments],[Start],[Length])),
        RemovedOtherColumns = Table.SelectColumns(AddedID,{"ID", "Comments"}),
        RemovedDuplicates = Table.Distinct(RemovedOtherColumns,{"ID","Comments"})
    in
        RemovedDuplicates