我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
作为一名数据分析师,工作中打交道最多的就是数据,大部分都是用Excel处理,很早之前觉得数据匹配查询只用vlookup函数就够了,但是vlookup函数有个弊端,就是无法反向查找。
如下图所示,用姓名去查找工号,单独用vlookup函数是无法完成的;
平时遇到这种情况,个人最常用的方法就是将数据源中的B列姓名复制到A列工号之前,在利用vlookup函数匹配,但是在遇到表格数据较多,或者表格操作空间较少,这种方法较为耗时,可操作性差。
那么有其它办法吗?下面分享三个可以逆向查找的小技巧,希望对大家有所帮助!
下图的示例中,用姓名去匹配个人工号,在F2单元格输入公式:
=VLOOKUP(E2,IF({1,0},B:B,A:A),2,0)
公式下拉,核对数据,可以发现公式可以正确返回结果。
vlookup第二个参数表示要匹配的区域,这里用IF({1,0},B:B,A:A)代替,if函数的参数1是个数组,其中1代表true,0代表false;
true返回if第二个参数,即B:B列内容,false返回if第三个参数,即A:A列内容,这样,IF({1,0},B:B,A:A)相当于重新组合出一个虚拟数组,数组形式为B(姓名)A(工号),这个虚拟数组组成vlookup函数的参数2,这样给vlookup才能返回正确的结果。
小结:
IF({1,0},B:B,A:A)构建了一个虚拟数组,也就是将查找列与匹配列正向化,使vlookup功能能够正常使用。
这里也可以利用vlookup+choose方法,公式如下:"=CHOOSE({1,2},B:B,A:A)",原理同vlookup+if相似,这里就不在赘述。
这两个函数组合使用功能还是蛮强大的,容易理解,更方便掌握。
第一步,先找出"小天"在B列中的行位置,F2单元格输入:"=match(E2,B:B,0)",函数返回5,核对数据源,小天的确处在B列中的第5行;
第二步,取出A列的第五行的数,即为"小天"的工号,逻辑上大家可以理解吧,F2单元格输入:
=index(A:A,match(E2,B:B,0))
函数返回正确的结果。
注:此法index()有三个参数,这里只用到前两个参数,第三个参数忽略。
原则上lookup可以替代vlookup函数,因为lookup函数可以实现vlookup函数的所有功能,只不过vlookup足够应付大部分的数据匹配被大家熟知。
在F2单元格输入:
=LOOKUP(1,0/(E2=B:B),A:A)
公式下拉,完成匹配。
公式:LOOKUP(查找的值,查找区域,返回区域)
第二个参数"查找区域"的数据必须按升序排列,为了解决升序问题,引入了LOOKUP(0,0/条件,返回区域)来解决这一问题。
觉得麻烦的小伙伴,直接套用公式即可!
相关文章
我们都知道当数据过多的时候,我们制作Excel图表就会显得非常的复杂,图表上面的内容就会特别多。Excel老玩家就会想到用切片器制作动态可变化的图表来显示。今天我们就来学习一下一个比......
2023-01-08
在工作中,可能许多朋友都会碰到一个情况,那就是工作簿和工作表数据的合并操作。如何将上百个工作簿快速合并到一个表格中,许多朋友可能会觉得不可思议。今天我们就来教大家学习一......
2023-01-08
今天在这里为你分享5个Excel文本函数,这些拆分和组合函数,你一定会用上的。①LEFT函数公式:=LEFT(A2,1)在Excel表格中,需要想要拆分汉字,想从哪里开始就从那哪里开始。首先选定单元格......
2023-01-08
相信大家也和我一样,才开始看到Excel可以当做翻译软件的时候会很好奇,这究竟是怎样做到的?其实,这个方法并不是很难,它是由一个函数公式而制作出来的,好了,首先我们一起来看看成......
2023-01-08
函数可以说是所用快捷方法中最为简单的一种方法,为什么很多人认为函数用起来很难了?主要是因为它拥有很长的函数公式,记不住。其实不管是学Excel函数,还是学习其他的一些快捷方法......
2023-01-08