Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hello,
I have 2 lists:
ListData
ListFilter
both containing text strings.
I would like to find any item in ListData that contains any part of a string from ListFilter.
ex.
ListData: {"red apple", "blue apple", "green banana", "red pear"}
ListFilter:{"apple","pear"}
Desired result: {"red apple", "blue apple", "red pear"}
I have tried List.FindText which works wonderfuly with an unique text - but how do you adapt it to scanning through a list?
Thanks a lot!
Kind regards
Valeria
Solved! Go to Solution.
Another approach, using List.Accumulate to cycle through the ListFilter:
let
ListData= {"red apple", "blue apple", "green banana", "red pear"},
ListFilter={"apple","pear"},
filter = List.Accumulate(
ListFilter,
{},
(s,c)=> s & List.FindText(ListData,c))
in
filter
Hi,
How I will handle this.
let
Source = {"red apple", "blue apple", "green banana", "red pear"},
Custom1 = {"apple","pear"},
Custom2 = List.Select(Source, each List.AnyTrue(List.Transform(Custom1, (substring) => Text.Contains(_, substring))))
in
Custom2
Another approach, using List.Accumulate to cycle through the ListFilter:
let
ListData= {"red apple", "blue apple", "green banana", "red pear"},
ListFilter={"apple","pear"},
filter = List.Accumulate(
ListFilter,
{},
(s,c)=> s & List.FindText(ListData,c))
in
filter
@ronrsnfld @ZhangKun both your solutions work but only partially for me (which I know it's impossible). Still In my filter list I have items like "Q1". In my data list I have an item "2024 Q1" and it won't be returned. I checked the spelling, no trailing spaces...do you have an idea what might be happening? Thanks!
There may be something wrong with how you implemented my solution.
Adding the item "2024 Q1" to ListData and "Q1" to ListFilter includes "2024 Q1" in the returned list.
let
ListData= {"2024 Q1","red apple", "blue apple", "green banana", "red pear"},
ListFilter={"apple","Q1"},
filter = List.Accumulate(
ListFilter,
{},
(s,c)=> s & List.FindText(ListData,c))
in
filter
Results (as expected):
@ronrsnfld @ZhangKun Thanks! I don't know what was happening... I did a couple of transformations to the ListData - which change nothing to items like "2024 Q1" - and now it works. Never seen this before, and I don't understand it. Anyway - again thanks - with this it works perfeclty 🙂
My answer did not use the List.FindText function (it is easier to use List.FindText), so I deleted the answer. If you still have problems, you should provide the data row in question, such as "2024 Q1" as you said.
Hi @ZhangKun thanks but what a pity! Your solution was working perfectly as well and was a nice alternative 🙂 Thanks!
Can you share sample data (ListData and ListFilter) ?
@Ahmedx Hello,
ListData: {"red apple", "blue apple", "green banana", "red pear"}
ListFilter:{"apple","pear"}
Desired result: {"red apple", "blue apple", "red pear"}
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 | |
10 | |
10 | |
8 | |
7 |