It is an ennoying bug. Please vote here :
On the issue of what causes (Blank) values to appear in the first place, this definitely happens when a table on the many-side of a 1-to-many relationship contains values not present in the corresponding column of the table on the 1-side (with the slicer on a column from the table on the 1-side).
For example if my Sales table contains 2014, and is related to a Year table which doesn't contain 2014, then a (Blank) value is automatically inserted into the Year table (behind the scenes), to handle any values present in Sales but not present in Year.
Another way of thinking of it is the 'expanded' Sales table includes a Left Outer Join with the Year table, which results in (Blank) rows being generated where Sales contains a year that is not present in the Year table.
I'm not sure if this was causing the issue for the cases mentioned in this thread though...
Here's a dummy example showing one slicer with (Blank) from an 'incomplete' Year table, and one without (Blank) from a 'complete' Year table.
I have tried this work around and can not get it to work. I am using thetable visual and in the Visual Filter and turning off do not display balnk. Can you please give me some more details about how you are doing this work around. Thank you.
I was experiencing this same issue with a very simple table (Hour). The data source did not have any null values, nor did the table that had a relationship with the Hour table, but the Blank() would still show in the slicer.
The fix to this issue for my situation was to check the "Assume Referential Integrity" box from within the relationship between the two tables. This will make the relationship an "inner join" eliminating the Blank().