Google Sheets下拉单元格时如何逐行递增偏移列计算范围
Google Sheets 逐行右移固定范围求和实现方案
原Excel公式中常量数组配合INDEX返回多列引用的逻辑在Google Sheets中不兼容,可直接使用以下两种方案实现需求,两种方案都满足「固定求和列宽、每向下填充1行求和范围整体右移1列」的规则:
方案1:下拉填充版(和原Excel使用习惯一致)
在N2单元格输入以下公式,直接向下拖动填充即可:
=SUM(OFFSET(B2,0,ROWS(N$2:N2)-1,1,2))
参数说明:
- 以B2为固定基准锚点,行偏移量设为0,保证求和范围始终和公式所在行对齐
- 列偏移量用
ROWS(N$2:N2)-1实现逐行递增:N2行时偏移0列,从B列开始取数;下拉到N3时偏移量自动变为1,从C列开始取数,每下拉1行列偏移自动+1 - 末尾参数
1,2固定取1行、2列大小的范围,保证求和长度固定,和需求中N2=SUM(B2:C2)、N3=SUM(C3:D3)的效果完全匹配 - 如果需要调整固定求和的列数,直接修改最后一个参数的数值即可
方案2:自动溢出版(无需手动下拉)
如果数据量较大,不需要逐行拖动填充,可在N2单元格输入以下数组公式,自动计算整列所有结果:
=BYROW(SEQUENCE(MAX(ROW(B:B)*(B:B<>"")),1,2,1),LAMBDA(r,SUM(OFFSET(B:r,0,r-2,1,2))))
公式会自动识别B列的有效数据行数,从第2行开始逐行完成右移求和,结果自动溢出填充到N列对应位置。
注:需求示例中N3对应SUM(C3:D4)应为笔误,如果实际需要跨行求和,只需要修改OFFSET函数的第4个(高度)参数为对应行数即可。
内容的提问来源于stack exchange,提问作者Flav
相关产品推荐
相关产品推荐

