|
我們在上一篇文章中介紹了根據(jù)已有項目生成一級、二級、三級聯(lián)動的下拉菜單的方法。有的時候,我們并不需要在下拉菜單中列出全部項目,尤其是當(dāng)項目比較多的時候。比如企業(yè)的客戶有幾百個,我們并不想在下拉菜單中列出全部的客戶名稱,而是希望在輸入關(guān)鍵字時,下拉菜單中列出僅包含該關(guān)鍵字的所有客戶名稱。本文將介紹如何根據(jù)輸入的關(guān)鍵字,創(chuàng)建含該關(guān)鍵字的下拉菜單。要求:在D2單元格輸入關(guān)鍵字時,下拉菜單列出包含該關(guān)鍵字的所有菜品,并且在選擇菜品后,E2單元格出現(xiàn)對應(yīng)的價格。 1、在G2單元格輸入公式 =IFERROR(INDEX($A$2:$A$13,SMALL(IF(ISNUMBER(SEARCH($D$2,$A$2:$A$13)),ROW($A$2:$A$13)-1),ROW(A1))),"")該公式為數(shù)組公式,公式輸入后按Ctrl+Shift+Enter。拖動填充柄,將G2單元格的公式復(fù)制到G3:G13單元格區(qū)域。G2:G13單元格區(qū)域作為輔助列,列出包含D2關(guān)鍵字的所有菜品。(1)Index+Small+Row函數(shù)組合用于列出包含關(guān)鍵字的所有菜品。關(guān)于Index+Small+Row函數(shù)組合的詳細(xì)解析請閱讀(2)search()函數(shù)用于返還指定的字符在字符串中第一次出現(xiàn)的位置。SEARCH($D$2,$A$2:$A$13)用于確定D2單元格輸入的關(guān)鍵字是否包含在A2:A13單元格中的各菜品名稱中。如果菜品名稱不包含關(guān)鍵字,函數(shù)將返回錯誤值。(3)isnumber()函數(shù)是一個邏輯判斷函數(shù)。ISNUMBER(SEARCH($D$2,$A$2:$A$13))結(jié)果為True或False,當(dāng)菜品名稱包含關(guān)鍵字時,返回True,當(dāng)菜品名稱不包含關(guān)鍵字時,返回False。IF(ISNUMBER(SEARCH($D$2,$A$2:$A$13)),ROW($A$2:$A$13)-1)用于返回包含關(guān)鍵字的菜品名稱出現(xiàn)在A2:A13單元格區(qū)域的第幾行。2、選中D2單元格,點擊【數(shù)據(jù)】選項卡下的【數(shù)據(jù)驗證】按鈕,在彈出的對話框中進(jìn)行如下設(shè)置:“允許”選擇“序列”,“來源”輸入公式 =$G$2:$G$13。點擊【數(shù)據(jù)驗證】對話框的【出錯警告】選項卡,取消勾選“輸入無效數(shù)據(jù)時顯示出錯警告”。在E2單元格輸入公式=IFERROR(VLOOKUP(D2,A2:B13,2,FALSE),"")用于根據(jù)D2菜品名稱查找對應(yīng)的價格。
|