You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SUMPRODUCT函数计算异常求助:跨双工作表多条件求和需求实现问题

SUMPRODUCT函数计算异常求助:跨双工作表多条件求和需求实现问题

嗨,我来帮你搞定这个跨双工作表的多条件求和问题!先把你的需求再捋一遍确认下:你要统计同时在Sheet1和Test工作表中存在的名字,而且得满足两个状态条件——Sheet1里对应名字的状态是「Intake Completed」,Test表里对应名字的状态是「Yes」,对吧?

先整理下你提供的样本数据

Sheet1 数据

名称状态
DIntake Completed
AIntake Completed
C, DIntake Completed
PNot
ZIntake Completed

Test 工作表数据(按需求逻辑补全结构)

名称状态
AYes
DYes
ZNo
PYes

推荐用SUMPRODUCT实现的公式(适配你的需求)

假设Sheet1的名称列是A列,状态列是B列;Test工作表的名称列是A列,状态列是B列,直接用下面的公式就能计算符合所有条件的记录数:

=SUMPRODUCT(
    --(ISNUMBER(MATCH(Sheet1!A:A, Test!A:A, 0))),
    --(Sheet1!B:B="Intake Completed"),
    --(VLOOKUP(Sheet1!A:A, Test!A:B, 2, FALSE)="Yes")
)

公式各部分拆解说明

我给你拆解开每个条件的作用,方便你根据自己的实际列号调整:

  1. --(ISNUMBER(MATCH(Sheet1!A:A, Test!A:A, 0))):
    用MATCH函数检查Sheet1里的每个名字是否在Test表中存在,ISNUMBER把匹配结果转成TRUE/FALSE,再用--把布尔值转成1(存在)或0(不存在),作为第一个判断条件。
  2. --(Sheet1!B:B="Intake Completed"):
    判断Sheet1当前行的状态是否是「Intake Completed」,同样转成1/0的数值,作为第二个条件。
  3. --(VLOOKUP(Sheet1!A:A, Test!A:B, 2, FALSE)="Yes"):
    用VLOOKUP找到Test表里对应名字的状态值,判断是否为"Yes",转成1/0的数值,作为第三个条件。
  4. SUMPRODUCT会把三个条件对应的数组相乘后求和,最终得到同时满足所有条件的记录总数。

额外注意事项

  • 如果你的实际列号不是A/B,比如Sheet1的名称在C列、状态在D列,记得把公式里的Sheet1!A:A改成Sheet1!C:C,Sheet1!B:B改成Sheet1!D:D,Test表的列号同理调整。
  • 针对Sheet1里的「C, D」这种包含多个名字的行:如果需要把这行拆分成C和D分别判断是否符合条件,那上面的公式就不够用了,需要加名字拆分的逻辑(比如用FILTERXML函数拆分逗号分隔的名字),你可以告诉我你的具体要求,我再帮你调整公式。

备注:内容来源于stack exchange,提问作者Half Jesus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:25:33