Σ表格公式学堂EXCEL FORMULA & SCENARIO
组合数据查找匹配 · 2 个 Sheet

多条件查找(按姓名 + 月份查数据)

两个条件才能定位一条记录时怎么查。

1

场景背景

明细表里同一个人有多条记录(每个月一条),单看姓名无法定位。想查「张三 2 月」的销售额,必须同时用姓名和月份两个条件。两种主流解法:拼辅助列后用 VLOOKUP,或 INDEX+MATCH 用数组做双条件匹配。

2

数据结构

共 2 个 Sheet
Sheet:明细
字段含义示例值
姓名条件 1张三
月份条件 22月
销售额要返回的值1500
Sheet:查询
字段含义示例值
姓名 / 月份两个查询条件张三 / 2月
销售额查询结果1500
3

解决步骤

1
第 1 步:拼一个唯一键(辅助列法)
在明细表 D 列用 姓名&月份 拼成「张三2月」,这是最简单的多条件查找思路。
=A2&B2
2
第 2 步:用拼好的键做 VLOOKUP
查询时把两个条件也拼起来,拿它去 D 列找。
=VLOOKUP(E2&F2,明细!D:G,4,FALSE)
3
第 3 步:INDEX + MATCH 双条件(不用辅助列)
MATCH 用 (条件1)*(条件2) 定位行号,INDEX 取该行销售额。这是数组写法,365 直接回车即可。
=INDEX(明细!C:C,MATCH(1,(明细!A:A=E2)*(明细!B:B=F2),0))
4
第 4 步:能用 SUMIFS 就别用查找
如果目标值唯一,SUMIFS 更简单也更快:多条件求和天然支持两个条件。
=SUMIFS(明细!C:C,明细!A:A,E2,明细!B:B,F2)
4

完整公式与逐段拆解

=SUMIFS(明细!C:C,明细!A:A,E2,明细!B:B,F2)
明细!C:C要求和(或取值)的列
明细!A:A,E2条件 1:姓名等于 E2
明细!B:B,F2条件 2:月份等于 F2
5

多 Sheet 示例

在编辑器中打开 ↗
ABC
1姓名月份销售额
2张三2月1500
3
4
5
当前表:查询 · 公式单元格 C2 · 绿色底为公式,蓝色底为动态数组溢出结果

查询表 C2 用 SUMIFS 双条件取到 1500

6

数据流向

数据流向演示1 / 4
来源查询!A2:B2
➜
去向两个条件
查询条件:姓名 + 月份
来源明细!A2:B5
→
去向定位唯一行
明细表同时匹配两列
来源明细!C4
→
去向结果
取该行销售额
来源结果
→
去向查询!C2
写回查询表
跟着高亮一步步看数据怎么流动
7

注意事项与坑

!辅助列拼接时要注意分隔符,姓名&月份 可能撞车(如「张三1」+「0月」),加个 | 更安全。
!INDEX+MATCH 数组写法在老版本需要 Ctrl+Shift+Enter。
!如果同一组合有多条记录,SUMIFS 会把它们加起来,查找只会返回第一条,注意区分需求。
8

相关场景