Google Sheets中ArrayFormula结合SUMIFS多数组求和出错求助
解决方案
原公式出错的核心原因是SUMIFS的条件数组维度不匹配:N3:S3是横向数组,M4:M20、L4:L20是纵向数组,直接套ArrayFormula无法正确对应每个交叉单元格的条件组合,导致求和逻辑混乱。
可以改用以下两种方案实现需求:
方案1:使用MMULT数组运算
在N4单元格输入公式:
=ArrayFormula(IF(L4:L20="",,MMULT(--($B$4:$B$29=TRANSPOSE(N3:S3)),($D$4:$D$29=M4:M20)*($C$4:$C$29=L4:L20)*$E$4:$E$29)))
方案2:使用SUMPRODUCT数组运算
在N4单元格输入公式:
=ArrayFormula(IF(L4:L20="",,SUMPRODUCT(($B$4:$B$29=TRANSPOSE(N3:S3))*($D$4:$D$29=M4:M20)*($C$4:$C$29=L4:L20)*$E$4:$E$29)))
公式说明
TRANSPOSE(N3:S3):把横向的条件标题转为纵向,和$B$4:$B$29做匹配,生成每个条件列的布尔数组($D$4:$D$29=M4:M20)*($C$4:$C$29=L4:L20)*$E$4:$E$29:生成符合行条件(L列、M列)的数值数组MMULT/SUMPRODUCT:将横向条件匹配结果和行条件数值数组做矩阵运算,得到每个交叉单元格的求和结果IF(L4:L20="",,):自动跳过L列为空的行,避免生成无效结果
内容的提问来源于stack exchange,提问作者yelldio
相关产品推荐
相关产品推荐

