Google Sheet中如何用SUMPRODUCT对符合指定标签列表的数值求和
Google Sheets按指定允许标签列表求和解决方案
报错原因
原有公式=SUMPRODUCT(B1:B7, COUNTIF(A1:A7,A10:A12))出现数组大小不匹配错误,是因为COUNTIF(A1:A7,A10:A12)返回的数组长度和允许标签列表A10:A12一致,和待求和数值区域B1:B7的长度不匹配,无法对应相乘计算。
可用解决公式
方案1:调整COUNTIF参数顺序(最贴近原有写法)
修改为如下公式即可得到正确结果400:=SUMPRODUCT(B1:B7, COUNTIF(A10:A12, A1:A7))
逻辑说明:COUNTIF会逐行判断A1:A7的每个标签是否存在于允许列表A10:A12中,存在返回1、不存在返回0,得到的数组长度和B1:B7完全一致,SUMPRODUCT将对应位置的数值和0/1相乘后求和,最终只统计符合条件的数值总和。
方案2:FILTER+SUM(逻辑更直观)
=SUM(FILTER(B1:B7, COUNTIF(A10:A12, A1:A7)))
逻辑说明:先通过FILTER筛选出标签属于允许列表的所有对应数值,再直接对筛选结果求和,可读性更强,不容易出现维度匹配错误。
方案3:MATCH+ISNUMBER搭配SUMPRODUCT
=SUMPRODUCT(B1:B7, ISNUMBER(MATCH(A1:A7, A10:A12, 0)))
逻辑说明:用MATCH逐行匹配A列标签在允许列表中的位置,匹配成功返回数字、失败返回错误值,ISNUMBER将结果转换为布尔值,SUMPRODUCT自动将布尔值转为1/0后计算求和。
内容的提问来源于stack exchange,提问作者jmw
相关产品推荐
相关产品推荐

