Forum Discussion
Problem with field parameter and empty slicer
- 3 months ago
Hi PBI_VL , You cannot dynamically return a column directly from a measure, so use the disconnected table as the axis and then use TREATAS inside the measure to apply the correct column filter. For example, create a disconnected table that contains all category values from both columns, like:
AxisTable =
DISTINCT(
UNION(
SELECTCOLUMNS(Coverages, "Category", Coverages[AGE_CATEGORY]),
SELECTCOLUMNS(Coverages, "Category", Coverages[COVER_AGE_CATEGORY])
)
)Then use AxisTable[Category] on the Y axis and create a measure like:
ClientCount Dynamic =
VAR CoverSelected =
ISFILTERED(DimCover[Cover])
RETURN
IF(
CoverSelected,
CALCULATE(
[ClientCount],
TREATAS(VALUES(AxisTable[Category]), Coverages[COVER_AGE_CATEGORY])
),
CALCULATE(
[ClientCount],
TREATAS(VALUES(AxisTable[Category]), Coverages[AGE_CATEGORY])
)
)With this setup, when no Cover is selected the axis behaves like AGE_CATEGORY and when a Cover is selected it behaves like COVER_AGE_CATEGORY. You also avoid the unstable behaviour caused by the field parameter.
Hi PBI_VL
This is caused by the Field Parameter behavior rather than by the blank value in the Cover slicer. Microsoft states that when no field is selected in a Field Parameter slicer or filter, Power BI treats it as if all fields are selected. That explains why, after selecting a Cover and then clearing the slicer, the visual ends up showing categories from both AGE_CATEGORY and COVER_AGE_CATEGORY.
I would not try to solve this by adding a blank value to the Field Parameter table, because the parameter itself cannot interpret “no Cover selected” as “use Age only”.
If the required logic is strictly:
no Cover selected → group by AGE_CATEGORY
one Cover selected → group by COVER_AGE_CATEGORY
then a more robust design may be to avoid using a Field Parameter for this axis and instead use a disconnected category table together with a dynamic ClientCount measure that switches its calculation based on whether a Cover is selected.
This approach requires a different setup, but it gives full control over the fallback behavior instead of relying on the Field Parameter’s “no selection = all fields” behavior
If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly
What should I put in the disconnected category table?
I have a table Coverages
For example
clientid/covercd/age/age_category/cover_age_category
1 - Cover1 - 17 - 11-20 - 0-24
2 - Cover1 - 32 - 31-40 - 25-44
3 - Cover1 - 55 - 51-60 - 45-64
I have a table DimCover
For example
Cover1
Cover2
Cover3
I have the field parameter with a relationship between table DimCover and the field parameter.
The slicer is on DimCover.
When nothing is selected on the slicer I want to have the age_category in the Y as.
When a cover is selected on the slicer I want to have the cover_age_category in the Y as.