1
场景背景
明细表里同一个人有多条记录(每个月一条),单看姓名无法定位。想查「张三 2 月」的销售额,必须同时用姓名和月份两个条件。两种主流解法:拼辅助列后用 VLOOKUP,或 INDEX+MATCH 用数组做双条件匹配。
2
数据结构
共 2 个 Sheet3
解决步骤
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| A | B | C | |
|---|---|---|---|
| 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