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

带WHERE条件的VLOOKUP:按TEAM分组求和并匹配指定PERSON

解决方案:同时实现分组求和与匹配指定条件的PERSON

一、一步到位的QUERY函数方案

可以直接用QUERY结合数组逻辑,同时完成TEAM分组求和COUNT和提取对应TEAM中Lookup=Y的PERSON需求,分两种场景适配:

场景1:每个TEAM仅存在一个Lookup=Y的PERSON

公式示例:

=QUERY(data, "SELECT TEAM, SUM(COUNT), MAX(IF(Lookup='Y', PERSON, '')) GROUP BY TEAM LABEL SUM(COUNT) '总COUNT', MAX(IF(Lookup='Y', PERSON, '')) '匹配的PERSON'", 1)
  • 核心逻辑:分组时用MAX(IF(Lookup='Y', PERSON, ''))提取目标PERSON——不符合条件的行被转为空值,MAX会自动取到该TEAM下唯一的非空PERSON值
  • 末尾参数1表示表格带表头,无表头时改为0即可。

场景2:每个TEAM存在多个Lookup=Y的PERSON(需合并显示)

用ARRAYFORMULA配合TEXTJOIN实现多值合并:

=ARRAYFORMULA(QUERY({data!A:D, IF(data!C:C="Y", data!A:A, "")}, "SELECT Col2, SUM(Col4), TEXTJOIN(',', TRUE, Col5) GROUP BY Col2 LABEL SUM(Col4) '总COUNT', TEXTJOIN(',', TRUE, Col5) '匹配的PERSON'", 1))
  • 先构造辅助列Col5:仅保留Lookup=Y的PERSON,其余为空
  • 分组时用TEXTJOIN将同一个TEAM下所有符合条件的PERSON用逗号分隔合并。

二、带条件的匹配替代方案(分步实现)

如果需要类似「带WHERE条件的VLOOKUP」逻辑,可以分步处理:

  1. 第一步:生成分组求和表(假设放在F:G列)
=QUERY(data, "SELECT TEAM, SUM(COUNT) GROUP BY TEAM LABEL SUM(COUNT) '总COUNT'", 1)
  1. 第二步:在H列提取对应TEAM的Lookup=Y的PERSON
=ARRAYFORMULA(IFERROR(TEXTJOIN(",", TRUE, FILTER(data!A:A, data!B:B=F:F, data!C:C="Y")), ""))
  • FILTER精准筛选满足「TEAM匹配当前行」且「Lookup=Y」的PERSON
  • TEXTJOIN合并多值,IFERROR处理无符合条件的情况(返回空)
  • ARRAYFORMULA实现批量填充,无需手动下拉公式。

内容的提问来源于stack exchange,提问作者bismo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 09:32:40