Excel新增月度列后自动滚动更新最近3个月数据列的实现问题
Excel 最近3个月数据自动同步实现方案
方案1:Excel 365/2021 动态数组方案(最优)
直接在「最近3个月数据表」的AN2单元格输入以下公式,无需手动下拉右拉,会自动溢出填充所有3行3列的数据,新增月份列后自动刷新:
=TAKE(DROP(A:ZZ,,COUNTA(1:1)-3),COUNTA(A:A)-1,3)
公式逻辑说明:
COUNTA(1:1):统计原表第1行(月份行)已填写的总列数,新增月份后数值自动+1DROP(A:ZZ,,COUNTA(1:1)-3):跳过原表前N列,只保留最后3列的所有数据TAKE(...,COUNTA(A:A)-1,3):去掉原表的月份表头行,只取数值行的3列数据
方案2:兼容2019及更早版本Excel的通用方案
在AN2单元格输入以下公式,向右拉填充到AP2,再向下拉填充到对应行即可,新增月份后自动同步:
=INDEX(2:2,LOOKUP(9^9,$1:$1,COLUMN($1:$1))-3+COLUMN(A1))
公式逻辑说明:
LOOKUP(9^9,$1:$1,COLUMN($1:$1)):自动识别原表第1行最后一个有数据的列号- 后续计算自动匹配当前单元格对应倒数第N列的位置,用INDEX取出对应数值
- 右拉时
COLUMN(A1)自动变为COLUMN(B1)/COLUMN(C1),对应倒数第3、2、1列的数值
原有公式存在的问题
你当前写的多层嵌套IF公式存在两个明显缺陷:
- IF嵌套层数上限低,后续新增月份超过一定数量后公式直接失效
- 列引用写死为AL/AM/AN等固定列,后续新增列多了之后逻辑完全混乱,维护成本极高
内容的提问来源于stack exchange,提问作者Krush23
相关产品推荐
相关产品推荐

