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

Google Sheets中按A列唯一性计算B列平均值并显示在C列

解决Google Sheets按唯一值计算对应列平均值的问题

你可以通过在AVERAGE()中嵌套FILTER()函数来完善公式,最终可用公式如下:

=BYROW(UNIQUE(A2:A), LAMBDA(a, AVERAGE(FILTER(B2:B, A2:A=a))))

公式拆解:

  • UNIQUE(A2:A):提取A列的所有唯一值,生成一个待遍历的列表
  • BYROW(..., LAMBDA(a, ...)):逐个遍历唯一值列表中的每个值,将当前遍历到的值命名为a
  • FILTER(B2:B, A2:A=a):筛选出A列中等于当前值a的所有对应B列数据
  • AVERAGE(...):计算筛选出的B列数据的平均值

额外优化(可选):

如果A列存在空值,UNIQUE()会把空值也纳入计算,你可以先通过FILTER()排除空值:

=BYROW(UNIQUE(FILTER(A2:A, A2:A<>"")), LAMBDA(a, AVERAGE(FILTER(B2:B, A2:A=a))))

替代方案:用QUERY函数更简洁

如果不需要严格遵循BYROW+UNIQUE的思路,也可以用QUERY函数直接完成分组计算:

=QUERY(A2:B, "select A, avg(B) where A is not null group by A label avg(B) ''", 0)

这个公式会直接输出两列:第一列是A列的唯一值,第二列是对应B列的平均值,适合一次性生成结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 03:59:54