Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

FILTER function with a List as filter condition

Hello everyone!

 

I have a customer who does a lot of different filterings, i.e. for Article groups and subgroups, location groups and subgroups, including changing overlap and changing groups. To have one measure to sum them up, I thought I would work with a variable list in the filters, like this:

msrQuantity =

VAR
    ItemList = "12345, 54321"

RETURN
    CALCULATE(
        SUM(InventoryData[QTY]),
        FILTER(
        InventoryData,
        InventoryData[ItemNumber] IN {ItemList}
        )
    )

 

Ultimately, the ItemList would be a CONCATENATEX-Function, and there will be additional conditions added.

 

The function only returns data if the list is a single value (i.e. were it only "12345", I get the right item. I also tried putting them further into brackets like "{12345}, {54321}", but that doesn't change the table, either.

 

Is this possible, or are there better ways to achieve this?

  • tamerj1's avatar
    tamerj1
    4 years ago

    Anonymous 

    Simply

     

    VAR ItemList = VALUES(dimProduct[ItemNumber)

     

6 Replies

  • tamerj1's avatar
    tamerj1
    Community Champion

    Hi Anonymous 
    lease use

    msrQuantity =
    VAR ItemList = { "12345", "54321" }
    RETURN
        CALCULATE (
            SUM ( InventoryData[QTY] ),
            FILTER ( InventoryData, InventoryData[ItemNumber] IN ItemList )
        )
    • Anonymous's avatar
      Anonymous
      Not applicable

      Thank you! I'm feeling really stupid right now, I saw that a minute after I made this post. Do you have any idea how I would automatically generate such a ItemList-String variably, though? I.e. using a CONCATENATEX?

      • tamerj1's avatar
        tamerj1
        Community Champion

        Anonymous 
        Generate it out of what? What is the input? Also CNCATENATEX won't help you, you need a table not a scallar concatenated string value

  • Anonymous's avatar
    Anonymous
    Not applicable

    Just a second after I post this question I see I formatted the list wrong, each value needs to be in quotation marks, and not the whole string, like {"12345", "54321"}. The filter condition works that way, too. But then the question is how can I build such a list string i.e. using CONCATENATEX?