sql server一对多怎么查询_先学完这个技巧,再理解Vlookup函数一对多查询就简单了...

我们模拟一个一对多查询的例子:左边是部门及员工姓名数据,我们需要根据部门,来查找出所有的员工姓名

0ebd334a4eb487fa166bafc98ee6ce5a.png

我们在使用VLOOKUP函数进行查找匹配的时候,如果源数据中有多个值时,它只会查找出第一个值,比如我们在E2输入的公式:

=VLOOKUP(D2,A:B,2,0)

a6d48c3fa9ff35b1cd409c166034f72f.png

那如何才能进行一对多查询呢?如果直接给你一个公式,你可能很难理解为什么这么做。那么在给出公式之前,我们先转化一下思路,如果说,我们左边的数据是不同的,然后我们查找的数据也是不同的,那么用上面的vlookup公式就可以很容易匹配出来

1a9532a0c9a49e4578ac3d78d11a12ec.png

那么一对多查询的问题,就转化成了,如何将最原始的表转换成这个表了

首先是左边的原始数据源处理,我们插入一个辅助列,然后输入的公式是:

=B2&COUNTIF($B$2:B2,B2),COUNTIF函数是用来累计计数的,从上至下累计出现的次数是多少

b909927a40666851e0819d2549f45a78.png

然后就是查找的值进行处理了,我们使用的公式是:

=$E$2&COLUMN(A1),COLUMN(A1)表示的是A1在第几列,就是第1列了,向右填充就得到了2,3,...

5c48d8219b6708b5668266b7aa205ea0.png

所以我们整体使用的公式是:

=VLOOKUP($E$2&COLUMN(A1),$A:$C,3,0)

向右填充

da0ffac3f3dcbe984b6c3abe817d19e6.png

如果我们下方还需要查找财务部的时候,我们可以注意一下查找值E2的相对引用,以及错误值的屏蔽,使用公式是:

=IFERROR(VLOOKUP($E2&COLUMN(A1),$A:$C,3,0),"")

59988bc9a0a06b03899a5904b2bbc8fd.png

关于一对多的查询,你学会了么?动手试一下~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值