cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
marcusvmc
Frequent Visitor

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.

 

1 ACCEPTED SOLUTION
v-huizhn-msft
Microsoft
Microsoft

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.

MonthMonth
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 filterAdd measure [filter] as visual level filter
4. Finally, you will get expected result as follows. You can download the.pbix file for more details.

3.png4.PNG

 

Best Regards,
Angelia

View solution in original post

8 REPLIES 8
fabianbram
Advocate I
Advocate I

I think I might have find a possible solution. 

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

2. Create a Month table with all combination possible: 

Screenshot_2.png

 

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:

Screenshot_3.png

 

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

 

 

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

v-huizhn-msft
Microsoft
Microsoft

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.

MonthMonth
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 filterAdd measure [filter] as visual level filter
4. Finally, you will get expected result as follows. You can download the.pbix file for more details.

3.png4.PNG

 

Best Regards,
Angelia

View solution in original post

@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 

Anonymous
Not applicable

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

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

fabianbram
Advocate I
Advocate I

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.

Zubair_Muhammad
Community Champion
Community Champion

Hi @marcusvmc

 

One way is to unpivot the months then use a slicer from the unpivoted months columns

Regards,
Zubair


Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

March Update

Check it Out!

Click here to read more about the March 2021 Updates!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.

secondImage

Experience what’s next for Power BI

See the latest Power BI innovations, updates, and demos from the Microsoft Business Applications Launch Event.