▲一顆星星不迷路
我們還是先來看效果再說怎么搞吧!
▼輸入關鍵詞-查找所有包含關鍵詞的結果
這個案例使用到函數比較多,算是比較綜合,如果你每個函數都能搞定,那么進步一定很大!
下面是制作教程和原理說明!
為了更好理解,我們把上面的案例簡化,只保留三列即可說明制作方法和原理!
01 | 是否包含關鍵詞的判斷
我們想要實現模糊查詢,就需要知道哪些名稱是包含這個關鍵詞的,然后才能進行下一步。
在Excel中最適合干這個事情的就是FIND查詢函數!如何包含就找到關鍵詞的起始位置,否則返回錯誤!
所以我們只需要使用+FIND即可實現!
公式▼:商品名稱中是否包含“個”這個關鍵詞
=ISNUMBER(FIND("個",B4))
▼判斷是否包含
現在我們已經通過上一步的判斷可以看到哪些是包含的,這一步,我們就要獲取到行號,有了行號我們就可以逐個提取了!
02 | 獲取滿足條件的行號
第一步的結果TRUE就是滿足條件,同理FALSE不滿足,那么我們就可以使用IF簡單判斷即可!
IF公式,如果我們不寫第三參數,那么就會返回FALSE,簡單演示如下!
上面是我們輔助判斷,我們把第1步和第2步組合起來看一下!▼實戰寫法=IF((FIND("個",$B$2:$B$15)),ROW($B$2:$B$15))非365版本,請選擇多個單元格,Ctrl+回車excel查找關鍵字并篩選出來,觀察結果!
03| 依次提取行號
上面的結果是一個多元素的數組,我們想要把行號提取出來,最好和數據源一致,那么可以使用SMALL函數 - SMALL(數組,第幾小)=SMALL(IF((FIND("個",$B$2:$B$15)),ROW($B$2:$B$15)),ROW(A1))
如果上面的公式,感覺嵌套套多不好理解,那么我們可以使用最新的LET逐步給大家分解公式,方便理解!沒有365的同學還是用上面的,下面只是輔助理解!
04 | 提取數據
有了行號,想要提取數據,我們只需要使用INDEX函數即可!
INDEX(區域,行,列)- 返回行列交叉的數據
我們把第三步的結果作為INDEX的行,列我們使用(A1)來生成excel查找關鍵字并篩選出來,右拉(B1)=2,依次遞增!如果你的列不是聯系,還可以通過MATCH標題匹配,或者手動指定!
但是我們發現上面超出的部分有錯誤,所以最后我們還要做一下容錯,使用函數吧!
▼最終公式=(INDEX($A$1:$C$15,SMALL(IF((FIND("個",$B$2:$B$15)),ROW($B$2:$B$15)),ROW(A1)),(A1)),"")
我們的查詢關鍵詞一般是放在單元格中,所以上面的公式中的“個”習慣為你關鍵詞所在的單元格即可!
使用LET函數,分布看的話,應該就是這樣的!
=LET(
????是否包含,ISNUMBER(FIND("個",$B$2:$B$15)),
????包含的行號,IF(是否包含,ROW($B$2:$B$15)),
????依次提取行號,SMALL(包含的行號,ROW(A1)),
????提取內容,INDEX($A$1:$C$15,依次提取行號,COLUMN(A1)),
????容錯處理,IFERROR(提取內容,""),
????容錯處理
)
你還記得,我們一共使用了哪些函數嗎?一起來總結一下吧!
以上10個函數,你掌握了幾個呢?下面是本文附件,趕緊去試試吧!
本次練習附件:去吧,操練起來!