Excel多对多查询函数新手教程:从案例到实操

一、为啥要学多对多查询?举个例子你就懂!

假设你是公司HR,手里有张员工技能表(如下),现在需要快速找出: "张三"会哪些技能? "Excel"技能有哪些人掌握?

员工姓名

技能

张三

Excel

张三

Python

李四

Java

李四

SQL

王五

Excel

这种一个人对应多个值、一个值对应多个人的查询,就是多对多查询。学会这招,再也不用手动翻表格啦!

二、高版本Excel(365/2021+):1个公式搞定!
方法:TEXTJOIN+FILTER函数组合

步骤1:输入公式(3步走)

  1. 点击要显示结果的单元格(如E2)
  2. 复制粘贴这个公式:
    =TEXTJOIN("、", TRUE, FILTER(B:B, A:A=D2))
  1. 按回车,搞定!

公式白话解释:

  • 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:输入基础公式

  1. 点击结果单元格(如E2)
  2. 粘贴公式:
    =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试试吧~