如何用可引用表数组的SUMIFS公式实现跨表分类求和?
按类别汇总跨表产品销量的解决方案
方案1:SUMPRODUCT函数(适配手动输入类别的结果表)
若结果表已手动列出类别(如A2为Fruit、A3为Vegetable),在B2单元格输入以下公式,下拉即可适配所有类别:
=SUMPRODUCT(Sheet1!$B$2:$B$9, --(XLOOKUP(Sheet1!$A$2:$A$9, Sheet2!$A$2:$A$6, Sheet2!$B$2:$B$6, "")=A2))
说明:
XLOOKUP(Sheet1!$A$2:$A$9, Sheet2!$A$2:$A$6, Sheet2!$B$2:$B$6, ""):将表1的每个产品匹配到表2对应的类别--(...):将类别匹配的布尔结果(TRUE/FALSE)转换为1/0,仅保留当前类别对应的销量数据SUMPRODUCT:将销量数组与1/0数组相乘后求和,实现目标类别的销量汇总
如果使用旧版表格(无XLOOKUP支持),替换为VLOOKUP版本:
=SUMPRODUCT(Sheet1!$B$2:$B$9, --(VLOOKUP(Sheet1!$A$2:$A$9, Sheet2!$A$2:$B$6, 2, FALSE)=A2))
方案2:QUERY函数(自动生成类别+汇总,无需手动输入)
如果希望一次性生成所有类别的汇总结果(无需手动填写类别),使用以下公式直接生成完整结果表:
=QUERY({Sheet1!$A$2:$B$9, ARRAYFORMULA(XLOOKUP(Sheet1!$A$2:$A$9, Sheet2!$A$2:$A$6, Sheet2!$B$2:$B$6, ""))}, "select Col3, sum(Col2) where Col3 != '' group by Col3 label sum(Col2)'Total Quantity'", 0)
说明:
{Sheet1!$A$2:$B$9, ...}:合并表1的销量数据与匹配后的类别,生成临时数组- QUERY语句自动按类别分组、求和销量,同时生成表头,完全避免硬编码类别名称
验证结果
- Fruit类别总销量:
5+10+10+15+20+5=65 - Vegetable类别总销量:
3+4=7
内容的提问来源于stack exchange,提问作者Romeo Guerrero
相关产品推荐
相关产品推荐

