經常需要對excel中兩個表格通過關聯列進行數據匹配,我們通過VLOOKUP函數來實現。
場景
當前有兩個sheet,考核員工表和全員考核明細表

表1-考核員工表

表2-全員考核明細表
目標:依據兩個表中userid這一列,將表2中對應員工的部門、考核總分、出勤天數匹配給表1對應的員工;
VLOOKUP函數:
=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
第一個參數:指定用哪個單元格去匹配;
第二個參數:指定查找的區域;
第三個參數:指定要返回的數據在查找區域的第幾列;
第四個參數:指定匹配是模糊匹配還是精准匹配。

在知道VLOOKUP函數后我們就可以通過下面的方式來實現我們的目標:
第一步:在表1的C2單元格中插入公式=VLOOKUP(A2,全員考核明細表!A:G,3,0);
第二步:回車后會匹配出對應的部門信息;
第三步:鼠標移到C2單元格的右下角,出現實心的黑色【+】號,雙擊填充此公式到整列;


匹配考核總分這一列時只需要在表1的D2單元格中將查找區域的返回列改為表2的考核總分列,即為=VLOOKUP(A2,全員考核明細表!A:G,4,0);
【注意】
1、VLOOKUP函數的第四個參數用於指定是模糊匹配還是精確匹配,為0時表示精確匹配,為1或省略時表示模糊匹配。如果忘了設置第4個參數則會被公式誤以為是故意省略,按模糊查找進行。
2、引用方式不對使公式復制后產生錯誤
由於沒有使用正確的引用方式,造成在公式復制后查找區域發生變動引起錯誤。如下圖所示,當C9的公式復制到C10和C11后,C10公式返回錯誤值。
錯誤原因:由於第二個參數A2:D6是相對引用,所以向下復制公式后會自動更改為A3:D7,而A10單元格中的工號A01所在的行不在A3:D7區域中,從而造成查找失敗。
解決方案:把第二個參數的引用方式由相對引用改為絕對引用即可。
B9公式改為:=VLOOKUP(A9,$A$2:$D$6,2,0)

參考文章:
