Forum Discussion

khom's avatar
khom
Frequent Visitor
3 years ago
Solved

Power Query - How do I Categorize "Table1" based on "Lookup_Table"

Hi, I'm newbie for power query. I'm looking forward to have this categorization since I have a lot of data with this data arrangement.   I have this "Table1" (blue color) which contains "Combo"  c...
  • Mahesh0016's avatar
    3 years ago

    khom 

     

    >> Go to power query >> select "Table1" >> Go to Home tab Merge Queries >> Select Lookup Table >> Select Bottom Use fuzzy Matching >> Get Your Out Put >> Select Merge Queries and as new your needs.

     

     

     

     

     

     

     

     

    **Did I answer your question? Mark my post as a solution! Appreciate your Kudos !!

  • ImkeF's avatar
    ImkeF
    3 years ago

    Hi khom ,
    I would use the List.ContainsAll function for it.
    Therefore you have to split up the strings into list by using "-" as delimiter:

    let
      Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content], 
      #"Changed Type" = Table.TransformColumnTypes(Source, {{"Item", Int64.Type}, {"Combo", type text}}), 
      #"Added Custom" = Table.AddColumn(#"Changed Type", "ListOfValues", each Text.Split([Combo], "-")), 
      #"Added Custom1" = Table.AddColumn(
        #"Added Custom", 
        "Category", 
        each Table.SelectRows(
          Lookup_Table, 
          (LookupTable) => List.ContainsAll([ListOfValues], LookupTable[ListOfValues])
        ){0}?[Category]?
      )
    in
      #"Added Custom1"

    Please also check the file enclosed.




  • AlB's avatar
    3 years ago

    Hi khom 

    Place the following M code in a blank query to see the steps. See it all at work in the attached file.

     

     

    let
        Source = Table1,
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Item", Int64.Type}, {"Combo", type text}}),
        #"Added Custom1" = Table.AddColumn(#"Changed Type", "Category", each 
        let 
           combo_ = Text.Split([Combo], "-"),
           res_ = Table.SelectRows(LookUpTable, (inner)=> List.Count(List.Intersect({combo_, Text.Split(inner[Lookup], "-")})) = List.Count(Text.Split(inner[Lookup], "-")))
        in 
           try res_[Category]{0} otherwise null),
        
        #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom1",{{"Category", type text}})
    in
        #"Changed Type1"

     

     

     

    Please accept the solution when done and consider giving a thumbs up if posts are helpful. 

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.