这是最近被问到的一个“难题”,每个人学习多个学科,如何通过VLOOKUP函数把他们的科目查询出来?
我看了一下,我告诉他这个问题呀,他不适合VLOOKUP函数
因为VLOOKUP函数只能返回首次满足条件的内容,这个是VLOOKUP的限制,设计如此~
=VLOOKUP(D2,A:B,2,)
双VLOOKUP处理
如果我们非要使用VLOOKUP来处理,那么可以通过辅助列的方法来处理!
▍添加辅助列
这个辅助列是什么意思,其实就是循环或者递归的一个思路,我们把下面的结果引用过来和当前值拼接到一起,比如第二行,一开始C3是没有值的,但是随着我们下拉公式,直到最后一个有值开始,上面也依次有值,逐层往上~!递归形式,类似老和尚讲故事~
=B2&IFERROR(","&VLOOKUP(A2,A3:$C21,3,),"")
C列的结果就是我们想要的结果,再一次VLOOKUP获取到首个即可!
=VLOOKUP(E2,A:C,3,)
但是真的这个非常麻烦,而且新手基本很难听懂,涉及到循环递归啥的~那推荐使用啥呢?
其实现在有FILTER函数和TEXTJOIN函数了,这种问题就非常简单了
FILTER+TEXTJOIN
非常的简洁易懂,FILTER筛选对应姓名的科目,结果是一个数组,TEXTJOIN第一个参数指定合并的间隔符,第二参数默认即可,第三参数把FILTER筛选出来的科目放进去即可得到合并后的文本
=TEXTJOIN(",",,FILTER($B$2:$B$21,$A$2:$A$21=E2))
关键是这两个函数WPS都可以使用
打开你的WPS快去试试吧!
新手阶段我们认识的函数比较少,思路经常困在一个函数上,随着我们的学习和积累,你会发现一个问题其实解法非常多,不要一个函数上耗死~
怎么样,你学会了吗?
有帮助,还请多多“点赞”和“分享”!这是对小编最大的认可!