不需写代码,Filter函数公式,制作模糊查询器(模糊查询js)
举个工作场景中的例子,比如左边是员工档案数据,现在我们可以制作一个查询器,通过模糊搜索的方式,只需要我们输入关键字,则对应所有内容都显示出来
并且模糊查找的关键字可以是任意的,可以是市场,可以输入张,可以输入男,都可以查询到对应的结果:
这种效果是怎么制作的,无需写代码,只需要一个Filter公式就能搞定
1、Filter基本用法
首先我们来了解一下Fiter公式的基本用法,当我们需要输入姓名关键词,自动获取这个姓名对应的数据时,我们只需要输入的公式是:
=FILTER(A:E,A:A=H1)
FILTER的第一个参数表示在A:E列内进行筛选,第二个参数表示,筛选的A列,以及筛选的值是H1单元格。
但是这个公式不支持模糊搜索,比如我们在姓名里面只输入一个关键字,张的时候,出不来结果,所以我们要继续改进
2、Filter Search实现模糊查找
我们输入的公式是:
=FILTER(A:E,IFERROR(SEARCH(H1,A:A),0))
第2个参数改成了SEARCH公式,就可以对H1单元格的值在A列进行模糊查找,IFERROR可屏幕查找不到的错误值, 这样就可以实现模糊查找
当我们输入一个乔字时,也可以得到相应的结果:
3、Filter多列同时模糊搜索
如果我们关键字既可以输入姓名,又可以输入月份的话,就需要多次的SEARCH查找,所以我们将公式更新为:
=FILTER(A:E,IFERROR(SEARCH(H1,A:A),0) IFERROR(SEARCH(H1,B:B),0))
这样的话,我们输入关键字之后,它既会在A列进行查找,也会在B列进行查找
如果A或B列能查找到相应的结果,则会显示出来,所以这个时候不仅输入姓名关键字能查找到,同时我们输入1月,也可以查找到1月相关的数据:
如果还想查找更多的列,则我们可以多加几个SEACH公式进行查找,如下所示:
=FILTER(A:E,IFERROR(SEARCH(H1,A:A),0) IFERROR(SEARCH(H1,B:B),0) IFERROR(SEARCH(H1,C:C),0) IFERROR(SEARCH(H1,D:D),0) IFERROR(SEARCH(H1,E:E),0),0)
这样的话,就可以在A、B、C、D、E列里面都去查找了,就能实现开头的动图效果了
你学会了么?动手试试吧!