求Excel精简求和公式:按条件筛选并求和每3列单元格
精简Excel求和公式解决方案
适用Excel 365/2021(支持动态数组)
直接用FILTER+SUM组合,一次性完成双条件筛选求和:
=SUM(FILTER(AA17:ADB17,(MOD(COLUMN(AA17:ADB17)-COLUMN(AA17),3)=0)*(--LEFT(AA4:ADB4,2)=GO$5)))
公式逻辑
MOD(COLUMN(AA17:ADB17)-COLUMN(AA17),3)=0:筛选出区域内从AA17开始的每第3个单元格(即AA17、AD17、AG17……间隔3列的单元格)--LEFT(AA4:ADB4,2)=GO$5:筛选出对应上方第4行单元格的前两位转数字后,等于GO5单元格的值(匹配1.0.0、2.0.0这类格式的前缀)- 两个条件用
*连接表示“同时满足”,FILTER提取符合条件的单元格,最后SUM求和
适用旧版Excel(无动态数组支持)
用SUMPRODUCT实现相同逻辑,兼容所有版本:
=SUMPRODUCT((MOD(COLUMN(AA17:ADB17)-COLUMN(AA17),3)=0)*(--LEFT(AA4:ADB4,2)=GO$5)*AA17:ADB17)
公式逻辑
SUMPRODUCT会自动将逻辑判断结果转为1(真)或0(假),三个数组相乘后,只有同时满足两个条件的单元格值会被保留,最终求和得到结果
可选容错优化
如果存在非x.x.x格式的上方单元格,可添加IFERROR避免计算错误:
# 365版本 =SUM(FILTER(AA17:ADB17,(MOD(COLUMN(AA17:ADB17)-COLUMN(AA17),3)=0)*(IFERROR(--LEFT(AA4:ADB4,2),0)=GO$5))) # 旧版本 =SUMPRODUCT((MOD(COLUMN(AA17:ADB17)-COLUMN(AA17),3)=0)*(IFERROR(--LEFT(AA4:ADB4,2),0)=GO$5)*AA17:ADB17)
内容的提问来源于stack exchange,提问作者Jeffreyas
相关产品推荐
相关产品推荐

