用VLOOKUP函式。
VLOOKUP函式說明如下:
在表格或數值陣列的首列查詢指定的數值,並由此返回表格或陣列中該數值所在行中指定列處的數值。
這裡所說的“陣列”,可以理解為表格中的一個區域。陣列的列序號:陣列的“首列”,就是這個區域的第一縱列,此列右邊依次為第2列、3列……。假定某陣列區域為B2:E10,那麼,B2:B10為第1列、C2:C10為第2列……。
語法:
VLOOKUP(查詢值,區域,列序號,邏輯值)
“查詢值”:為需要在陣列第一列中查詢的數值,它可以是數值、引用或文字串。
“區域”:陣列所在的區域,如“B2:E10”,也可以使用對區域或區域名稱的引用,例如資料庫或資料清單。
“列序號”:即希望區域(陣列)中待返回的匹配值的列序號,為1時,返回第一列中的數值,為2時,返回第二列中的數值,以此類推;若列序號小於1,函式VLOOKUP 返回錯誤值 #VALUE!;如果大於區域的列數,函式VLOOKUP返回錯誤值 #REF!。
“邏輯值”:為TRUE或FALSE。它指明函式 VLOOKUP 返回時是精確匹配還是近似匹配。如果為 TRUE 或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小於“查詢值”的最大數值;如果“邏輯值”為FALSE,函式 VLOOKUP 將返回精確匹配值。如果找不到,則返回錯誤值 #N/A。如果“查詢值”為文字時,“邏輯值”一般應為 FALSE 。另外:
·如果“查詢值”小於“區域”第一列中的最小數值,函式 VLOOKUP 返回錯誤值 #N/A。
·如果函式 VLOOKUP 找不到“查詢值” 且“邏輯值”為 FALSE,函式 VLOOKUP 返回錯誤值 #N/A。
下面舉例說明VLOOKUP函式的使用方法。
假設在Sheet1中存放小麥、水稻、玉米、花生等若干農產品的銷售單價:
A B
1 農產品名稱 單價
2 小麥 0.56
3 水稻 0.48
4 玉米 0.39
5 花生 0.51
…………………………………
100 大豆 0.45
Sheet2為銷售清單,每次填寫的清單內容不盡相同:要求在Sheet2中輸入農產品名稱、數量後,根據Sheet1的資料,自動生成單價和銷售額。設下表為Sheet2:
A B C D
1 農產品名稱 數量 單價 金額
2 水稻 1000 0.48 480
3 玉米 2000 0.39 780
…………………………………………………
在D2單元格里輸入公式:
=C2*B2 ;
在C2單元格里輸入公式:
=VLOOKUP(A2,Sheet1!A2:B100,2,FALSE) 。
如用語言來表述,就是:在Sheet1表A2:B100區域的第一列查詢Sheet2表單元格A2的值,查到後,返回這一行第2列的值。
這樣,當Sheet2表A2單元格里輸入的名稱改變後,C2裡的單價就會自動跟著變化。當然,如Sheet1中的單價值發生變化,Sheet2中相應的數值也會跟著變化。
其他單元格的公式,可採用填充的辦法寫入。
VLOOKUP函式使用注意事項
說到VLOOKUP函式,相信大家都會使用,而且都使用得很熟練了。不過,有幾個細節問題,大家在使用時還是留心一下的好。
一.VLOOKUP的語法
VLOOKUP函式的完整語法是這樣的:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
1.括號裡有四個引數,是必需的。最後一個引數range_lookup是個邏輯值,我們常常輸入一個0字,或者False;其實也可以輸入一個1字,或者true。兩者有什麼區別呢?前者表示的是完整尋找,找不到就傳回錯誤值#N/A;後者先是找一模一樣的,找不到再去找很接近的值,還找不到也只好傳回錯誤值#N/A。這對我們其實也沒有什麼實際意義,只是滿足好奇而已,有興趣的朋友可以去體驗體驗。
2.Lookup_value是一個很重要的引數,它可以是數值、文字字串、或參照地址。我們常常用的是參照地址。用這個引數時,有兩點要特別提醒:
A)參照地址的單元格格式類別與去搜尋的單元格格式的類別要一致,否則的話有時明明看到有資料,就是抓不過來。特別是參照地址的值是數字時,最為明顯,若搜尋的單元格格式類別為文字,雖然看起來都是123,但是就是抓不出東西來的。
而且格式類別在未輸入資料時就要先確定好,如果資料都輸入進去了,發現格式不符,已為時已晚,若還想去抓,則需重新輸入。
B)第二點提醒的,是使用時一個方便實用的小技巧,相信不少人早就知道了的。我們在使用參照地址時,有時需要將lookup_value的值固定在一個格子內,而又要使用下拉方式(或複製)將函式新增到新的單元格中去,這裡就要用到“$”這個符號了,這是一個起固定作用的符號。比如說我始終想以D5格式來抓資料,則可以把D5弄成這樣:$D$5,則不論你如何拉、複製,函式始終都會以D5的值來抓資料。
3.Table_array是搜尋的範圍,col_index_num是範圍內的欄數。Col_index_num 不能小於1,其實等於1也沒有什麼實際用的。如果出現一個這樣的錯誤的值#REF!,則可能是col_index_num的值超過範圍的總欄位數。
二.VLOOKUP的錯誤值處理。
我們都知道,如果找不到資料,函式總會傳回一個這樣的錯誤值#N/A,這錯誤值其實也很有用的。比方說,如果我們想這樣來作處理:如果找到的話,就傳回相應的值,如果找不到的話,我就自動設定它的值等於0,那函式就可以寫成這樣:
=if(iserror(vlookup(1,2,3,0))=true,0,vlookup(1,2,3,0))
這句話的意思是這樣的:如果VLOOKUP函式返回的值是個錯誤值的話(找不到資料),就等於0,否則,就等於VLOOKUP函式返回的值(即找到的相應的值)。
這裡面又用了兩個函式。
第一個是iserror函式。它的語法是iserror(value),即判斷括號內的值是否為錯誤值,如果是,就等於true,不是,就等於false。
第二個是if函式,這也是一個常用的函式的,後面有機會再跟大家詳細講解。它的語法是if(條件判斷式,結果1,結果2)。如果條件判斷式是對的,就執行結果1,否則就執行結果2。舉個例子:=if(D2=””,”空的”,”有東西”),意思是如D2這個格子裡是空的值,就顯示文字“空的”,否則,就顯示“有東西”。(看起來簡單吧?其實程式設計序,也就是這樣子判斷來判斷去的。)
三.含有VLOOKUP函式的工作表檔案的處理。
一般來說,含有VLOOKUP函式的工作表,如果又是在別的檔案裡抓取資料的話,檔案往往是比較大的。尤其是當你使用的檔案本身就很大的時候,那每次開啟和存檔都是很受傷的事情。
有沒有辦法把檔案壓縮一下,加快開啟和存檔的速度呢。這裡提供一個小小的經驗。
下面詳細的說一下它的原理。
1.含有VLOOKUP函式的工作表,每次在儲存檔案時,會同時儲存一份其外部連結的檔案。這樣即使在單獨開啟這個工作表時,VLOOKUP函式一樣可以抓取到數值。
2.在工作表開啟時,微軟會提示你,是否要更新遠端參照。意思是說,你要不要連線最新的外部檔案,好讓你的VLOOKUP函式抓到最新的值。如果你有足夠的耐心,不妨試試。
3.瞭解到這點,我們應該知道,每次單獨開啟含有VLOOKUP函式的工作表時,裡面抓取外部檔案的數值,只是上次我們存檔時儲存的值。若要連結最新的值,必須要把外部檔案同時開啟。
用VLOOKUP函式。
VLOOKUP函式說明如下:
在表格或數值陣列的首列查詢指定的數值,並由此返回表格或陣列中該數值所在行中指定列處的數值。
這裡所說的“陣列”,可以理解為表格中的一個區域。陣列的列序號:陣列的“首列”,就是這個區域的第一縱列,此列右邊依次為第2列、3列……。假定某陣列區域為B2:E10,那麼,B2:B10為第1列、C2:C10為第2列……。
語法:
VLOOKUP(查詢值,區域,列序號,邏輯值)
“查詢值”:為需要在陣列第一列中查詢的數值,它可以是數值、引用或文字串。
“區域”:陣列所在的區域,如“B2:E10”,也可以使用對區域或區域名稱的引用,例如資料庫或資料清單。
“列序號”:即希望區域(陣列)中待返回的匹配值的列序號,為1時,返回第一列中的數值,為2時,返回第二列中的數值,以此類推;若列序號小於1,函式VLOOKUP 返回錯誤值 #VALUE!;如果大於區域的列數,函式VLOOKUP返回錯誤值 #REF!。
“邏輯值”:為TRUE或FALSE。它指明函式 VLOOKUP 返回時是精確匹配還是近似匹配。如果為 TRUE 或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小於“查詢值”的最大數值;如果“邏輯值”為FALSE,函式 VLOOKUP 將返回精確匹配值。如果找不到,則返回錯誤值 #N/A。如果“查詢值”為文字時,“邏輯值”一般應為 FALSE 。另外:
·如果“查詢值”小於“區域”第一列中的最小數值,函式 VLOOKUP 返回錯誤值 #N/A。
·如果函式 VLOOKUP 找不到“查詢值” 且“邏輯值”為 FALSE,函式 VLOOKUP 返回錯誤值 #N/A。
下面舉例說明VLOOKUP函式的使用方法。
假設在Sheet1中存放小麥、水稻、玉米、花生等若干農產品的銷售單價:
A B
1 農產品名稱 單價
2 小麥 0.56
3 水稻 0.48
4 玉米 0.39
5 花生 0.51
…………………………………
100 大豆 0.45
Sheet2為銷售清單,每次填寫的清單內容不盡相同:要求在Sheet2中輸入農產品名稱、數量後,根據Sheet1的資料,自動生成單價和銷售額。設下表為Sheet2:
A B C D
1 農產品名稱 數量 單價 金額
2 水稻 1000 0.48 480
3 玉米 2000 0.39 780
…………………………………………………
在D2單元格里輸入公式:
=C2*B2 ;
在C2單元格里輸入公式:
=VLOOKUP(A2,Sheet1!A2:B100,2,FALSE) 。
如用語言來表述,就是:在Sheet1表A2:B100區域的第一列查詢Sheet2表單元格A2的值,查到後,返回這一行第2列的值。
這樣,當Sheet2表A2單元格里輸入的名稱改變後,C2裡的單價就會自動跟著變化。當然,如Sheet1中的單價值發生變化,Sheet2中相應的數值也會跟著變化。
其他單元格的公式,可採用填充的辦法寫入。
VLOOKUP函式使用注意事項
說到VLOOKUP函式,相信大家都會使用,而且都使用得很熟練了。不過,有幾個細節問題,大家在使用時還是留心一下的好。
一.VLOOKUP的語法
VLOOKUP函式的完整語法是這樣的:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
1.括號裡有四個引數,是必需的。最後一個引數range_lookup是個邏輯值,我們常常輸入一個0字,或者False;其實也可以輸入一個1字,或者true。兩者有什麼區別呢?前者表示的是完整尋找,找不到就傳回錯誤值#N/A;後者先是找一模一樣的,找不到再去找很接近的值,還找不到也只好傳回錯誤值#N/A。這對我們其實也沒有什麼實際意義,只是滿足好奇而已,有興趣的朋友可以去體驗體驗。
2.Lookup_value是一個很重要的引數,它可以是數值、文字字串、或參照地址。我們常常用的是參照地址。用這個引數時,有兩點要特別提醒:
A)參照地址的單元格格式類別與去搜尋的單元格格式的類別要一致,否則的話有時明明看到有資料,就是抓不過來。特別是參照地址的值是數字時,最為明顯,若搜尋的單元格格式類別為文字,雖然看起來都是123,但是就是抓不出東西來的。
而且格式類別在未輸入資料時就要先確定好,如果資料都輸入進去了,發現格式不符,已為時已晚,若還想去抓,則需重新輸入。
B)第二點提醒的,是使用時一個方便實用的小技巧,相信不少人早就知道了的。我們在使用參照地址時,有時需要將lookup_value的值固定在一個格子內,而又要使用下拉方式(或複製)將函式新增到新的單元格中去,這裡就要用到“$”這個符號了,這是一個起固定作用的符號。比如說我始終想以D5格式來抓資料,則可以把D5弄成這樣:$D$5,則不論你如何拉、複製,函式始終都會以D5的值來抓資料。
3.Table_array是搜尋的範圍,col_index_num是範圍內的欄數。Col_index_num 不能小於1,其實等於1也沒有什麼實際用的。如果出現一個這樣的錯誤的值#REF!,則可能是col_index_num的值超過範圍的總欄位數。
二.VLOOKUP的錯誤值處理。
我們都知道,如果找不到資料,函式總會傳回一個這樣的錯誤值#N/A,這錯誤值其實也很有用的。比方說,如果我們想這樣來作處理:如果找到的話,就傳回相應的值,如果找不到的話,我就自動設定它的值等於0,那函式就可以寫成這樣:
=if(iserror(vlookup(1,2,3,0))=true,0,vlookup(1,2,3,0))
這句話的意思是這樣的:如果VLOOKUP函式返回的值是個錯誤值的話(找不到資料),就等於0,否則,就等於VLOOKUP函式返回的值(即找到的相應的值)。
這裡面又用了兩個函式。
第一個是iserror函式。它的語法是iserror(value),即判斷括號內的值是否為錯誤值,如果是,就等於true,不是,就等於false。
第二個是if函式,這也是一個常用的函式的,後面有機會再跟大家詳細講解。它的語法是if(條件判斷式,結果1,結果2)。如果條件判斷式是對的,就執行結果1,否則就執行結果2。舉個例子:=if(D2=””,”空的”,”有東西”),意思是如D2這個格子裡是空的值,就顯示文字“空的”,否則,就顯示“有東西”。(看起來簡單吧?其實程式設計序,也就是這樣子判斷來判斷去的。)
三.含有VLOOKUP函式的工作表檔案的處理。
一般來說,含有VLOOKUP函式的工作表,如果又是在別的檔案裡抓取資料的話,檔案往往是比較大的。尤其是當你使用的檔案本身就很大的時候,那每次開啟和存檔都是很受傷的事情。
有沒有辦法把檔案壓縮一下,加快開啟和存檔的速度呢。這裡提供一個小小的經驗。
下面詳細的說一下它的原理。
1.含有VLOOKUP函式的工作表,每次在儲存檔案時,會同時儲存一份其外部連結的檔案。這樣即使在單獨開啟這個工作表時,VLOOKUP函式一樣可以抓取到數值。
2.在工作表開啟時,微軟會提示你,是否要更新遠端參照。意思是說,你要不要連線最新的外部檔案,好讓你的VLOOKUP函式抓到最新的值。如果你有足夠的耐心,不妨試試。
3.瞭解到這點,我們應該知道,每次單獨開啟含有VLOOKUP函式的工作表時,裡面抓取外部檔案的數值,只是上次我們存檔時儲存的值。若要連結最新的值,必須要把外部檔案同時開啟。