如何用ARRAYFORMULA替代SUMPRODUCT按行统计各领域测试得分?
按领域排序后如何用ARRAYFORMULA统计每行各领域的测试得分
我制作了一份测试检查表格,每份测试涵盖不同领域。原本用SUMPRODUCT可以统计所有正确答案,但按领域对项目排序后该公式失效了,现在需要用ARRAYFORMULA统计每行各领域的得分,应该用什么公式?
原始总分统计(未按领域排序)
- 场景:未排序时可正常统计正确答案总分
- 使用的公式:
=ArrayFormula(SUMPRODUCT(($F$1:$BY$1=$F$4:$BY$4)*($F$2:$BY$2=F5:BY5)))
按领域排序后的情况
- 场景:按测试领域排序后,原公式失效
- 尝试的无效公式:
=SUMPRODUCT($DP$1:$EG$1=$DP$4:$EG$4)*(DP2:EG2=DP5:EG5)
解决方案公式
方案1:结合SUMIFS与ARRAYFORMULA
=ARRAYFORMULA( IF(ROW(DP5:DP)=4, "得分", SUMIFS(DP2:EG2, DP1:EG1, DP4:EG4, DP2:EG2, DP5:EG5) ) )
方案2:调整SUMPRODUCT的数组匹配逻辑
=ARRAYFORMULA( IF(ISBLANK(DP5:DP), "", SUMPRODUCT( ($DP$1:$EG$1=$DP$4:$EG$4)* (TRANSPOSE($DP$2:$EG$2)=DP5:EG5) ) ) )
公式说明
- 方案1通过
SUMIFS同时匹配领域标识(DP1:EG1=DP4:EG4)和正确答案(DP2:EG2=对应行答案),再用ARRAYFORMULA批量计算每行的得分 - 方案2利用
TRANSPOSE转置正确答案行,让其与每行的答案数组逐元素对齐,再通过SUMPRODUCT统计符合领域条件的正确题数
内容的提问来源于stack exchange,提问作者Sansann
相关产品推荐
相关产品推荐

