最近跟一个做HR的朋友聊天,她吐槽说每个月做员工花名册的时候,最头疼的就是根据部门把人名找出来,还得横着排成一行。以前她要么手动复制粘贴,要么用INDEX+MATCH折腾半天。
我问她,你试过TOROW吗?
她一脸懵:这不是把数据转成一行的函数吗?跟查找有啥关系?
说实话,我之前也这么以为。后来研究了一下才发现,这函数简直就是被低估的查找神器。
简单粗暴的理解:就是把一个表格区域,变成一行。
语法也不复杂:
=TOROW(要转换的区域, 要不要忽略空值或错误, 按行扫还是按列扫)
三个参数说人话就是:
光说不练假把式,上个例子。
比如你手里有个3行4列的数据表,想把它全部塞进一行里。
公式就这么写:
=TOROW(A2:F4, 3, FALSE)
意思就是把A2到F4这个区域按行扫一遍,遇到空白或者错误值自动跳过,最后输出成一行。
效果立竿见影,一秒完成。

如果你想按列的顺序转,把最后一个参数改成TRUE就行:
=TOROW(A2:F4, 3, TRUE)
这才是今天的重头戏。
回到开头HR朋友的痛点:根据部门,把该部门所有员工姓名找出来,还要横着排成一行。
传统思路无非是FILTER筛选出来再转置,或者用IF构造数组。
=TOROW(FILTER(B2:B8, C2:C8=E1, ""), 3)
FILTER先按条件把对应部门的员工筛出来,TOROW负责把这些名字横着摆成一排。第二个参数写3,万一没筛出东西也不报错。

=TOROW(IF(C2:C8=E1, B2:B8, NA()), 3)
IF判断每一行:部门匹配就返回员工姓名,不匹配就返回#N/A错误。然后用TOROW转成一行,同时告诉它看见错误值就忽略。

两种方法都能实现效果,看你习惯哪个。
VLOOKUP天生的短板就是只能返回第一个匹配项。你要找多个结果?不好意思,办不到。
TOROW配合FILTER或者IF,来多少个匹配项都能给你列出来,一个不落。而且自动横着排,省去了手动复制粘贴转置的麻烦。
说句大实话,Excel里很多老函数不是不好用,而是新函数把它们做不到的事情变得可能了。TOROW就是典型代表,表面上是转置工具,实际上是查找高手。
下次谁再问你一对多查找怎么做,把这篇甩给他。