Power BI中如何利用字段参数实现动态空值过滤的计算列?
解决Power BI字段参数切换时动态过滤空值的问题
问题原因
你写的Time Slicer Flag2无效,是因为MAX('Time Slicer'[Time Slicer Fields])获取的是字段参数的字段引用/显示名称,而非实际数据列中的值。ISBLANK判断的是这个引用是否为空,而不是对应日期列的空值,所以所有结果都返回1。
正确解决方案
用SELECTEDVALUE获取当前选中的字段参数选项,再通过SWITCH匹配对应的日期列,判断空值生成动态标志:
Time Slicer Flag = VAR SelectedField = SELECTEDVALUE('Time Slicer'[Time Slicer Fields]) RETURN SWITCH( TRUE(), SelectedField = "Year", IF(ISBLANK('Dates'[Year]), 0, 1), SelectedField = "Quarter", IF(ISBLANK('Dates'[Quarter]), 0, 1), SelectedField = "Month", IF(ISBLANK('Dates'[Month]), 0, 1), // 按你的字段参数选项,继续添加其他时间列的判断 1 // 无选中项时的默认值 )
使用步骤
- 把上述DAX创建的
Time Slicer Flag列添加到视觉对象的筛选器中 - 设置筛选条件为
Time Slicer Flag = 1 - 切换字段参数的时间选项时,筛选会自动适配当前选中的列,过滤掉对应列的空值
注意事项
SelectedField = "Year"中的字符串要和字段参数里的显示名称完全一致,如果你的字段参数显示名和列名不同,要改成对应的显示文本- 如果字段参数允许多选,需要调整逻辑(比如用
CONTAINSROW判断选中项),但单选中上述代码足够使用
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

