北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

FILTER+ISNUMBER+MATCH函数实现同条件多值查找

大家好,今天我们要解决的问题是FILTER函数+ISNUMBER函数+MATCH函数实现同条件多值查找。如下图所示:

左边的表格是店铺的销售数据,现在需要查找指定小区下面的所有店铺以及他们的销售数据,

在这里实际上是一个多条件查找,可以使用FILER函数来查找,这些条件之间是一个或的关系,也就是只要满足其中的一个条件就是符合要求的,那么就可以用加号来连接多个条件,在这里呢,有三个条件,写加号的话看起来会比较复杂,今天就用一种新的方法。

观察数据可知,要查找的小区实际上都是销售数据表A列这一列里面的小区:

这种情况下就可以使用FILTER函数搭配ISNUMBER函数和MATCH函数来实现。

先用MATCH函数去寻找小区这一列当中的每一个值在我们指定的条件区域当中所处的位置:在目标单元格中输入公式:=MATCH(A2:A20,F2:H2,0)

MATCH函数的作用是在一个区域中查找一个特定的值,并返回该值在区域中的相对位置。

MATCH函数的第一参数为 要查找的值 在我们的公式里是A2:A20,注意这里不是单个值,而是一个数组,MATCH函数会分别用A2,A3,...,A20去查找。

第二参数 查找的范围 在公式里面是F2:H2,

意味着MATCH函数会将A列中每个单元格的值在F2:H2这个区域中的相对位置给查找出来。

第三参数为0,表示精确匹配,这个参数必须写,否则有可能会出错:

输入公式之后回车就可以得到一组结果列:

此时MATCH函数返回的数组,这个数组的长度与A2:A20的行数是相同的,

对于A2:A20中的每一个单元格,如果在F2:H2中找到相同的值,则返回该值在F2:H2中的位置(具体为一个数字)否则返回错误值:

这个时候就可以发现返回数值的这些单元格都是满足条件的,错误值就是不满足条件的,那我们只需要把这些数值转换成逻辑值,把这些逻辑真值给到FILTER函数作为条件,就可以实现查找了。

接着在MATCH函数的外层嵌套一个ISNUMBER函数,ISNUMBER函数会判断值是否是数字,如果是数字,返回TRUE,如果不是,返回FALSE。

在这里也是一样,ISNUMBER函数会检查MATCH函数返回的数组中的每个元素,因为MATCH返回的位置是数字(如果找的得到),找不到则返回NA错误(非数字),所有ISNUMBER函数会将找到的数字转为逻辑值TRUE,找不到的转为FALSE。

逻辑值TRUE就是符合条件的,这个时候外面在嵌套一个FILTER函数,FILTER函数的第一参数就是我们要返回的一个数据区域:

FILTER函数的条件就是刚刚我们用MATCH函数和ISNUMBER函数得出来的逻辑值数组,TRUE表示保留该行,FALSE表示过滤该行:

最后将括号打上,回车就可以得到需要的结果了。点击更换小区的话也可以得到不同的结果:

单元格的下拉菜单的制作方法:选中要设置的单元格,找到数据选项卡下面的下拉列表:

从单元格选择下拉选项里面选中A列的所有单元格:

确定之后就可以得到下拉列表了,这里不用管他是否重复,系统会自动筛选掉重复值。

好了,今天又分享了一个小技巧,如果有不懂的地方,可以打在评论区一起讨论一下,对您有帮助的话,帮忙点个赞吧!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言