Excel中如何按每月1号日期条件计算B列平均值
解决方法
你的公式问题出在两个核心错误上:
AVERAGEIFS的参数顺序完全搞反了——它的第一个参数是要计算平均值的数值区域,后续才是条件区域和对应条件;- 条件写法不合法,
DAY=1不是有效的判断逻辑,必须对日期单元格提取「日」部分后再做等于1的判断。
以下是两种可行的正确方案:
方法1:AVERAGE + IF 数组公式
适用于所有Excel版本(2019及以前版本需按Ctrl+Shift+Enter完成输入,365/2021直接回车即可):
=AVERAGE(IF(DAY(A:A)=1, B:B))
逻辑:先通过DAY(A:A)=1筛选出所有每月1号的行,再对这些行对应的B列数值计算平均值。
方法2:AVERAGEIFS 正确写法
同样支持全版本(旧版需按数组公式规则输入):
=AVERAGEIFS(B:B, A:A, TEXT(A:A, "dd")="01")
逻辑:用TEXT(A:A, "dd")将日期转换为两位日数文本,判断是否等于"01",再对符合条件的B列数值取平均。
额外优化建议
尽量避免用整列(A:A/B:B)作为引用范围,换成实际的数据区域(比如A2:A1000),能大幅提升公式计算效率。
内容的提问来源于stack exchange,提问作者Daniel Cohen
相关产品推荐
相关产品推荐

