如何批量修改Excel中AVERAGEIFS公式的日期,无需手动修改273个单元格?
解决AVERAGEIFS公式批量修改日期且固定范围的方法
以下是几个简便的实操方案,帮你只改日期、不动公式里的单元格范围:
方法1:绝对引用范围+单独日期列
- 先把公式里的数据范围改成绝对引用(加
$符号),比如把H3:H8198改成$H$3:$H$8198,I3:I8198改成$I$3:$I$8198。这样拖动填充时,范围不会被改动。 - 在旁边列(比如Q、R列)提前输入每个月的起止日期:Q3填
1/31/2023,Q4填12/31/2022……直到Q273填7/31/2000;R3填1/1/2023,R4填12/1/2022……直到R273填7/1/2000。 - P3的公式改成:
=AVERAGEIFS($H$3:$H$8198, $I$3:$I$8198, "<="&Q3, $I$3:$I$8198, ">"&R3) - 选中P3,直接向下拖动填充到P273即可——范围保持不变,自动引用对应行的Q、R列日期。
方法2:用EDATE函数自动生成递减月份
如果你的日期是按每月倒推(从2023年1月到2000年7月),可以不用单独列,直接在公式里自动生成日期:
- P3输入公式:
=AVERAGEIFS($H$3:$H$8198, $I$3:$I$8198, "<="&EOMONTH(DATE(2023,1,1), -(ROW(P3)-ROW($P$3))), $I$3:$I$8198, ">"&DATE(YEAR(EOMONTH(DATE(2023,1,1), -(ROW(P3)-ROW($P$3)))),MONTH(EOMONTH(DATE(2023,1,1), -(ROW(P3)-ROW($P$3)))),1)) - 直接拖动填充到P273:
EOMONTH(...)负责生成对应月份的最后一天(结束日期)DATE(...)生成对应月份的第一天(开始日期)-(ROW(P3)-ROW($P$3))会随着行号增加,让月份逐行递减1,自动匹配到2000年7月。
方法3:批量替换已有的公式
如果已经输入了大量公式,只是要修正范围和日期:
- 选中P3:P273,按
Ctrl+H打开查找替换窗口。 - 查找内容输入
H3:H8198,替换为$H$3:$H$8198,点击「全部替换」——先把范围改成绝对引用。 - 再用查找替换处理日期:比如查找
<=1/31/2023,替换为<=&Q3(前提是Q列已备好对应日期),逐批替换完成。
内容的提问来源于stack exchange,提问作者user21344498
相关产品推荐
相关产品推荐

