Oct 08 2021 10:23 AM
Hi everyone,
I am using the latest version of excel and I am trying to create multiple lookups using power query (it has to be in power query for speed reasons). what I am envisioning is Having my main table look to a lookup table and then if column in main table(keywords) contains a value in lookup table column(contain) and does not contain a value in lookup table column(not contain) then return result from lookup table column(result) else return main table(Prediction).
I thought nesting the lookup table into the main table would work but I cannot figure out how to make a lookup statement without expanding the columns, and expanding the columns is not an option as it will create way too many duplicates. Thank you for your help!
Main Table
Keywords | Prediction | Column to create |
Cucumber | Veggie | Veggie |
Lemon, Oranges | Citrus | Citrus |
Lemon, Sugar | Citrus | Lemonade |
Lookup Table
Contain | NotContain | Result |
Lemon AND sugar | Orange | Lemonade |
Oct 08 2021 10:31 AM
Could you please clarify data structuring. In main table you have "Lemon, Sugar", in lookup table "Lemon AND sugar". Is that intentionally, or in lookup table it could "Lemon AND sugar", or "Lemon, sugar" or "Lemon, Sugar", whatever. What is exact format if you have it?
Oct 08 2021 10:35 AM - edited Oct 08 2021 10:36 AM
@Sergei Baklan Thank you for looking at this!
What I was saying by that structure was, I would like to be able to have the statement say: it say if it contains Lemon and Sugar but does not contain Orange then result is lemonade.
However, in retrospect I think it would be best formatted this way.
Contain | AlsoContain | NotContain | Result |
Lemon | Sugar | Orange | Lemonade |
Oct 08 2021 10:38 AM
Thank you. I hope I understand the idea, but depends on how your data is represented Power Query could be totally different.
Oct 08 2021 11:05 AM
Oct 08 2021 12:04 PM
Yes, that will be great. Sample file is always welcome.
Oct 08 2021 02:12 PM
I have attached a sample file below (with the end results filled in, but obviously remove those as needed). Thank you again!
Oct 09 2021 09:42 AM
SolutionThat could be like this, our queries are
Lookup keep as it is.
In Main query add column with list of keywords by Text.Split() of Keywords field.
Reference Lookup and create Not Contains keeping only Result and Not Contain columns, unpivot the latest, Group by Result without aggregation keeping only Values column. Thus we have list of Not Contain words for each Result (if exists)
Similar for Contains
Merge both above to have both lists in one List Combined table
Reference Main query as Final, add above Lookup Combined table to new column here
and expand it.
Add new custom column to check KeywordsList against Contains/Not Contains
Group by initial columns without aggregation keeping in resulting table of each group only rows where previous value is true.
Expand Result from it
and finally combine with Prediction
Details are in attached file.
Oct 11 2021 06:46 AM
Oct 11 2021 12:42 PM
Oct 24 2021 01:13 PM
@Joe_JL , you are welcome, glad it helped
Oct 09 2021 09:42 AM
SolutionThat could be like this, our queries are
Lookup keep as it is.
In Main query add column with list of keywords by Text.Split() of Keywords field.
Reference Lookup and create Not Contains keeping only Result and Not Contain columns, unpivot the latest, Group by Result without aggregation keeping only Values column. Thus we have list of Not Contain words for each Result (if exists)
Similar for Contains
Merge both above to have both lists in one List Combined table
Reference Main query as Final, add above Lookup Combined table to new column here
and expand it.
Add new custom column to check KeywordsList against Contains/Not Contains
Group by initial columns without aggregation keeping in resulting table of each group only rows where previous value is true.
Expand Result from it
and finally combine with Prediction
Details are in attached file.