如下圖: 現在我們想將 F1:G4 的資料填入A1:B12 中。也就是比較左右兩邊表格,將具有相同座號的地點填入左方的表格。
希望的結果如下圖
在上面這個例子中,找不到相同座號的地址就填入0。現實的例子中,左右兩個表格都可能非常大,若用人工方式填入,會累死人的!
現在我們就用EXCEL來完成這個例子。
第一步就是將兩個表格依相同的欄位排序,上面這個例子已經排序完成。
第二步: 在 B2的格子內填入
=vlookup(a2, f2:g4, 2)
其中第1個參數代表欲比較的鍵值,
第2個參數就是要比較的矩陣,
第3個參數代表如果比較成功,要顯示的第2個參數內的欄位位址
為了要能快速複製B2內的函數,需將第2個參數以絕對位址表示,也就是 $f$2:$g$4
結果如下
在B5中,由於右方表格中沒有座號為2013的欄位值,電腦會自動找小於該值的地區值來取代,也就是"桃園"。在B2中,右方表格也沒有2010的欄位值,且也沒有比2010小的地區值,所以呈現 #N/A。
若要兩邊的座號值完全相同才顯示地區值時,在vlookup函式中要加入第4個參數: false。電腦預設第4個參數值是TRUE,沒有加入第4個參數就代表是TRUE。
現在將B2改成 =vlookup(a2, $f$2:$g$4, 2, false)
並自動填滿至B12, 其結果如下
以上結果雖然正確,但對於沒有相同鍵值的結果顯示 #N/A,這有點惱人!為了消除這個討厭的 #N/A,我們可以利用 =ISNA() 這個函式。
當參數等於 #N/A 時,ISNA(參數) 傳回TRUE,
否則傳回FALSE。
因此 B2 修訂為 =if(isna(vlookup(a2, $f$2:$g$4, 2, false) ), "0", vlookup(a2, $f$2:$g$4, 2, false))
這就是我們要的結果。
如果表格是橫列式的,就改用HLOOKUP取代VLOOKUP,此處就不用多說了!
-- END ---
謝謝,不過vslookup多一個s
回覆刪除感謝您的提醒, 已修訂完成!
刪除第一個參數是不是應該改成 a2:a12 ?
回覆刪除No!
刪除B2內的值利用a2為索引值去f2:g4去找相對應的答案, 並非用一個陣列去找。
謝謝您的分享,真好用!
回覆刪除