Forum Discussion
[Question] Filtering columns in a matrix visual with DAX
- 1 year ago
Thank you! I managed to sort this out on my own. The issue was that one of the DAX commands should have been set to MIN instead of MAX—a silly mistake on my part, haha. Interestingly, I’m not sure why it worked when there were no fields in the rows. The corrected DAX formula is provided below:
year filter = VAR Selection = SELECTEDVALUE('Metrics'[Metrics]) VAR YearSelection = SELECTEDVALUE('Data release'[Year of data release]) VAR Mode = SELECTEDVALUE('STARTMODE'[Mode]) RETURN IF ( Selection = "A", IF ( Mode = "Part-time", IF ( MAX(YEAR[YEAR]) <= YearSelection - 4 && MIN(YEAR[YEAR]) >= YearSelection - 7, 1, 0 ), IF ( MAX(YEAR[YEAR]) <= YearSelection - 3 && MIN(YEAR[YEAR]) >= YearSelection - 6, 1, 0 ) ), IF ( Selection = "B", IF ( Mode = "Part-time", IF ( MAX(YEAR[YEAR]) <= YearSelection - 8 && MIN(YEAR[YEAR]) >= YearSelection - 11, 1, 0 ), IF ( MAX(YEAR[YEAR]) <= YearSelection - 6 && MIN(YEAR[YEAR]) >= YearSelection - 9, 1, 0 ) ), IF ( Selection = "C", IF ( MAX(YEAR[YEAR]) <= YearSelection - 3 && MIN(YEAR[YEAR]) >= YearSelection - 6, 1, 0 ) ) ) )
I unpivoted the data table to make it usable.
Please explain what the year filter is supposed to achieve.
Thank you! Here's what I'm aiming to achieve:
If Metric A is selected, the table should display YEAR ranging from BASEYEAR-3 to BASEYEAR-1.
If Metric B is selected, the table should display YEAR ranging from BASEYEAR-4 to BASEYEAR-2.
If Metric C is selected, the table should display YEAR ranging from BASEYEAR-5 to BASEYEAR-3.
The year filter works perfectly when I don’t include any rows in the matrix. However, it stops working when I add "SEX" as a row in the table.