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

如何在Power BI中按国家(配送/账单国)计算Measure并正确汇总

现有Orders表
Order ID销售数量Price paid (USD)配送国家账单国家
10000002120United States
1000001110500CanadaUnited States
10000024400FranceCanada
1000003126250United StatesCanada
100000452150FranceFrance
已创建的DAX度量值
Value = SUM('Orders'[Price paid (USD)])
Volume = SUM('Orders'[销售数量])
Average Unit Price =
SUMX(
    'Orders',
    DIVIDE('Orders'[Price paid (USD)], 'Orders'[销售数量])
)
需求说明

目前可以将Orders[配送国家]或Orders[账单国家]放入Power BI矩阵的行区域,在对应筛选上下文下计算度量值。但需要实现按国家名称(无论来自配送国家还是账单国家列)汇总度量值,最终得到如下目标表:

目标汇总表

国家名称ValueVolume
Canada1715017
France25509
United States1687015

汇总规则

  • 包含两个不同国家的订单,需分别计入对应国家的行中;
  • 仅含一个国家(账单国家为空)或两国相同的订单,仅计入一次。
实现方案

第一步:创建独立的国家维度表

先生成一个包含所有唯一国家名称的维度表,用以下DAX表达式即可:

国家维度表 = 
DISTINCT(
    UNION(
        VALUES('Orders'[配送国家]),
        VALUES('Orders'[账单国家])
    )
)

如果账单国家存在空值,生成后可手动删除空行,也可以在表达式中直接过滤:FILTER(UNION(...), NOT ISBLANK([配送国家]))

第二步:改写度量值

原度量值仅支持单维度筛选,需要调整为适配配送/账单双国家匹配的逻辑:

汇总Value的度量

Value_按国家汇总 = 
SUMX(
    'Orders',
    VAR 当前配送国家 = 'Orders'[配送国家]
    VAR 当前账单国家 = 'Orders'[账单国家]
    VAR 当前筛选国家 = SELECTEDVALUE('国家维度表'[国家名称])
    RETURN
        // 账单为空的订单,仅当配送国家匹配时计入
        IF(ISBLANK(当前账单国家),
            IF(当前配送国家 = 当前筛选国家, 'Orders'[Price paid (USD)], 0),
            // 配送与账单国家相同的订单,匹配时仅计一次
            IF(当前配送国家 = 当前账单国家,
                IF(当前配送国家 = 当前筛选国家, 'Orders'[Price paid (USD)], 0),
                // 两国不同的订单,只要其中一个匹配就全额计入
                IF(当前配送国家 = 当前筛选国家 || 当前账单国家 = 当前筛选国家,
                    'Orders'[Price paid (USD)],
                    0
                )
            )
        )

汇总Volume的度量

Volume_按国家汇总 = 
SUMX(
    'Orders',
    VAR 当前配送国家 = 'Orders'[配送国家]
    VAR 当前账单国家 = 'Orders'[账单国家]
    VAR 当前筛选国家 = SELECTEDVALUE('国家维度表'[国家名称])
    RETURN
        IF(ISBLANK(当前账单国家),
            IF(当前配送国家 = 当前筛选国家, 'Orders'[销售数量], 0),
            IF(当前配送国家 = 当前账单国家,
                IF(当前配送国家 = 当前筛选国家, 'Orders'[销售数量], 0),
                IF(当前配送国家 = 当前筛选国家 || 当前账单国家 = 当前筛选国家,
                    'Orders'[销售数量],
                    0
                )
            )
        )

第三步:构建矩阵可视化

将国家维度表[国家名称]拖入矩阵的行区域,再添加改写后的Value_按国家汇总和Volume_按国家汇总度量值,即可得到目标汇总结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:04:54