Forum Discussion
Slicer AND logic
Hi,
I have a dataset like below (example):
On the dashboard I want to have two identical tables that will be filtered with one slicer ('Skill' column used) with several options to choose from. Table 1 should have an additional filter 'Priority = 3', Table 2 should filter 'Priority = 2'.
What I want to achieve:
(1) when the slicer doesn't have any options selected, both tables should be empty;
(2) possibility to choose several skills in the slicer;
(3) when I choose one skill in the slicer, the tables should show all rows from the dataset for positions with this skill and, depending on the table - with a priority of 3 or 2;
(4) when adding each subsequent skill in the slicer, the table should show records only for those positions that have only the selected skills and, depending on the table, priority 3 or 2.
I would be very grateful if someone could help me with this. If it is not clear, please ask additional questions, I will try to explain.
See if this works for you.
First, the model:
Then create a measure to use in the filter pane of the table/matrix:
Filter measure = VAR skills = CALCULATE(COUNTROWS(ALLSELECTED('DIM Skill'[Skill]))) VAR Position = SUMX( SUMMARIZE('Fact Table', 'Dim Position'[Position], 'DIM Skill'[Skill], 'Dim Priority'[Priority]), CALCULATE(DISTINCTCOUNT('Fact Table'[Skill]), ALLEXCEPT('Fact Table', 'Dim Position'[Position], 'Dim Priority'[Priority]))) RETURN IF(skills = 1, 1, IF(skills = Position, 1))And you get this result:
I've included the sample PBIX for your reference
9 Replies
- PaulDBrown
Community Champion
See if this works for you.
First, the model:
Then create a measure to use in the filter pane of the table/matrix:
Filter measure = VAR skills = CALCULATE(COUNTROWS(ALLSELECTED('DIM Skill'[Skill]))) VAR Position = SUMX( SUMMARIZE('Fact Table', 'Dim Position'[Position], 'DIM Skill'[Skill], 'Dim Priority'[Priority]), CALCULATE(DISTINCTCOUNT('Fact Table'[Skill]), ALLEXCEPT('Fact Table', 'Dim Position'[Position], 'Dim Priority'[Priority]))) RETURN IF(skills = 1, 1, IF(skills = Position, 1))And you get this result:
I've included the sample PBIX for your reference
- pawelk3
Helper I
@PaulDBrown, it is working like a charm. Thank you for the solution!
Big thanks also to Anonymous and dedelman_clng for your time and help.BR,
Pawel
- AnonymousNot applicable
hi pawelk3 - you can use a Skills slicer as required to filter your report based on Skills, you can enable multi select for the slicer as show below
For filtering Table 1 and Table 2 to display only priority 3 and 2 respectively you can apply visual level filters as shown in the below screenshot
Please mark the post as a solution and provide a 👍 if my comment helped with solving your issue. Thanks!
- pawelk3
Helper I
Anonymous, thank you for your answer.
I know that in case of priority I can apply a filter for a specific visual and I did that. I would like the lack of a selected option in the slicer to show only the table headers. Currently, the table shows all rows for the condition 'Priority = 3'.The second issue is to change the slicer logic from OR to AND. I probably did not explain my problem well enough. After selecting one skill from the slicer (Skill 1), the table should show all the rows that contain that skill (see below).
The problem I struggle with is choosing more than one skill in the slicer. After selecting two (Skill 1 and Skill 2), the table shows these rows:
but I wish it would show these:
Because only 'Position 3' has both of these skills with priority 3. I would like to achieve the same effect by selecting 3 skills and more at the same time. Is it somehow possible?
- AnonymousNot applicable
hi pawelk3 - I now get what you are looking to achieve with the slicers.
#1 Not selecting any values in the slicer is equivalent to "select all" and hence it shows all data - there is no default setting to hide data unless value is selected from the slicer.
You can try and implement this logic using the steps mentioned in the link below:
https://www.kasperonbi.com/show-values-in-a-chart-only-when-a-slicer-is-selected/
You can refer to the steps mentioned in the link below to setup the AND criteria on the slicer as you require - this would need to be done using DAX:
https://radacad.com/slicer-with-and-condition-in-power-bi
Please mark the post as a solution and provide a 👍 if my comment helped with solving your issue. Thanks!