首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

抛弃vlookup,一对多查询,Filter函数比它更好使!

‍一对多查询问题在工作中经常能够遇到,举个例子,左边是一个员工信息表,要在右边根据部门名称,找出所有的员工名单。遇到查询问题,我们通常可以使用VLOOKUP函数来解决,但在这个问题中,Filter函数将会更加高效!

图1:一对多查询问题示例

VLOOKUP函数如何解决?

我们知道,VLOOKUP函数可以根据左边第一列的数据,找出右边对应的内容,但是,这里部门不唯一,所以,需要先构造一个辅助列,使用COUNTIF函数可以实现:

=B2&COUNTIF($B1:B2,B2)

图2:构造辅助列

在这个公式中,COUNTIF会对相同部门出现的次数进行计数,市场部出现第一次,就计为1,出现2次,则计为2,以此类推,然后用&连接符,把部门名称和计数连接起来,就得到了市场部1、市场部2……我们就得到了一个唯一的辅助列。

接着,我们使用VlOOKUP函数来查找,查找值就是市场部1、市场部2…所以,我们希望可以有一个公式,往右拖动的时候,自动变成1、2、3、4……,COLUMN函数刚好可以实现。

=COLUMN(A:A)

图3:COLUMN函数构造序列

我们把这个数字,和部门结合起来查询,就可以查到这个部门下的所有员工了,查找公式如下:

=VLOOKUP($F2&COLUMN(A:A),$A:$D,4,0)

图4:VLOOKUP函数一对多查找

所以使用VLOOKUP函数,查找起来还是有点绕的,如果你使用的Excel版本是2021版,那么可以使用Filter函数来解决这个问题。

FIlter函数如何解决?

Filter函数的语法很简单,只有3个参数:

=FILTER(要返回内容的数据区域,指定的条件,[没有记录时返回的内容])

在这个问题中,我们输入公式,就可以直接查出来:

=FILTER(D:D,B:B=F2)

图5:Filter函数查找

但这个查出来的是竖版,我们通过转置公式TRANSPOSE,把结果变成竖版,然后往下填充即可。

=TRANSPOSE(FILTER(D:D,B:B=F2))

图6:查询结果转置

是不是就方便多了?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230314A073DB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券