Google Sheets数组公式联动失效:多条件求和公式引用问题求助
Google Sheets 数组公式需求及解决方案
核心需求
- 在J列通过数组公式计算「Overall Total」:当当前行及下方3行的D列(Date)单元格完全匹配,且C列(Scan)单元格也完全匹配时,计算当前行E列+下方3行E列的总和;不满足条件则留空。
- 数据每日从关联表单自动新增16条,且会随地点数量倍增,必须全程使用数组公式,禁止手动下拉公式。
当前问题
之前尝试通过F列(Date Match)和H列(Scan Match)的数组公式辅助判断条件,但会导致J列的数组公式失效,无法正常计算总和。
解决方案:直接在J列编写单个数组公式
无需依赖辅助列,直接在J列首单元格(如J2)输入以下公式即可实现需求:
方案1:使用BYROW + INDEX(推荐,性能更优)
=BYROW(SEQUENCE(COUNTA(A:A)-1), LAMBDA(r, IF(r > COUNTA(A:A)-4, "", IF(AND( INDEX(D:D, r)=INDEX(D:D, r+1), INDEX(D:D, r)=INDEX(D:D, r+2), INDEX(D:D, r)=INDEX(D:D, r+3), INDEX(C:C, r)=INDEX(C:C, r+1), INDEX(C:C, r)=INDEX(C:C, r+2), INDEX(C:C, r)=INDEX(C:C, r+3) ), SUM(INDEX(E:E, r):INDEX(E:E, r+3)), "") ) ))
说明:
COUNTA(A:A)-1假设A列为数据起始列(无空行表头),若表头占多行可调整数值;r > COUNTA(A:A)-4确保只计算到倒数第4行,避免越界。
方案2:使用ARRAYFORMULA + OFFSET(兼容旧版Sheets)
=ARRAYFORMULA( IF(ROW(A:A) > COUNTA(A:A)-3, "", IF( (D:D=OFFSET(D:D,1,0))*(D:D=OFFSET(D:D,2,0))*(D:D=OFFSET(D:D,3,0))* (C:C=OFFSET(C:C,1,0))*(C:C=OFFSET(C:C,2,0))*(C:C=OFFSET(C:C,3,0)), SUMIF(ROW(E:E), "<="&ROW(E:E)+3, E:E)-SUMIF(ROW(E:E), "<"&ROW(E:E), E:E), "" ) ) )
说明:通过乘法替代
AND实现多条件判断,利用SUMIF计算连续4行的E列总和;需确保数据区域无空行,否则可能出现错误。
内容的提问来源于stack exchange,提问作者Chad O.
相关产品推荐
相关产品推荐

