如何利用Vlookup函數獲取學號中的班級信息。換言之,咱們源數據中放著姓名性別學號班級等信息,而在另一張表格中一定有學號信息,但其他信息就未必有,這需要我們將缺失的信息自動同步過去。使用vlookup函數的確非常簡單,今天我就再次來剖析一下這個函數吧。
一、利用Vlookup函數返回班級名稱
如下圖所示,A表為源數據表,B表則是需要填入缺失班級信息的表格。我們如何快速完成這個同步呢?
上圖的情形是非常簡單的,利用基本的vlookup函數就可以搞定了。vlookup函數共計4個參數:
=vlookup(lookup_value,Table_array,col_num,type)
A表和B表首列都是學號信息,因此我們可以通過利用B表中的學號(lookup_value)到A表(table_array)中進行查詢,然後返回A表中從左右往右數第4列的信息(col_num),z只有B表中的學號在A表中存在時,才返回正確的結果(為0,即精確匹配)。因此正確的公式寫法為:
=VLOOKUP(H4,$A$4:$D$15,4,0)
因為公式需要向下複製,而查詢的範圍永遠都是A表,因此我們在列號和行號加美元($)將其固定住(絕對引用)。
按照這個思路分析,其實本公式還有其他寫法,你看出來了嗎?
參考答案:=VLOOKUP(I4,$B$4:$D$15,3,0)
二、利用vlookup返回多列數據
如下圖所示,A表為數據源表,C表則為需要填入信息的表格,我們如何將A表中的內容快速同步到C表中呢?
通過前面的例子的講解,我相信完全可以通過vlookup函數做到了,只是做法可能會比較笨,演示如下:
需要同步三列信息,因此寫了3條公式,確實夠慢的:
=VLOOKUP(A22,$A$4:$D$15,2,0)=VLOOKUP(A22,$A$4:$D$15,3,0)=VLOOKUP(A22,$A$4:$D$15,4,0)
那麼我們可以一條就可以完成所有信息的同步嗎?答案當然是可以的。通過觀察上述三條公式我們可以發現,三條公式唯一的不同就在於第3參數的不同,如果能利用其它函數得到2,3,4這3個數字,這個公式不就簡化了。因為公式是要向右複製的,因此,我們可以利用column函數來辦到,由於數字是從2開始的,因此我們得到:
=vlookup(A22,$A$4:$D$15,column(b1),0)
然而當我們向右拖動的公式,會發現除了姓名列得到正確的結果,其他列的內容均出現了#NA,這是為什麼呢?
點擊C2單元格,我們發現公式竟然變成了,
=vlookup(B22,$A$4:$D$15,column(C1),0)
第1參數變成了B22,我們希望的是公式複製到C2單元格,第1參數依然是A22,因此我們需要在列號前加一個美元符號($),這樣當公式向右複製時就不再出錯了。最終的公式如下:
=VLOOKUP($A22,$A$4:$D$15,COLUMN(B1),0)
坦白說,前面這種情況算是簡單的,因為A表和C表的列的順序是完全一致的,但假如順序不一致的,使用上述公式顯然就會出錯了,那麼遇到這種情況下,我們該怎麼辦呢?
我們需要找一個函數來代替column函數。那麼這個函數就是match函數(這個函數限於篇幅,我暫不做介紹),演示如下:
=VLOOKUP($A22,$A$4:$D$15,MATCH(B$21,$A$3:$D$3,0),0)
大家可以仔細琢磨一下這個公式。
三、利用vlookup函數靈活返回多列數據
如下圖所示,如何將A表的數據同步到D表中,也許很多同學會說非常簡單。不就是利用vlookup函數來做嗎?
公式沒有問題啊,為什麼會出錯呢?這是因為vlookup函數要求lookup_value在源數據表中只能位於最左側,而且我們返回的列序號是以lookup_value為起點從左往右數的。那麼遇到D表這種情況我們該如何辦呢?我們需要利用函數將table_array中的lookup_value列調整至最左側。最終公式如下:
{=VLOOKUP(I22,IF({1,0},$B$4:$B$15,$A$4:$A$15),2,0)}
我們利用if函數將第2參數中的lookup_value列即學號列調整至了最左側,然後也就達到了目的。但要注意的是,此公式為數組公式,因此輸入完公式後,我們需要按住Ctrl+Shift+Enter組合鍵完成數組公式的錄入,外層的{}可不是直接輸入的哦。
我叫胡定祥,酷愛Excel。頭條號:傲看今朝。自由撰稿人,辦公室er.酷愛Excel,一個有兩把「刷子」的胖子。歡迎關注我,有任何問題,十分歡迎大家在評論區留言。