One of our clients recently asked us to find a better solution for forcing users to select a filter value.
They had this:
The first problem here is that the customer used ISFILTERED instead of HASONEVALUE. None of their users should be allowed to select multiple values, with ISFILTERED this is possible though.
Secondly, this solution which is found a lot on Power BI blogs and community posts has one huge downside: You have to put the message (it is a visual itself) on top of your other visuals, so the text disappears only because it is transparent and not actually gone.
This means that your visuals will not be interactive anymore because this empty visual still sits on top of your report.
If you have a table or something where users never click anything, this might work for you, I wanted to keep interactivity though.
My solution was to actually make the visuals transparent instead of the text box.
So I am using HASONEVALUE and I put the 'transparency condition' in the visual measure itself.
This solution also has one downside, as long as the user does not make a correct selection, the axis labels and titles are still visible on the canvas.
But my visuals are interactive and that is more important!
Here is the DAX code for my solution:
Warning = IF( HASONEVALUE('Table'[column]), "", "Please make sure you have selected one value in the filter" )
SUM = IF ( HASONEVALUE ( 'Table'[column] ), SUM ( 'Table'[column] ), "#FFFFFF00" )
The hex code #FFFFFF00 makes something transparent white.
If you have been dealing with issues like this, feel free to comment.