Power BI Desktop(非高级版):如何限制切片器仅显示事实表存在的日期?
解决方法
方法1:创建仅包含事实表存在日期的日历表
自动生成的日历表会覆盖完整日期范围,导致切片器显示多余选项。你可以用DAX新建一个只关联Tbl_Import实际存在日期的日历表:
- 打开Power BI Desktop的「建模」选项卡,点击「新建表」
- 输入以下DAX公式(替换「日期列」为Tbl_Import里的实际日期字段名):
筛选后日历表 = CALENDAR( MIN(Tbl_Import[日期列]), MAX(Tbl_Import[日期列]) )
- 给新日历表添加月份层级(按月份筛选时用):新建列,输入:
月份 = FORMAT([Date], "YYYY-MM")
- 删除原自动日历表与Tbl_Import的关联,把新日历表和Tbl_Import的日期字段重新建立关系
- 用新日历表的日期或月份字段做切片器,只会显示事实表中存在的日期/月份选项
方法2:筛选现有自动日历表(无需新建表)
如果不想重建表,直接给自动日历表加筛选标记:
- 切换到「数据」视图,找到自动生成的日历表(通常叫DateTable或Calendar)
- 点击「建模」→「新建列」,输入DAX公式标记有数据的日期:
是否存在 = IF( [Date] IN VALUES(Tbl_Import[日期列]), "是", "否" )
- 回到「报表」视图,选中切片器,在「可视化」面板的「筛选器」里添加「是否存在」字段,筛选值选「是」
- 切片器就只会显示事实表中存在的日期对应的选项
方法3:直接用事实表字段做切片器
如果不需要日历表的年/月/日钻取功能,直接用Tbl_Import的日期字段做切片器,默认只会显示实际存在的日期。要是需要按月份筛选,先在Tbl_Import里新建月份列:
月份 = FORMAT([日期列], "YYYY-MM")
再用这个月份列做切片器,也能只显示有数据的月份
内容的提问来源于stack exchange,提问作者Tralala
相关产品推荐
相关产品推荐

