如何用单个年月切片器独立过滤Power BI多日期列
解决方案:用独立日期维度表+DAX实现全局年月筛选
要实现单个年份/月份切片器同时过滤多个日期列,核心思路是脱离原生表关系,用DAX度量值判断工单是否满足任意日期列落在所选年月范围内,具体步骤如下:
1. 创建独立日期维度表
首先生成一个不含业务数据的纯日期表,作为全局切片器的数据源(不要和工单表的任何日期列建立关系):
日期维度表 = ADDCOLUMNS ( CALENDAR ( DATE(2020, 1, 1), TODAY() ), // 按需调整日期范围 "年份", YEAR([Date]), "月份", MONTH([Date]), "年月", FORMAT([Date], "YYYY-MM") // 可选,用于年月组合切片 )
将该表的「年份」「月份」字段拖到页面,作为全局筛选切片器。
2. 编写筛选判断度量值
创建度量值,判断每一行工单是否存在任意一个日期列(开单/关单/重开)落在所选年月:
是否符合日期筛选 = VAR 选中年份 = SELECTEDVALUE('日期维度表'[年份]) VAR 选中月份 = SELECTEDVALUE('日期维度表'[月份]) VAR 当前开单日期 = MAX('工单表'[Open Date]) VAR 当前关单日期 = MAX('工单表'[Close Date]) VAR 当前重开日期 = MAX('工单表'[Reopen Date]) RETURN OR( // 开单日期匹配 AND(YEAR(当前开单日期)=选中年份, MONTH(当前开单日期)=选中月份), // 关单日期匹配(处理空值) AND(NOT(ISBLANK(当前关单日期)), YEAR(当前关单日期)=选中年份, MONTH(当前关单日期)=选中月份), // 重开日期匹配(处理空值) AND(NOT(ISBLANK(当前重开日期)), YEAR(当前重开日期)=选中年份, MONTH(当前重开日期)=选中月份) )
将这个度量值添加到可视化组件的「筛选器」面板,设置为等于1,即可只显示满足条件的工单。
3. 针对SLA统计的扩展(可选)
如果需要分别统计所选年月内的开单、关单、重开数量,可单独编写度量值:
所选年月开单量 = VAR 选中年份 = SELECTEDVALUE('日期维度表'[年份]) VAR 选中月份 = SELECTEDVALUE('日期维度表'[月份]) RETURN CALCULATE( COUNT('工单表'[Open Date]), YEAR('工单表'[Open Date])=选中年份, MONTH('工单表'[Open Date])=选中月份 )
同理编写「所选年月关单量」「所选年月重开量」,这些度量值会自动响应全局日期切片器的筛选。
内容的提问来源于stack exchange,提问作者Serge Inácio
相关产品推荐
相关产品推荐

