?對于Excel的參照性輸入,我們一般會使用數(shù)據(jù)驗證里面的序列功能。常規(guī)下我們用作系列的數(shù)據(jù)源無非就是一個數(shù)據(jù)列表。但這種處理有個很大的問題,那就是如果系列里面的數(shù)據(jù)項太多,那么在下拉列表里面非常難以查找,他就會變成如下圖這般,很多個列表項目全部混在一起,需要用滾動條不停的滾動才能找到。

?以上這種常規(guī)的做法效率非常低,體驗并不好,那么有沒有一種快速定位列表項的辦法呢?當(dāng)然有,且看下面我們怎么實(shí)現(xiàn)它。
1、建立數(shù)據(jù)列表項目的數(shù)據(jù)源。
?在此,為了更加快速的輸入,我們采用助記碼方式,而非直接輸入漢字。畢竟字母輸入的效率肯定比漢字輸入要高。

2、設(shè)置數(shù)據(jù)驗證
?具體辦法是在需要做下拉列表的地方做數(shù)據(jù)驗證,這里我就不廢話了。畢竟大家都知道如何操作。這里最關(guān)鍵的地方有兩點(diǎn):
?第一點(diǎn),就是數(shù)據(jù)來源的設(shè)定。結(jié)合上表,我們在此輸入的數(shù)據(jù)來源的公式為:
=OFFSET($B$1,MATCH("*"&E2&"*",$C$2:$C$11,0),0,COUNTIF($C$2:$C$11,"*"&E2&"*"))
?該公式就不做過多解釋了,這里不是Excel函數(shù)教育的地方。

?第二點(diǎn),出錯警告這里必須去除選項,否則直接沒法完成查找引用。

3、實(shí)際使用場景
?在此,我們在做完數(shù)據(jù)驗證的E2單元格輸入助記碼“tk”,然后單擊下拉框,于是就自動列出了包含助記碼為“tk”的項目名稱。當(dāng)然了,這里助記碼是不分大小寫的。助記碼可以輸入任意字符完成模糊匹配


4、深化助記碼
?執(zhí)行到第三步時,實(shí)際上已經(jīng)完全可以使用了。但鑒于用戶體驗的問題,如果還想更進(jìn)一步,那么助記碼這個都可以使用自定義函數(shù)來自動生成。當(dāng)然了,如果不愿意使用自定義函數(shù),則仍然可以使用手工編制助記碼。但更推薦這種使用函數(shù)自動對全字段取碼的方式,因為這個是全字段拼音簡碼,匹配的范圍要比部分拼音碼要更寬一些。
?函數(shù)取碼的效果如下:

?當(dāng)然了要實(shí)現(xiàn)以上自動生成漢字拼音首字母,我們得先用VBA做一個自定義函數(shù)“PinYin”。如下圖,在VBA編輯器里面插入一個模塊,然后輸入如下代碼:
Function PinYin(ByVal Expression) As String
Dim lngI As Long
Dim strWord As String
Expression = Trim$(IIf(IsNull(Expression), 0, Expression))
For lngI = 1 To Len(Expression)
strWord = Mid$(Expression, lngI, 1)
Select Case Asc(strWord)
Case -20319 To -20284: PinYin = PinYin & "A"
Case -20283 To -19776: PinYin = PinYin & "B"
Case -19775 To -19219: PinYin = PinYin & "C"
Case -19218 To -18711: PinYin = PinYin & "D"
Case -18710 To -18527: PinYin = PinYin & "E"
Case -18526 To -18240: PinYin = PinYin & "F"
Case -18239 To -17923: PinYin = PinYin & "G"
Case -17922 To -17418: PinYin = PinYin & "H"
Case -17417 To -16475: PinYin = PinYin & "J"
Case -16474 To -16213: PinYin = PinYin & "K"
Case -16212 To -15641: PinYin = PinYin & "L"
Case -15640 To -15166: PinYin = PinYin & "M"
Case -15165 To -14923: PinYin = PinYin & "N"
Case -14922 To -14915: PinYin = PinYin & "O"
Case -14914 To -14631: PinYin = PinYin & "P"
Case -14630 To -14150: PinYin = PinYin & "Q"
Case -14149 To -14091: PinYin = PinYin & "R"
Case -14090 To -13319: PinYin = PinYin & "S"
Case -13318 To -12839: PinYin = PinYin & "T"
Case -12838 To -12557: PinYin = PinYin & "W"
Case -12556 To -11848: PinYin = PinYin & "X"
Case -11847 To -11056: PinYin = PinYin & "Y"
Case -11055 To -10247: PinYin = PinYin & "Z"
Case Else: PinYin = PinYin & strWord
End Select
Next
End Function
?完成以上自定義函數(shù)之后就可以在工作簿內(nèi)調(diào)用該函數(shù)了。
?如此,在參照輸入時,只需輸入拼音簡碼,即可快速定位列表項目,比簡單的列表要高效得很多。
創(chuàng)作不易,轉(zhuǎn)載請注明出處!