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

DAX中按商品编号分组计算销售数量平均值的列创建需求

DAX计算列:按商品编号分组求销售数量平均值

要实现按商品编号分组计算销售数量的平均值,你不需要用GROUP BY(它是用于创建汇总表的函数,不适合直接编写计算列),正确的做法是利用DAX的上下文筛选功能,结合CALCULATE和AVERAGE来实现。

方法1:使用ALLEXCEPT(推荐,写法简洁)

假设你的数据表名为Sales,包含列[商品编号]和[销售数量],创建计算列的DAX公式如下:

商品平均销量 = CALCULATE(
    AVERAGE(Sales[销售数量]),
    ALLEXCEPT(Sales, Sales[商品编号])
)

ALLEXCEPT会移除除了[商品编号]之外的所有筛选上下文,确保计算的是当前商品所有周的销售数量平均值。

方法2:使用FILTER + EARLIER(手动筛选当前商品的所有行)

如果更习惯手动筛选逻辑,也可以用这个写法:

商品平均销量 = CALCULATE(
    AVERAGE(Sales[销售数量]),
    FILTER(ALL(Sales), Sales[商品编号] = EARLIER(Sales[商品编号]))
)

EARLIER用于引用当前行的[商品编号]值,FILTER(ALL(Sales))会遍历整个表,筛选出和当前行商品编号一致的所有记录,再计算平均值。

注意事项

  • 确保[销售数量]是数值类型,如果存在文本格式的值,AVERAGE函数会返回错误;空值会被自动忽略,不影响计算。
  • 如果你的表中有其他筛选列(比如年份、区域),但你需要的是该商品所有历史周的平均值,上面的公式已经能满足需求,因为ALLEXCEPT/ALL会移除其他无关筛选。

内容的提问来源于stack exchange,提问作者Sara Zegna Baruffa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 03:00:56