Excel教程:任意条件查数据,简单才是硬道理

分享一个数据查询有关的内容,先看数据源:

左侧是员工信息表,右侧是查询区域,希望在G4输入任意姓名或者任意部门,就能在右侧提取出符合条件的全部记录。

要实现这样的数据提取效果,其实特别简单,接下来咱们就看看具体的操作步骤。

步骤1

在G4单元格输入要查询的内容,比如 销售部。

步骤2

在第一行数据的左侧,本例是A4单元格,输入以下公式,向下拖动:

=(C4=G$4)+(B4=G$4)+A3

公式是什么意思呢?

如果C4单元格中的部门等于G4要查询的部门,或者是B4单元格中的姓名等于G4单元格要查询的姓名,就在上一个单元格的基础上加上1,否则仍然是上一个单元格中的内容。

观察公式下拉后的效果,可以看到,只要C列的部门名称等于G4单元格中的部门,得到的结果正好是一串递增的序号1……2……3……

这些序号干嘛用呢?不着急,往下看。

步骤3

在I4单元格输入公式,向右向下复制,就可以得到查询结果了:

=IFERROR(VLOOKUP(ROW(A1),$A:$E,COLUMN(B1),0),"")

这个公式又是啥意思呢?

这里面的主角是VLOOKUP函数,要查询的内容是ROW(A1),ROW的作用是返回参数所在的行号,这里得到的结果就是A1的行号——1,当公式向下复制时,会依次变成ROW(A2)、ROW(A3)……,结果就是从1开始的递增序号1、2、3……。

也就是说,在不同行中VLOOKUP函数的查找内容是不一样的,在第四行时,查找的内容是1,公式到了第五行,查询的内容就是2了。

再看看VLOOKUP函数查询的区域是哪里呢?$A:$E ,这个写法表示A~E列的整列区域,并且使用了绝对引用。

说到这里,有小伙伴们已经知道咱们前面用公式得到的那些序号是干嘛用的了,对,就是协助VLOOKUP查询用的。

前面的序号特点是每遇到一个符合条件的记录,序号就加上1,而VLOOKUP要查询的内容就是序号1、2、3……

再来看COLUMN(B1)是干啥用的呢?她的作用和ROW函数类似,是返回参数的列号的,COLUMN(B1),得到的就是B1的列号2。公式向右复制时,会依次变成COLUMN(C1)、COLUMN(D1)……,结果就是从2开始的递增序号2、3、4……

得到的序号再给VLOOKUP函数当小三,不对不对,是当成第三参数,用来指定返回查询区域中哪一列的内容。

当公式在I列时,返回查询区域第二列的内容,公式向右复制到了J列,那就是返回查询区域第三列的内容了,以此类推。

小伙伴可能会说了,A列还有那么多重复的序号啊,没关系,因为VLOOKUP函数有个特点,就是如果有多个符合条件的记录,只会返回第一条。所以在I4单元格查询1的时候,得到序号1对应的姓名兰花,在I5单元格查询2的时候,得到序号2对应的姓名枣花……

最外面的这个IFERROR是干啥用的呢? 她啊,是用来给VLOOKUP屏蔽错误值的。

因为VLOOKUP每一行中的查询序号都不一样,当公式一直下拉时,这个序号就会不断增加,当查询的序号在A列没有出现时,说明左侧记录中没有这么多符合条件的内容了,公式会返回错误值。所以,咱们使用IFERROR函数把错误值变成了空文本。

图片

练手文件在此,你也试试吧:

链接:https://www.aliyundrive.com/s/H3ZRUvxawRL

AI助手