Forum Discussion

marcusvmc's avatar
marcusvmc
Frequent Visitor
8 years ago
Solved

Filter table based on two columns

Hi everyone,

 

I have a huge table which is simplified below.

I need to select a month in a slicer and filter 2 columns in that table, meaning that the filtered table needs to contain entries with at least one month (Month 1 or Month 2) as selected in the slicer.

The problem is, the same entry can have two months associated with it.

 

OrderStatus 1Month 1Status 2Month 2
1Open11Closed11
2Closed10Open10
3Pendent9Open10
4Open4Pendent9
5Open7Open7

 

Example: If I select Month 10 in the slicer I should get:

 

OrderStatus 1Month 1Status 2Month 2
2Closed10Open10
3Pendent9Open10

 

Any thoughts?

 

Thank you in advance.

 

  • Hi marcusvmc,

    Please follow the steps below and get expected result. I named your sample table as 'Test1'

    1. Create a new table including unique month value by type the formula.

    Month =
    DISTINCT (
        UNION (
            SELECTCOLUMNS ( Test1, "Month", Test1[Month 1] ),
            SELECTCOLUMNS ( Test1, "Month", Test1[Month 2] )
        )
    )
    


    You will get the Month table, please note don't create relationship betweem the Month table and your fact table.

    Month
    2. Create two measures to get Month1, Month2 columns using the formulas.

    Month1 = CALCULATE(VALUES(Test1[Month 1]),FILTER(Test1,Test1[Month 1]=SELECTEDVALUE('Month'[Month])))
    
    Month2 = CALCULATE(VALUES(Test1[Month 2]),FILTER(Test1,Test1[Month 2]=SELECTEDVALUE('Month'[Month])))


    3. Create a table visual to display all rows including selected month in Month1, Month2. Create a measure to filter the table, add it as visual level filter, please see the screenshot shown.

    Filter = IF(Test1[Month1]||Test1[Month2],1,0)

    Add measure [filter] as visual level filter
    4. Finally, you will get expected result as follows. You can download the.pbix file for more details.

     

    Best Regards,
    Angelia

8 Replies

  • v-huizhn-msft's avatar
    v-huizhn-msft
    Microsoft Employee

    Hi marcusvmc,

    Please follow the steps below and get expected result. I named your sample table as 'Test1'

    1. Create a new table including unique month value by type the formula.

    Month =
    DISTINCT (
        UNION (
            SELECTCOLUMNS ( Test1, "Month", Test1[Month 1] ),
            SELECTCOLUMNS ( Test1, "Month", Test1[Month 2] )
        )
    )
    


    You will get the Month table, please note don't create relationship betweem the Month table and your fact table.

    Month
    2. Create two measures to get Month1, Month2 columns using the formulas.

    Month1 = CALCULATE(VALUES(Test1[Month 1]),FILTER(Test1,Test1[Month 1]=SELECTEDVALUE('Month'[Month])))
    
    Month2 = CALCULATE(VALUES(Test1[Month 2]),FILTER(Test1,Test1[Month 2]=SELECTEDVALUE('Month'[Month])))


    3. Create a table visual to display all rows including selected month in Month1, Month2. Create a measure to filter the table, add it as visual level filter, please see the screenshot shown.

    Filter = IF(Test1[Month1]||Test1[Month2],1,0)

    Add measure [filter] as visual level filter
    4. Finally, you will get expected result as follows. You can download the.pbix file for more details.

     

    Best Regards,
    Angelia

    • myou's avatar
      myou
      Helper II

      How can I do multiple multiple selections in the slicer and view the result??

    • Anonymous's avatar
      Anonymous
      Not applicable

      What If I want to select multiple columns and see the intersect of the selected columns?

    • Anonymous's avatar
      Anonymous
      Not applicable

      v-huizhn-msft Can this be done on multiple values too?

      For example - I would like to get all rows that contain 9 OR 10 

  • I think your only option here is to create two dimensions for months and connect them to the months columns. But with this solution you would have to select the same month twice in the slicers.

  • I think I might have find a possible solution. 

    1. Create a calculated column that concatenates Month1 and Month2:

    2. Create a Month table with all combination possible: 

     

    note that I only included the concatenation 1010 once and offcourse you will have to this 12 times because I only did for october.

     

    3. Connect the table with the month table using the concatenation key:

     

    4. Use the second column from the Month table as slicer:

     

     

    • marcusvmc's avatar
      marcusvmc
      Frequent Visitor

      Thank you for your reply, however, it doesn't work when you input all the possibilities, there are intersections...