不需寫代碼,F(xiàn)ilter函數(shù)公式,制作模糊查詢器(模糊查詢js)
舉個工作場景中的例子,比如左邊是員工檔案數(shù)據(jù),現(xiàn)在我們可以制作一個查詢器,通過模糊搜索的方式,只需要我們輸入關(guān)鍵字,則對應(yīng)所有內(nèi)容都顯示出來
并且模糊查找的關(guān)鍵字可以是任意的,可以是市場,可以輸入張,可以輸入男,都可以查詢到對應(yīng)的結(jié)果:
這種效果是怎么制作的,無需寫代碼,只需要一個Filter公式就能搞定
1、Filter基本用法
首先我們來了解一下Fiter公式的基本用法,當(dāng)我們需要輸入姓名關(guān)鍵詞,自動獲取這個姓名對應(yīng)的數(shù)據(jù)時,我們只需要輸入的公式是:
=FILTER(A:E,A:A=H1)
FILTER的第一個參數(shù)表示在A:E列內(nèi)進(jìn)行篩選,第二個參數(shù)表示,篩選的A列,以及篩選的值是H1單元格。
但是這個公式不支持模糊搜索,比如我們在姓名里面只輸入一個關(guān)鍵字,張的時候,出不來結(jié)果,所以我們要繼續(xù)改進(jìn)
2、Filter Search實(shí)現(xiàn)模糊查找
我們輸入的公式是:
=FILTER(A:E,IFERROR(SEARCH(H1,A:A),0))
第2個參數(shù)改成了SEARCH公式,就可以對H1單元格的值在A列進(jìn)行模糊查找,IFERROR可屏幕查找不到的錯誤值, 這樣就可以實(shí)現(xiàn)模糊查找
當(dāng)我們輸入一個喬字時,也可以得到相應(yīng)的結(jié)果:
3、Filter多列同時模糊搜索
如果我們關(guān)鍵字既可以輸入姓名,又可以輸入月份的話,就需要多次的SEARCH查找,所以我們將公式更新為:
=FILTER(A:E,IFERROR(SEARCH(H1,A:A),0) IFERROR(SEARCH(H1,B:B),0))
這樣的話,我們輸入關(guān)鍵字之后,它既會在A列進(jìn)行查找,也會在B列進(jìn)行查找
如果A或B列能查找到相應(yīng)的結(jié)果,則會顯示出來,所以這個時候不僅輸入姓名關(guān)鍵字能查找到,同時我們輸入1月,也可以查找到1月相關(guān)的數(shù)據(jù):
如果還想查找更多的列,則我們可以多加幾個SEACH公式進(jìn)行查找,如下所示:
=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列里面都去查找了,就能實(shí)現(xiàn)開頭的動圖效果了
你學(xué)會了么?動手試試吧!