Power BI 按独立日期筛选实现两汇总表的数值相减
Power BI 独立双维度汇总与差值计算实现方案
需求背景
- 原始数据集包含
Date(日期)、Band(金额区间)、Colour(颜色)、Amount(金额)四个字段,需基于该数据集完成三类输出:- 按Band、Colour维度分组求和的汇总表1,支持独立设置日期筛选
- 同维度结构的汇总表2,支持独立设置日期筛选,与表1的筛选条件互不影响
- 同维度的差值表,自动匹配Band、Colour维度,计算两个汇总表的对应金额差额
- 测试场景参考:无日期筛选时展示全量汇总结果;当表1筛选为
01/01/2020、表2筛选为02/01/2020时,差值表自动输出对应维度的计算结果
实现步骤
1. 构建独立筛选辅助表
Power BI默认切片器会联动所有同数据源视觉对象,要实现独立筛选需要生成无关联的日期辅助表:
- 提取原始事实表中所有不重复的Date值,生成第一个辅助表,命名为
SliceDate1 - 再次提取原始事实表中所有不重复的Date值,生成第二个辅助表,命名为
SliceDate2 - 注意:两个辅助表不要与原始事实表建立任何模型关系,完全独立即可
2. 编写独立计算度量值
利用TREATAS函数实现无关系表的筛选上下文传导,让两个切片器分别控制对应表的汇总计算:
// 表1汇总金额,受SliceDate1的切片器控制 表1汇总金额 = CALCULATE( SUM('原始事实表'[Amount]), TREATAS(VALUES('SliceDate1'[Date]), '原始事实表'[Date]) )
// 表2汇总金额,受SliceDate2的切片器控制 表2汇总金额 = CALCULATE( SUM('原始事实表'[Amount]), TREATAS(VALUES('SliceDate2'[Date]), '原始事实表'[Date]) )
3. 编写差值计算度量值
直接基于两个独立汇总度量值计算差额,会自动继承当前视觉对象的Band、Colour维度上下文,实现同维度匹配:
// 同维度汇总值差值(表1值 - 表2值) 汇总值差值 = [表1汇总金额] - [表2汇总金额]
4. 搭建视觉对象
- 表1视觉对象:将Band、Colour拖入行字段,将
表1汇总金额拖入值字段;搭配独立切片器,字段选择SliceDate1的Date列,该切片器仅控制表1的计算范围 - 表2视觉对象:将Band、Colour拖入行字段,将
表2汇总金额拖入值字段;搭配独立切片器,字段选择SliceDate2的Date列,该切片器仅控制表2的计算范围 - 差值表视觉对象:将Band、Colour拖入行字段,将
汇总值差值拖入值字段,会自动根据两个切片器的当前筛选状态计算维度差额
优化提示:如果希望两个汇总表的维度行完全固定,不会因日期筛选导致某类Band/Colour组合缺失,可以额外提取所有不重复的Band、Colour组合生成独立维度表,与原始事实表建立一对多关系;搭建视觉对象时使用该维度表的Band、Colour字段,无匹配值时会自动显示为0,行维度不会随筛选变化。
内容的提问来源于stack exchange,提问作者JonWay
相关产品推荐
相关产品推荐

