Excel中如何按每22行取最大值并跳过后续18行循环处理?
批量提取间隔区域最大值的简便方案
方案一:用OFFSET函数快速生成目标区域
在任意空白单元格(比如D1)输入公式,下拉即可批量计算:
=MAX(OFFSET($B$40,(ROW(A1)-1)*(22+18),0,22,1))
- 核心逻辑:每次偏移
(22+18)行(22行数据区+18行跳过区),定位到下一组22行数据后取最大值 ROW(A1)用于生成递增序号,下拉时自动变为ROW(A2)、ROW(A3),实现批量偏移定位
方案二:用INDEX替代OFFSET(非易失性,更稳定)
如果表格数据量大,OFFSET的易失性可能拖慢性能,可换用INDEX构建目标区域:
=MAX(INDEX($B:$B,40+(ROW(A1)-1)*40):INDEX($B:$B,40+(ROW(A1)-1)*40+21))
- 40是第一组数据的起始行号,21是
22-1(起始行到起始行+21,刚好覆盖22行数据) - 同样通过
(ROW(A1)-1)*40实现每40行(22+18)跳转到下一组数据区
注:如果实际数据的起始行、数据行数、跳过行数和例子有出入,直接替换公式里对应数值即可。
内容的提问来源于stack exchange,提问作者Danny Janssen
相关产品推荐
相关产品推荐

