Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowJuly 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more
Hi,
I have a column of that I need to filter by a set values contained in a 2nd table.
The closest thing I could find is the following, using List.Contains or List.ConstainsAny:
https://community.powerbi.com/t5/Desktop/Filter-using-imported-list/m-p/155804#M67461
However, this approach only gives me exact matchs.
Example:
List.Constains({{"wine"}}, {{"wine"}}) returns true
List.Contains({"a wine from italy"}}, {{"wine}}) returns false
Text.Contains goes beyond exact matches, but there is no Text.ContainsAny to text for a list of values (only 1).
Is there an easy way to use Text.Contains("string to evaluate", "string to look for")...
With the goals of:
?
Thanks!
Solved! Go to Solution.
To search multiple values in a string, you need to custom a function like:
Text.ContainsAny = (string as text, list as list) as logical =>
List.AnyTrue(List.Transform(list, (substring) => Text.Contains(string, substring)))
See a similar thread below:
https://stackoverflow.com/questions/35316657/how-to-search-multiple-strings-in-a-string/35324537
Regards,
To search multiple values in a string, you need to custom a function like:
Text.ContainsAny = (string as text, list as list) as logical =>
List.AnyTrue(List.Transform(list, (substring) => Text.Contains(string, substring)))
See a similar thread below:
https://stackoverflow.com/questions/35316657/how-to-search-multiple-strings-in-a-string/35324537
Regards,
Thanks, it works great on a 400 rows dataset I tried.
Hopefully, I can optimize my filters prior to launching the function, because it currently doesn't work on a million+ rows dataset I'm targeting.
Which I find odd, since I only tested for 2 keywords, which I would have expected to take a similar amount of time to when using:
each Text.Contains([Column 1], "Keyword 1") or Text.Contains([Column 1], "Keyword 2")
The code is at risk of leaving residual errors if one of the text value is null, so I added a "try" when filtering.
Text.ContainsAny = (string as text, list as list) as logical =>
List.AnyTrue(List.Transform(list, (substring) => Text.Contains(string, substring))),
#"Filtered Rows" = Table.SelectRows(#"lowercased dataset", each try Text.ContainsAny([Nom du produit], Keywords) otherwise false)
Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.
Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.
| User | Count |
|---|---|
| 29 | |
| 23 | |
| 18 | |
| 18 | |
| 15 |
| User | Count |
|---|---|
| 51 | |
| 44 | |
| 43 | |
| 39 | |
| 32 |