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

PowerBI Desktop中使用切片器时DAX按月份distinct count的问题

解决DAX中时间段内各月唯一值计数总和的问题

要实现所选时间段内各月份唯一ID计数的总和,而非整个时间段的全局唯一ID总数,你可以使用迭代函数结合分组计算的DAX公式,以下是两种可行方案:

方案一:使用SUMMARIZE + SUMX

COUNT_ID_SUM = SUMX(
    SUMMARIZE(
        'ID',
        'ID'[Month],
        "MonthlyDistinct", DISTINCTCOUNT('ID'[DATA])
    ),
    [MonthlyDistinct]
)

逻辑说明

  1. SUMMARIZE 函数按 Month 列对数据分组,为每个月份计算对应的唯一ID数量(DISTINCTCOUNT('ID'[DATA])),生成包含月份和当月唯一值计数的中间表。
  2. SUMX 迭代这个中间表,将所有月份的唯一值计数相加,得到最终总和。

方案二:使用GROUPBY + SUMX

如果习惯用GROUPBY,也可以用以下公式:

COUNT_ID_SUM = SUMX(
    GROUPBY(
        'ID',
        'ID'[Month],
        "MonthlyDistinct", CALCULATE(DISTINCTCOUNT('ID'[DATA]))
    ),
    [MonthlyDistinct]
)

效果验证

以你提到的场景为例:

  • 选择202207时,公式返回该月的唯一ID数2;
  • 选择202208时返回3;
  • 同时选择两个月份时,会先分别计算每个月的唯一值,再求和得到5,完全符合需求。

为什么原公式不生效?

原公式 COUNT_ID = DISTINCTCOUNT('ID'[DATA]) 是在整个筛选时间段的上下文中计算全局唯一ID数,会自动跨月份去重,因此得到的是时间段内不重复的ID总数,而非各月计数的累加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:05:14