今天用excel處理資料時遇到一個問題, 借助vlookup公式得以順利解決, 因為對vlookup公式不熟悉, 過程很費了一番功夫。 查閱了一些關於vlookup公式的幫助文檔, 再一次感歎EXCEL功能的強大和自己的好學, 想起以前經常看到有人在簡歷裡面寫精通office軟體, 我又一次警告自己千萬別這麼說。
http://nicelife.me
【Loong精選】在本文中整理了excel中vlookup公式的一些基本用法並結合實例進行了解釋,
記錄在此作為備忘,
如果其他朋友遇到類似問題時能有所幫助就更好了。
實例
背景:有A、B兩張資料表, A表中有一列是城市名, 另外一列是大區名待補充, B表中有一列城市名有一列大區名, A、B表中城市名的順序不一致, 所以無法通過直接複製B表中的大區列來完成A表。 如下圖所示:
http://nicelife.me
http://nicelife.me
問題:
希望通過對比A、B表中的城市名在B表中找到城市所對應的大區並將結果自動複製到A表中的大區列中,
解決方法:
使用vlookup公式“=VLOOKUP(A2,[B.xls]Sheet1!$A$2:$B$6,2,FALSE)”
詳細解釋:
先看一下vlookup公式的語法和參數說明。
vlookup語法
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
第一個參數lookup_value(必需)
要查找的值(可以理解為搜索關鍵字)。 此值必須要在第二個參數table_array指定的查找區域的第一列中。
第二個參數table_array(必需)
操作區域(可以理解為資料庫)。 此參數指定要查找和返回的儲存格的範圍, 也就是說將要在哪些儲存格中查找和要返回的結果在哪些儲存格中。
第三個參數col_index_num(必需)
返回結果所在列號。 此參數指定返回值所在列號(列號只在第二個參數指定的操作區域裡面計算,
第四個參數range_lookup(非必需)
精確|模糊匹配開關。 這是一個非必需的參數, 用邏輯值TRUE或FALSE分別表示模糊匹配或精確匹配, 如果不指定, 默認是TRUE(模糊匹配)
TRUE(模糊匹配)時第二個參數table_array裡的第1列必須是已排序過的, 查找操作會匹配一個與查找值最接近的結果。
FALSE(精確匹配)時第二個參數table_array裡的第1列無需排序, 查找操作只精確匹配與查找值相同的結果。
http://nicelife.me
再回到上面的實例, 上述公式“=VLOOKUP(A2,[B.xls]Sheet1!$A$2:$B$6,2,FALSE)”通過在B表Sheet1裡的第1、2列(列A、B)中查找A表中儲存格A2對應的值(蘭州)並在確定行座標後返回查找範圍內的第2列(列B)對應的值(西北)。
注意:上述公式中對A表中儲存格(A2)的引用是相對參照, 所以將公式複製到其他儲存格時此引用也會隨著改變, 例如將公式複製到B3時此引用也相應變成A3, 而對B表Sheet1中的的查找區域引用($A$2:$B$6)則是絕對引用,所以不會隨著公式複製或拖拽到其他位置而改變, 也就是說查找區域是固定的,故而實現了拿A表中A列中各城市逐個到B表中特定的操作區域裡面的第1列搜索的目的。
關於EXCEL中的引用請參考後文《EXCEL中的儲存格引用》
http://nicelife.me
補充說明:
使用vlookup公式時查找值可以使用萬用字元,例如“蘭?”可表示以“蘭”字開頭的任意長度為兩個字的城市,“蘭*”可以表示以“蘭”字開頭的任意長度的字串。如果查找值就是問號(?)或星號(*)本身的話,則以一個波浪符(~)開頭即可,例如“~?”,“~*”
當操作區域裡面的第1列的值是文本類型的時候,其內容不可包含前、後空格、不配對的引號或一些非列印字元。
查找值和操作區域中第1列中的資料類型應保持一致。
也就是說查找區域是固定的,故而實現了拿A表中A列中各城市逐個到B表中特定的操作區域裡面的第1列搜索的目的。關於EXCEL中的引用請參考後文《EXCEL中的儲存格引用》
http://nicelife.me
補充說明:
使用vlookup公式時查找值可以使用萬用字元,例如“蘭?”可表示以“蘭”字開頭的任意長度為兩個字的城市,“蘭*”可以表示以“蘭”字開頭的任意長度的字串。如果查找值就是問號(?)或星號(*)本身的話,則以一個波浪符(~)開頭即可,例如“~?”,“~*”
當操作區域裡面的第1列的值是文本類型的時候,其內容不可包含前、後空格、不配對的引號或一些非列印字元。
查找值和操作區域中第1列中的資料類型應保持一致。