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

如何用AVERAGEIF函数按年份计算表格中pH值的平均值?

按年份计算pH平均值的解决方案

原公式错误分析

你的公式失败原因有两个:

  1. 范围/平均值区域选错:你用了Table1[[#Headers],[Date]]和Table1[[#Headers],[pH (total scale)]],这仅指向表头单元格,而非整个数据列。应该使用Table1[Date](整个日期数据列)和Table1[pH (total scale)](整个pH数据列)。
  2. 条件设置错误:日期列的单元格是完整日期(如2011/3/15),直接写2011无法匹配到任何单元格,必须先提取日期中的年份再进行判断。

可行解决方案

方案1:添加辅助列(最简单直观,适配所有Excel版本)

  • 在表格新增一列,命名为Year,输入公式=YEAR([@Date]),按回车后Excel会自动填充整列,提取每个日期对应的年份。
  • 然后使用AVERAGEIF计算对应年份的平均值,例如计算2011年的pH平均值:
    =AVERAGEIF(Table1[Year], 2011, Table1[pH (total scale)])
    
    把公式中的2011替换为其他年份(如2012、2013)即可快速得到对应结果。

方案2:用SUMPRODUCT直接计算(无需辅助列)

如果不想添加辅助列,可以用SUMPRODUCT一次性完成年份筛选和平均值计算,公式如下(以2011年为例):

=SUMPRODUCT(--(YEAR(Table1[Date])=2011), Table1[pH (total scale)])/SUMPRODUCT(--(YEAR(Table1[Date])=2011))
  • 原理:第一个SUMPRODUCT计算所有2011年的pH值总和,第二个统计2011年的有效数据行数,两者相除得到平均值。

方案3:用AVERAGEIFS(Excel 2010及以上版本)

通过日期范围锁定年份,公式如下:

=AVERAGEIFS(Table1[pH (total scale)], Table1[Date], ">="&DATE(2011,1,1), Table1[Date], "<="&DATE(2011,12,31))
  • 原理:用DATE(2011,1,1)和DATE(2011,12,31)定义2011年的日期范围,AVERAGEIFS自动筛选该范围内的pH值并计算平均值。

方案4:一次性生成所有年份的平均值(Excel 365/2021动态数组)

如果使用支持动态数组的Excel版本,可一次性算出2011-2020年所有年份的平均值,无需逐个修改公式:

=LET(
    years, FILTER(UNIQUE(YEAR(Table1[Date])), (UNIQUE(YEAR(Table1[Date]))>=2011)*(UNIQUE(YEAR(Table1[Date]))<=2020)),
    averages, MAP(years, LAMBDA(y, AVERAGEIFS(Table1[pH (total scale)], Table1[Date], ">="&DATE(y,1,1), Table1[Date], "<="&DATE(y,12,31)))),
    HSTACK(years, averages)
)
  • 执行后会自动生成两列数据:左边是年份,右边是对应年份的pH平均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 00:54:58