Power BI中基于日期切片器计算固定天数(忽略模板数据日期)
解决Power BI中固定返回切片器日期区间天数的问题
问题分析
你当前的DAX公式使用MIN([sampled_date])和MAX([sampled_date])时,会受当前行上下文(比如单个Template的筛选范围)影响,计算的是每个Template自身对应的日期区间天数,而非切片器全局选中的日期区间。
正确DAX公式
要获取切片器选中的全局日期范围,需用ALLSELECTED函数忽略行级筛选,保留切片器的筛选上下文:
Days = VAR SelectedStart = CALCULATE(MIN('你的表名'[Sampled_date]), ALLSELECTED('你的表名'[Sampled_date])) VAR SelectedEnd = CALCULATE(MAX('你的表名'[Sampled_date]), ALLSELECTED('你的表名'[Sampled_date])) RETURN DATEDIFF(SelectedStart, SelectedEnd, DAY)
注意:将公式中的'你的表名'替换为实际表名称。
公式说明
ALLSELECTED('你的表名'[Sampled_date]):仅保留切片器对Sampled_date的筛选规则,忽略当前行(如Template)的筛选限制,确保获取的是切片器全局选中的最小、最大日期。CALCULATE配合ALLSELECTED,强制在切片器的全局筛选环境下计算日期极值,这样无论哪个Template,返回的都是切片器选中区间的天数(此处为99天)。
结果验证
当切片器选中2023年6月1日至2023年9月8日时,DATEDIFF(日期(2023,6,1), 日期(2023,9,8), DAY)的计算结果恰好是99,所有Template对应的行都会返回这个固定值。
内容的提问来源于stack exchange,提问作者Harsha Nagireddy
相关产品推荐
相关产品推荐

