The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
I'm using List Contains function from power query to filter the data that I need.
I have a transaction list, transaction_list (in all text format), and a data table called data_table.
When I use list contains to add a condition to the filtering process, it just doesn't work right. Keep giving me an error saying:Expression.Error: We cannot convert a value of type List to type Text.
FilteredTable = Table.SelectRows(Source, each
if Text.Start([transaction_list], 3) = "22-" then
List.Contains(transaction_list, [buyer_transaction_id])
else if Text.Start([transaction_list], 3) = "55-" then
List.Contains(transaction_list, [sell_transaction_id])
else
List.Contains(transaction_list, [transaction_id])
Solved! Go to Solution.
Hi @Aggro ,
You may consider using the List.AnyTrue() function to minimize the number of List.Contains calls.
each List.AnyTrue({
List.Contains(transaction_list, [transaction_id]),
List.Contains(transaction_list, [sell_transaction_id]),
List.Contains(transaction_list, [buyer_transaction_id])
})
List.AnyTrue() will only check for the first condition that is met, and once a match is found, it will stop checking the remaining ones, which can speed up the execution.
Best Regards,
Bof
Text.Start needs a text parameter passed to it. It's getting the list passed to it. What are you trying to do?
i'm searching for data from the transaction list.
Normally I would do:
each (List.Contains(transaction_list,[transaction_id])) or List.Contains(transaction_list,[sell_transaction_id])) or List.Contains(transaction_list,[buyer_transaction_id]))
but it would take super long to filter out data.
Hi @Aggro ,
You may consider using the List.AnyTrue() function to minimize the number of List.Contains calls.
each List.AnyTrue({
List.Contains(transaction_list, [transaction_id]),
List.Contains(transaction_list, [sell_transaction_id]),
List.Contains(transaction_list, [buyer_transaction_id])
})
List.AnyTrue() will only check for the first condition that is met, and once a match is found, it will stop checking the remaining ones, which can speed up the execution.
Best Regards,
Bof