Forum Discussion
Conditional Filtering
I'm trying to filter a page (or something I can apply to every viz).
The general structure of my two tables are:
| P Dollars | ||
| Customer | Prod GP | Out |
| abc | Com | 35 |
| bac | Dev | 10 |
| cba | Serv | 20 |
| DD | Com | 7 |
| R Dollars | ||
| Customer | Prod GP | In |
| abc | Com | 5 |
| bac | Dev | 35 |
| cba | Serv | 0 |
| DDD | Com | 15 |
I've combined the data into a matrix where I have made the following viz
| Viz | |||
| Customer | Prod GP | In | Out |
| abc | Com | 5 | 35 |
| bac | Dev | 35 | 10 |
| cba | Serv | 0 | 20 |
| DDD | Com | 15 | 7 |
The Filter I'm trying to apply to is:
1. if Prod GP = Serv, then show all rows where In OR Out are greater than or equal to 15
2. If Prod GP <> Serv, then show all rows where In OR Out are greater than or equal to 35
Applying this filter would keep 3 rows of data and remove the row for CUST DDD (the row that is in Bold/Italics/Underlined).
I've tried a couple if statements/calculates and gave filter a try, but I'm not familiar enough with them to get this to work.
Any help would be great appreciated,
Jason
Keep Row = var selectedProdGP = SELECTEDVALUE('Table'[Prod GP]) var selectedIn = SELECTEDVALUE('Table'[In]) var selectedOut = SELECTEDVALUE('Table'[Out]) return INT( (selectedProdGP = "Serv" && (selectedIn >= 15 || selectedOut >= 15)) || (selectedProdGP <> "Serv" && (selectedIn >= 35 || selectedOut >= 35)) )The above is the measure that I came up with - you can place that measure in the filters pane and either keep those that are Keep Row = 1.
1 Reply
- vicky_
Super User
Keep Row = var selectedProdGP = SELECTEDVALUE('Table'[Prod GP]) var selectedIn = SELECTEDVALUE('Table'[In]) var selectedOut = SELECTEDVALUE('Table'[Out]) return INT( (selectedProdGP = "Serv" && (selectedIn >= 15 || selectedOut >= 15)) || (selectedProdGP <> "Serv" && (selectedIn >= 35 || selectedOut >= 35)) )The above is the measure that I came up with - you can place that measure in the filters pane and either keep those that are Keep Row = 1.