PowerBI:从单表生成对比两表并计算差值的实现求助
PowerBI实现双Modell对比切片器及差值计算
1. 构建独立切片器维度表
因为需要两个互不影响的切片器,不能直接使用原表的Modell列,需创建两个独立的维度表:
- 新建表
Modell_Slicer1,DAX公式:Modell_Slicer1 = DISTINCT('原表'[Modell]) - 新建表
Modell_Slicer2,DAX公式:Modell_Slicer2 = DISTINCT('原表'[Modell])
2. 生成按Place拆分的对比表(Table1)
创建计算表,自动匹配所有Group、Place组合,计算选中两个Modell的COUNT差值:
Table1 = VAR SelMod1 = SELECTEDVALUE(Modell_Slicer1[Modell]) VAR SelMod2 = SELECTEDVALUE(Modell_Slicer2[Modell]) VAR AllGroups = DISTINCT('原表'[Group]) VAR AllPlaces = DISTINCT('原表'[Place]) VAR BaseCombination = CROSSJOIN(AllGroups, AllPlaces) RETURN ADDCOLUMNS( BaseCombination, "Modell1", SelMod1, "Modell2", SelMod2, "COUNT", COALESCE(CALCULATE(SUM('原表'[COUNT]), '原表'[Modell] = SelMod1), 0) - COALESCE(CALCULATE(SUM('原表'[COUNT]), '原表'[Modell] = SelMod2), 0) )
注:
COALESCE用于把无数据时的空值转为0,保证差值计算准确。
3. 生成按Group汇总的对比表(Table2)
创建计算表,按Group汇总两个Modell的COUNT总差值:
Table2 = VAR SelMod1 = SELECTEDVALUE(Modell_Slicer1[Modell]) VAR SelMod2 = SELECTEDVALUE(Modell_Slicer2[Modell]) VAR AllGroups = DISTINCT('原表'[Group]) RETURN ADDCOLUMNS( AllGroups, "Modell1", SelMod1, "Modell2", SelMod2, "COUNT", COALESCE(CALCULATE(SUM('原表'[COUNT]), '原表'[Modell] = SelMod1), 0) - COALESCE(CALCULATE(SUM('原表'[COUNT]), '原表'[Modell] = SelMod2), 0) )
4. 配置切片器
- 插入两个切片器,分别绑定
Modell_Slicer1[Modell]和Modell_Slicer2[Modell]字段 - 将Table1、Table2添加为表格可视化,即可实现选择不同Modell时自动更新差值
内容的提问来源于stack exchange,提问作者credenco
相关产品推荐
相关产品推荐

