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

Power BI中创建按国家统计品牌DISTINCT COUNT的度量值

在Power BI中按Country统计Brand的去重计数度量值

我来帮你搞定这个问题!你想要实现的是按Country维度统计不同Brand的数量,之前尝试的两种DAX写法确实没找对路子,我给你拆解下问题,再给出准确的解决方案:

先说说你之前写法的问题

  • 第一个度量值 Measure = COUNTX(DISTINCT(sourceTable),sourceTable[Brand]):这里的DISTINCT(sourceTable)会返回整个表的去重行记录,而不是当前Country筛选范围内的行,所以最终统计的是全表的Brand总数,而非单个Country下的去重数量。
  • 第二个写法用GROUPBY嵌套在CALCULATE里:这属于多此一举,而且GROUPBY在这里的用法不符合筛选上下文的逻辑,CALCULATE本身会自动响应外部的筛选(比如表格里的Country分组),不需要手动分组。

正确的度量值写法

最简洁且有效的写法直接用DISTINCTCOUNT函数即可,它会自动适配外部的筛选上下文:

Distinct Brand Count = DISTINCTCOUNT(SampleDataForDashboard[Brand])

为什么这个写法有效?

当你把Country字段放到表格的行区域,或者树形图的类别区域时,Power BI会自动为每个Country创建筛选上下文,DISTINCTCOUNT会在这个筛选范围内计算去重的Brand数量,正好得到你想要的结果:

  • C1对应的去重Brand是B1、B2、B3、B4,共4个
  • C2对应的去重Brand是B1、B5、B6、B3、B7、B8,共6个

进阶写法(确保仅按Country筛选)

如果你的报表中有其他筛选器,想要确保度量值只受Country字段影响,可以用ALLEXCEPT来明确控制筛选范围:

Distinct Brand Count (Explicit) = CALCULATE(
    DISTINCTCOUNT(SampleDataForDashboard[Brand]),
    ALLEXCEPT(SampleDataForDashboard, SampleDataForDashboard[Country])
)

ALLEXCEPT会移除除了Country之外的所有筛选条件,保证计算结果严格按Country维度统计。

如何嵌入到表格或树形图中

  • 表格:将Country拖到「行」区域,把上述度量值拖到「值」区域即可看到预期的统计结果。
  • 树形图:将Country拖到「类别」区域,度量值拖到「值」区域,就能直观展示每个Country对应的去重Brand数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:32:39