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

在Power BI中使用DAX公式基于两表创建差异列与差异表

使用DAX创建包含两表Count列差值的Table 3

假设Table 1和Table 2拥有共同的分组/匹配列(例如Category),用于对齐两行的Count数值。以下是两种常用的DAX实现方案:

方案1:兼容无关联表,覆盖所有分组项

适用于两表未建立关系,或需要包含两表所有唯一分组项的场景:

Table 3 = 
VAR AllUniqueGroups = 
    UNION(
        DISTINCT('Table 1'[Category]),
        DISTINCT('Table 2'[Category])
    )
RETURN
    ADDCOLUMNS(
        AllUniqueGroups,
        "Table1_Count", COALESCE(CALCULATE(COUNT('Table 1'[Count]), 'Table 1'[Category] = EARLIER([Category])), 0),
        "Table2_Count", COALESCE(CALCULATE(COUNT('Table 2'[Count]), 'Table 2'[Category] = EARLIER([Category])), 0),
        "Count_Difference", 
            COALESCE(CALCULATE(COUNT('Table 1'[Count]), 'Table 1'[Category] = EARLIER([Category])), 0) - 
            COALESCE(CALCULATE(COUNT('Table 2'[Count]), 'Table 2'[Category] = EARLIER([Category])), 0)
    )
  • AllUniqueGroups:合并两表的所有唯一分组值,避免遗漏任何一方的项
  • COALESCE:处理某分组仅存在于其中一张表的情况,将缺失的Count值视为0
  • Count_Difference:直接计算两表Count值的差值(Table1 - Table2)

方案2:基于已建立关系的简化写法

如果两表已通过匹配列建立一对一/一对多关系,可以使用更简洁的公式:

Table 3 = 
ADDCOLUMNS(
    'Table 1',
    "Table2_Count", COALESCE(RELATED('Table 2'[Count]), 0),
    "Count_Difference", 'Table 1'[Count] - COALESCE(RELATED('Table 2'[Count]), 0)
)
  • RELATED:通过已建立的关系,直接获取Table2中对应行的Count值
  • COALESCE:处理Table1行无对应Table2行的情况,避免出现空值错误

内容的提问来源于stack exchange,提问作者Freaky_foxx

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:08:22