Google Sheets双标签下用INDEX MATCH计算符合条件的人员分数总和问题
问题原因
- 参数顺序错误:
SUMIF标准语法为SUMIF(判断范围, 匹配条件, 求和范围),你现有公式把求和范围name_points和判断范围each_name顺序写反,导致匹配不到对应值,返回结果为0。 - 匹配逻辑不全:
MATCH(TRUE,C$2:G$2,0)只能匹配到当前行第一个值为TRUE的列对应的姓名,无法覆盖所有标记为TRUE的人员,不能实现多个人的分数累加。
修正方案
直接在B2单元格输入以下公式,下拉填充到B4即可得到预期结果:
=SUM(SUMIF(each_name, FILTER(C$1:G$1, C2:G2=TRUE), name_points)
如果需要兼容更低版本的表格工具,也可以使用SUMPRODUCT版本的公式:
=SUMPRODUCT((C$1:G$1=TRANSPOSE(each_name))*C2:G2*TRANSPOSE(name_points))
公式逻辑说明
FILTER(C$1:G$1, C2:G2=TRUE):筛选出当前行所有值为TRUE的列对应的人员姓名SUMIF(each_name, 筛选得到的姓名数组, name_points):批量匹配每个姓名对应的分数- 最外层
SUM将所有匹配到的分数累加得到当前Group的总分
内容的提问来源于stack exchange,提问作者Diop Chopra
相关产品推荐
相关产品推荐

