Forum Discussion
Using a list parameter as a table filter in M language
- 8 years ago
You nee to use List.ContainsAny() function. *** MAKE SURE you wrap your field name in curly brackets.
= Table.SelectRows(
PreviousStep,
each List.ContainsAny( { 543,95,96,1359,1360,1104 } , { [CodeValueField] }
))Results returned :
543 95 96 1359 1360 1104 where CodeValueField field contains all the values below:
CodeValueField
543 95 96 1359 1360 1104 1170 1172 93 1248 454 1361 92 97 -4 -3 -5 -7 -8 -2
You will have to create a separate list of all of your parameters and then invoke your query as a separate custom function. Here is an example
https://www.youtube.com/watch?v=iiNDq2VrZPY // 12 minute describes multiple parameters
Nick-
- dslForPBI8 years agoHelper I
Thanks for the reply...the only parameter which is relavant for me in my case is list of values, as i have list of values I need to pass to evaluate. I have searched and it appears creating a function is what is suggested. Any examples of a custom function which takes a list as an arguement or at least tap into elements in the list (like "mylist[i]").
- nickchobotar8 years agoSkilled Sharer
- dslForPBI8 years agoHelper I
Sure..here is what I am trying to do with some code snippets (and comments):
//
//..using hardcoded values in a list works (shown below)
//
tblIncludeStates = Table.SelectRows(tblFromDownload, each List.Contains({543,95,96,1359,1360,1104,1170,1172,93,1248,454,1361,92,97,-4,-3,-5,-7,-8,-2}, [CodeValueField])),
//
//..supplying a list (either by constructing it, transforming or using a different built-in function)
//does not (produces an empty table result), making me wonder is there something special about "List.Contains" I am missing...
//..below "ValueList" is a list of the same values that is 20 items long and "CodeValueField" is a field
//in a table that has the values I want to filter the table on...
//
tblIncludeStates = Table.SelectRows(tblFromDownload, each List.Contains(ValueList,[CodeValueField])),