在日常業(yè)務(wù)處理中,經(jīng)常需要根據(jù)特定條件查詢定位數(shù)據(jù)或按照特定條件篩選數(shù)據(jù)。
例如,在一列數(shù)據(jù)中搜索某個特定值首次出現(xiàn)的位置、查找某個值并返回與這個值對應(yīng)的另一個值、篩選滿足條件的數(shù)據(jù)記錄等。
今天的文章就來介紹一些常用的查找表中數(shù)據(jù)的技巧。
CHOOSE函數(shù)
CHOOSE函數(shù)可以根據(jù)用戶指定的自然數(shù)序號返回與其對應(yīng)的數(shù)據(jù)值、區(qū)域引用或嵌套函數(shù)結(jié)果。使用該函數(shù)蕞多可以根據(jù)索引號從254個數(shù)值中選擇一個。
語法結(jié)構(gòu):
CHOOSE(index_num,value1,value2,...),也可以簡單理解為CHOOSE(索引,數(shù)據(jù)1,數(shù)據(jù)2,......)
參數(shù):
index_num:必需參數(shù),用來指定返回的數(shù)值位于列表中的次序,該參數(shù)必須為1~254的數(shù)字,或者為公式或?qū)Π?~254某個數(shù)字的單元格的引用。如果index_num為小數(shù),在使用前將自動被截尾取整。
value1,value2,...:value1是必需參數(shù),后續(xù)值是可選的。
valuel、value2等是要返回的數(shù)值所在的列表。
這些值參數(shù)的個數(shù)在1~254之間,函數(shù)CHOOSE會基于index_num,從這些值參數(shù)中選擇一個數(shù)值或一項要執(zhí)行的操作。
如果index_num為1,函數(shù)CHOOSE返回valuel;如果index_num為2,函數(shù)CHOOSE返回value2,依次類推。
如果index_num小于1或大于列表中蕞后一個值的序號,函數(shù)將返回錯誤值【#VALUE!】。
參數(shù)可以為數(shù)字、單元格引用、已定義名稱、公式、函數(shù)或文本。
CHOOSE函數(shù)一般不單獨使用,它常常與其他函數(shù)嵌套在一起發(fā)揮更大的作用,提高我們的工作效率。
VLOOKUP函數(shù)雖然具有縱向查找的功能,但其所查找內(nèi)容必須在區(qū)域的第壹列,即自左向右查找。
但與CHOOSE函數(shù)嵌套使用后,就可以實現(xiàn)自由查找了。
雖然CHOOSE函數(shù)和IF函數(shù)相似,結(jié)果只返回一個選項值,但IF函數(shù)只計算滿足條件所對應(yīng)的參數(shù)表達式,而CHOOSE函數(shù)則會計算參數(shù)中的每一個選擇項后再返回結(jié)果。
例如,要在員工檔案表中根據(jù)身份證號碼查找員工姓名和崗位,就可使用VLOOKUP函數(shù)和CHOOSE函數(shù)來實現(xiàn),具體操作步驟如下。
1.輸入計算公式。
在A14:D14單元格區(qū)域中輸入表字段,并對格式進行設(shè)置,在A15單元格中輸入員工身份證號碼,在C15單元格中輸入公式【=VLOOKUP($A15,CHOOSE({1,2,3},$G$2:$G$12,$B$2:$B$12,$D$2:$D$12),2,0)】。
2.復(fù)制公式。
按【Enter】鍵返回第壹個結(jié)果后,使用Excel的自動填充功能,橫向拖動鼠標(biāo)返回員工對應(yīng)的崗位。
3.更改公式返回正確結(jié)果。
但D15返回的崗位結(jié)果并不正確,這時需要將D15單元格公式中VLOOKUP函數(shù)的第3個參數(shù)【2】更改為【3】,即可返回正確的值。
HLOOKUP函數(shù)
HLOOKUP函數(shù)可以在表格或數(shù)值數(shù)組的首行沿水平方向查找指定的數(shù)值,并由此返回表格或數(shù)組中指定行的同一列中的其他數(shù)值。
語法結(jié)構(gòu):
HLOOKUP(lookup_value,table_array,row_index_num,[range_lookup]),也可以理解為HLOOKUP(要查找的值,查找區(qū)域,返回哪一行的值,精確查找/模糊查找)
參數(shù):
lookup_value:必需參數(shù),用于設(shè)定需要在表的第壹行中進行查找的值,可以是數(shù)值,也可以是文本字符串或引用。
table_array:必需參數(shù),用于設(shè)置要在其中查找數(shù)據(jù)的數(shù)據(jù)表,可以使用區(qū)域或區(qū)域名稱的引用。
row_index_num:必需參數(shù),在查找之后要返回匹配值的行序號。
range_lookup:可選參數(shù),是一個邏輯值,用于指明函數(shù)在查找時是精確匹配還是近似匹配。
若為TRUE或被忽略,則返回一個近似的匹配值(如果沒有找到精確匹配值,就返回一個小于查找值的蕞大值)。
如果該參數(shù)為FALSE,該函數(shù)就查找精確的匹配值。
如果這個函數(shù)沒有找到精確的匹配值,就會返回錯誤值【#N/A】。0表示精確匹配值,1表示近似匹配值。
例如,某公司的上班類型分為多種,不同的類型對應(yīng)的工資標(biāo)準(zhǔn)也不一樣,所以在計算工資時,需要根據(jù)上班類型來統(tǒng)計,那么可以先使用HLOOKUP函數(shù)將員工的上班類型對應(yīng)的工資標(biāo)準(zhǔn)查找出來,具體操作步驟如下。
1.輸入計算公式。
選擇【8月】工作表中的E2單元格,輸入公式【=HLOOKUP(C2,工資標(biāo)準(zhǔn)!$A$2:$E$3,2,0)*D2】,按【Enter】鍵,即可計算出該員工當(dāng)月的工資。
2.查看計算結(jié)果。
使用Excel的自動填充功能,計算出其他員工當(dāng)月的工資。
對于文本的查找,該函數(shù)不區(qū)分大小寫。
如果lookup_value參數(shù)是文本,它就可以包含通配符*和?,從而進行模糊查找。
如果row_index_num參數(shù)值小于1,就返回錯誤值【#VALUE!】;如果大于table_array的行數(shù),就返回錯誤值【#REF!】。
如果range_lookup的值為TRUE,那么table_array第壹行的數(shù)值必須按升序排列,即從左到右為...-2,-1,0,1,2...A-Z,FALSE,TRUE;否則,函數(shù)將無法給出正確的數(shù)值。若range_lookup為FALSE,則table_array不必進行排序。
LOOKUP函數(shù)
LOOKUP函數(shù)可以從單行或單列區(qū)域(稱為“向量”)中查找值,然后返回第二個單行區(qū)域或單列區(qū)域中相同位置的值。
語法結(jié)構(gòu):
LOOKUP(lookup_value,lookup_vector,[result_vector]),也可以簡單理解為LOOKUP(查找值,查找范圍(必須升序排列),返回值范圍)
參數(shù):
lookup_value:必需參數(shù),用于設(shè)置要在第壹個向量中查找的值,可以是數(shù)字、文本、邏輯值、名稱或?qū)χ档囊谩?/span>
lookup_vector:必需參數(shù),只包含需要查找值的單列或單行范圍,其值可以是文本、數(shù)字或邏輯值。
result_vector:可選參數(shù),只包含要返回值的單列或單行范圍,它的大小必須與lookup_vector相同。
在使用LOOKUP函數(shù)的向量形式時,lookup_vector中的值必須以升序順序放置,否則LOOKUP函數(shù)可能無法返回正確的值。
在該函數(shù)中不區(qū)分大小寫。
如果在lookup_vector中找不到lookup_value,就匹配其中小于該值的蕞大值;如果lookup_value小于lookup_vector中的蕞小值,就返回錯誤值【#N/A】。
例如,在產(chǎn)品不錯統(tǒng)計表中,記錄了近年來各種產(chǎn)品的不錯數(shù)據(jù),現(xiàn)在需要根據(jù)產(chǎn)品編號查找相關(guān)產(chǎn)品2018年的不錯,使用LOOKUP函數(shù)進行查找的具體操作步驟如下。
1.輸入計算公式。
在A14:B15單元格區(qū)域中進行合適的格式設(shè)置,并輸入相應(yīng)文本,選擇B15單元格,輸入公式【=LOOKUP(A15,A2:A11,D2:D11)】。
2.查看產(chǎn)品不錯。
在A15單元格中輸入相應(yīng)產(chǎn)品的編號,在B15單元格中即可查看到該產(chǎn)品在2018年的不錯。


