报表中ALL()与REMOVEFILTERS()函数无法正常工作问题求助
Power BI 终身收入计算问题解决方案
问题背景
自定义日期切片器表包含「昨日、过去7天、上月同日、全部、自定义」选项,因存在重复日期,与主收入表设置为双向交叉筛选关系。使用以下DAX计算终身收入时,选择「全部」以外的选项,结果数值不正确:
Revenue_Lifetime = CALCULATE( SUM(Revenue[Revenue]), ALL('Date Periods'[Date],'Date Periods'[Type]) )
解决方法
方法1:清除整个切片器表的筛选
修改DAX为:
Revenue_Lifetime = CALCULATE( SUM(Revenue[Revenue]), ALL('Date Periods') )
双向筛选场景下,仅清除切片器表的部分列筛选可能残留隐性筛选,清除整个表的筛选可彻底切断切片器对计算范围的限制。
方法2:使用REMOVEFILTERS替代ALL
改用更直观的REMOVEFILTERS函数移除切片器表的所有筛选:
Revenue_Lifetime = CALCULATE( SUM(Revenue[Revenue]), REMOVEFILTERS('Date Periods') )
REMOVEFILTERS专门用于清除指定对象的筛选,在双向筛选场景下表现更稳定。
方法3:调整关系为单向(业务允许时)
若切片器无需反向筛选主收入表,可将表间关系的交叉筛选方向改为单向,此时原DAX也可正常生效,但需确认业务逻辑不受影响。
内容的提问来源于stack exchange,提问作者Veli K
相关产品推荐
相关产品推荐

