Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
I have following challenge:
Say I have a table like this:
Name | Type | Color | Size |
A | Shirt | Red | XL |
B | Shirt | Blue | XXL |
C | Pants | Green | L |
and a table like this:
Lookup filter name | Criteria |
Shirts | (Type = “Shirt”) |
Shirts XL | (Type = “Shirts” AND Size = “XL”) |
Pants | (Type = “Pants”) |
What I want to do is add data from the first table to the second table, like when you merge a query or use Table.SelectRows and then be able to expand the data to see which records from first table match the criteria of the lookup filter in the second.
I tried doing something like adding a custom column with “Table.SelectRows(LookupTable,Each[Criteria])” but received errors.
I think I need to write a function, but have no idea how to do that for this scenario?
Can someone help me?
Solved! Go to Solution.
Oh good grief @ImkeF - duh!
Thanks! So obvious. I was looking for something difficlut.
@Anonymous - the final formula for the filter is:
= Table.AddColumn(
#"Changed Type",
"Custom",
each
let
varFilter = [Criteria]
in
Table.SelectRows(Table, Expression.Evaluate("each" & varFilter, [_ = _]))
)
Here is the final link. I keep files in a different folder when they are solved. The above link will not work.
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingWow @camargos88 @edhans @ImkeF I usually never post questions on forums like this because I always thought it took days to get answers. You proved me wrong, less than 24 hours and I have some info to work with. I will try to apply your solutions to my actual case and let you know the outcome! Thanks!
Glad to help @Anonymous
Remember, everyone here is a volunteer. Sometimes stuff can take days, other times minutes. Always post. Even if you discover a workable solution first, you can get a different perspective here that might improve on your solution.
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingHi @Anonymous ,
I worked here, changing a bit your source to:
Lookup filter name CriteriaFilter
Shirts | [Type] = "Shirt" |
Pants | [Type] = "Pants" |
Shirts XL | [Type] = "Shirt" and [Size] = "XL" |
I tried with the original but the brackets and lowercase logical operators were missing, maybe there is another way to do it.
And using the function that @edhans and @ImkeF provided:
Table.SelectRows(Table, Expression.Evaluate("each " & _filter, [_=_]))
Oh good grief @ImkeF - duh!
Thanks! So obvious. I was looking for something difficlut.
@Anonymous - the final formula for the filter is:
= Table.AddColumn(
#"Changed Type",
"Custom",
each
let
varFilter = [Criteria]
in
Table.SelectRows(Table, Expression.Evaluate("each" & varFilter, [_ = _]))
)
Here is the final link. I keep files in a different folder when they are solved. The above link will not work.
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingWow @camargos88 @edhans @ImkeF I usually never post questions on forums like this because I always thought it took days to get answers. You proved me wrong, less than 24 hours and I have some info to work with. I will try to apply your solutions to my actual case and let you know the outcome! Thanks!
Glad to help @Anonymous
Remember, everyone here is a volunteer. Sometimes stuff can take days, other times minutes. Always post. Even if you discover a workable solution first, you can get a different perspective here that might improve on your solution.
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingHi Ricardo,
Thanks for replying!
I can't share the actual data, but the criteria column contains information like this:
((Type = "Shirt" AND Size ="XL") OR (Type = "Shirt") OR (Color = "Red")) AND Someother field = "X"
The complexity is that each row is different and uses different fields in a different order.
Can you help me with a function I can use?
I feel like I am close here, but this is returning an error:
= Table.AddColumn(
#"Changed Type",
"Custom",
each
let
varFilter = [Criteria]
in
Table.SelectRows(Table, Expression.Evaluate(varFilter, [_ = _]))
)
The problem is I am getting this error:
@ImkeF - can you see what I'm doing wrong here?
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingHi @edhans ,
you're missing the "each" keyword that defines the function:
Table.SelectRows(Table, Expression.Evaluate("each" & varFilter, [_ = _]))
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
15 | |
11 | |
8 | |
8 | |
7 |
User | Count |
---|---|
15 | |
13 | |
9 | |
7 | |
6 |