Excel多对多查询函数新手教程:从案例到实操
文章标签:
excel一共有多少函数
一、为啥要学多对多查询?举个例子你就懂!
假设你是公司HR,手里有张员工技能表(如下),现在需要快速找出: "张三"会哪些技能? "Excel"技能有哪些人掌握?
员工姓名 | 技能 |
张三 | Excel |
张三 | Python |
李四 | Java |
李四 | SQL |
王五 | Excel |
这种一个人对应多个值、一个值对应多个人的查询,就是多对多查询。学会这招,再也不用手动翻表格啦!
二、高版本Excel(365/2021+):1个公式搞定!
方法:TEXTJOIN+FILTER函数组合
步骤1:输入公式(3步走)
- 点击要显示结果的单元格(如E2)
- 复制粘贴这个公式:
=TEXTJOIN("、", TRUE, FILTER(B:B, A:A=D2))
- 按回车,搞定!
公式白话解释:
- FILTER(B:B, A:A=D2):在A列找等于D2(比如"张三")的行,把对应的B列(技能)都捞出来
- TEXTJOIN("、", TRUE, ...):用"、"把多个技能串起来(比如"Excel、Python")
效果展示:
当D2输入"张三",E2直接显示 "Excel、Python"当D2输入"Excel",E2显示 "张三、王五"
三、低版本Excel(2019及以下):数组公式来救场
方法:INDEX+SMALL+IF数组公式
步骤1:输入基础公式
- 点击结果单元格(如E2)
- 粘贴公式:
=IFERROR(INDEX($B:$B, SMALL(IF($A:$A=$D$2, ROW($A:$A)), ROW(A1))), "")
步骤2:按「数组三键」确认
重点! 不是普通回车,要按 Ctrl+Shift+Enter按完后公式两边会自动出现 {}(不用手动打)
步骤3:下拉显示所有结果
选中E2,鼠标放在单元格右下角,变成小方块后下拉,就能显示所有技能啦!比如E2显示"Excel",E3显示"Python",没有结果就显示空白。
四、两种方法大比拼(新手必看)
方法 | 适合版本 | 优点 | 缺点 |
TEXTJOIN+FILTER | 365/2021+ | 1个公式搞定,不用下拉 | 旧版本用不了 |
INDEX+SMALL+IF | 所有版本 | 兼容性强 | 要按三键,步骤多一点 |
小建议:如果你的Excel是2021年以后的版本,果断用第一种!又快又简单~
五、常见问题:公式报错了怎么办?
1. 高版本出现 #SPILL! 错误
- 原因:结果太多,Excel没地方放(比如E列下面有内容)
- 解决:清空E列下面的空行,给结果腾地方
2. 低版本出现 #NAME? 错误
- 原因:公式里有Excel不认识的函数(比如TEXTJOIN)
- 解决:改用低版本的数组公式法
3. 结果只显示1个,下拉没反应
- 原因:忘记按 Ctrl+Shift+Enter 输入数组公式
- 解决:选中公式单元格,重新按三键确认
六、总结:多对多查询其实很简单!
今天学了两招:
高版本用 TEXTJOIN+FILTER,一键出结果
低版本用 INDEX+SMALL+IF,三键数组公式
记住这个员工技能表案例,以后遇到一个值对应多个结果的查询,直接套公式就行!快打开Excel试试吧~