Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
10 years ago
Solved

Use filter to exclude

Is there a way use a filter to exclude rows?

 

Example: on selecting "productA" in a filter, i get all products EXCEPT "productA"

 

Can we create a measure to return  a list or table where the selected value is removed?

  • Anonymous  You need to add to the table an index row. If you don't have, create an index in query mode when you load the table.

     

    On the visual table just add the index column, make sure the defaut calculation for index  is 'Do not summarise' on the values as usually will show sum 

  • Hi Anonymous,

     

    In addition, with the help of the Query Parameter, you can also achieve your requirement. When you run the report, you can change prefer parameter value to filter corresponding data rows, instead of setting any report filter or slicer.

     

    In your scenario, you can create a query parameter and list all products. Then set the filter with "does not equal" in Query Editor

    like below:

     

     

    For more information, you can take a look at this article: Deep Dive into Query Parameters and Power BI Templates.

     

    If you have any question, please feel free to ask.

     

    Best Regards,
    Qiuyun Yu

13 Replies

  • jahida's avatar
    jahida
    Impactful Individual

    Hey,

     

    There is a way to do it, but it's not trivial. Measures can't return lists or tables, they have to evaluate to values, so the measure you described isn't possible. You can write measures to do aggregations based on NOT "productA". Here's an example:

     

    CountSomethingMeasure =
    SUMX(SUMMARIZE(Table, Table[Product]), COUNTROWS(FILTER(CALCULATETABLE(Table, ALLEXCEPT(Table, Table[SomeOtherFilter])), Table[Product] <> EARLIER(Table[Product])))) / IF(DISTINCTCOUNT(Table[Product]) = CALCULATE(DISTINCTCOUNT(Table[Product]), ALL(Table[Product])), MAX(DISTINCTCOUNT(Table[Product]) - 1, 1), 1)

     

    SomeOtherFilter is there just to show how you could possibly keep other filters that are applied eg. if you want to filter by Location and by not product, you could change [SomeOtherFilter] to [Location].

    That would give you the number of rows in a Table that are not associated with the selected product. If nothing is selected, it would give the total number of rows. It does not support selecting more than one product to omit (let me know if that functionality is important and I can give it a shot).

    • konstantinos's avatar
      konstantinos
      Memorable Member

      jahida Anonymous   Really interesting..I was trying to test EXCEPT() for a long time & now is the time..

       

      I create a table 'Sales' 

       

      ProductAmount

      A5
      A5
      A5
      B5
      B5
      B5
      C5
      C5

       

       

      a table 'Products'

       

      Product

      A
      B
      C

       

       

      Then create the relantionship ( one way ) and the formula

       

      Sales = CALCULATE(SUM(Sales[Amount]);EXCEPT(ALL(Products);Products))

       

      Result :  

       

       

       

      * You need to use the column from sales table, else if use the column from Product it gives you the correct sum but shows the selected product.

      • jahida's avatar
        jahida
        Impactful Individual

        Much better than my solution, well done.

  • Anonymous's avatar
    Anonymous
    Not applicable

    there is a new function in powerbi.

    but you have to create the table using the visual "Matrix"

    when you right click on a row you would like to exclude, there should be an "exclude" on the pop up menu.