You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 03:10:07