第一篇:關于VLOOKUP函數的用法
關于VLOOKUP函數的用法
“Lookup”的漢語意思是“查找”,在Excel中與“Lookup”相關的函數有三個:VLOOKUP、HLOOKUO和LOOKUP。下面介紹VLOOKUP函數的用法。
一、功能
在表格的首列查找指定的數據,并返回指定的數據所在行中的指定列處的數據。
二、語法
標準格式:
VLOOKUP(lookup_value,table_array,col_index_num , range_lookup)
三、語法解釋
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)可以寫為:
VLOOKUP(需在第一列中查找的數據,需要在其中查找數據的數據表,需返回某列值的列號,邏輯值True或False)
1.Lookup_value為“需在數據表第一列中查找的數據”,可以是數值、文本字符串或引用。
2.Table_array 為“需要在其中查找數據的數據表”,可以使用單元格區域或區域名稱等。
⑴如果 range_lookup 為 TRUE或省略,則 table_array 的第一列中的數值必須按升序排列,否則,函數 VLOOKUP 不能返回正確的數值。
如果 range_lookup 為 FALSE,table_array 不必進行排序。
⑵Table_array 的第一列中的數值可以為文本、數字或邏輯值。若為文本時,不區分文本的大小寫。
3.Col_index_num 為table_array 中待返回的匹配值的列序號。
Col_index_num 為 1 時,返回 table_array 第一列中的數值;
Col_index_num 為 2 時,返回 table_array 第二列中的數值,以此類推。
如果Col_index_num 小于 1,函數 VLOOKUP 返回錯誤值 #VALUE!;
如果Col_index_num 大于 table_array 的列數,函數 VLOOKUP 返回錯誤值 #REF!。
4.Range_lookup 為一邏輯值,指明函數 VLOOKUP 返回時是精確匹配還是近似匹配。如果為 TRUE 或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小于lookup_value 的最大數值;如果 range_value 為 FALSE,函數 VLOOKUP 將返回精確匹配值。如果找不到,則返回錯誤值 #N/A。
四、應用例子
A B C D編號 姓名 工資 科室2005001 周杰倫 2870 辦公室2005002 蕭亞軒 2750 人事科2005006 鄭智化 2680 供應科2005010 屠洪剛 2980 銷售科2005019 孫楠 2530 財務科2005036 孟庭葦 2200 工 會
A列已排序(第四個參數缺省或用TRUE)
VLOOKUP(2005001,A17,2,TRUE)等于“周杰倫”
VLOOKUP(2005001,A17,3,TRUE)等于“2870”
VLOOKUP(2005001,A17,4,TRUE)等于“辦公室”
VLOOKUP(2005019,A1:D7,2,TRUE)等于“孫楠”
VLOOKUP(2005036,A1:D7,3,TRUE)等于“2200”
VLOOKUP(2005036,A1:D7,4,TRUE)等于“工 會”
VLOOKUP(2005036,A1:D7,4)等于“工 會”
若A列沒有排序,要得出正確的結果,第四個參數必須用FALAEVLOOKUP(2005001,A1:D7,2,FALSE)等于“周杰倫”VLOOKUP(2005001,A1:D7,3,FALSE)等于“2870”
VLOOKUP(2005001,A1:D7,4,FALSE)等于“辦公室”VLOOKUP(2005019,A1:D7,2,FALSE)等于“孫楠”VLOOKUP(2005036,A1:D7,3,FALSE)等于“2200”
VLOOKUP(2005036,A1:D7,4,FALSE)等于“工 會”
五、關于TRUE和FALSE的應用
先舉個例子,假如讓你在數萬條記錄的表格中查找給定編號的某個人,假如編號已按由小到大的順序排序,你會很輕松地找到這個人;假如編號沒有排序,你只好從上到下一條一條地查找,很費事。
用VLOOKUP查找數據也是這樣,當第一列已排序,第四個參數用TRUE(或確省),Excel會很輕松地找到數據,效率較高。當第一列沒有排序,第四個參數用FALSE,Excel會從上到下一條一條地查找,效率較低。
筆者覺得,若要精確查找數據,由于計算機運算速度很快,可省略排序操作,直接用第四個參數用FALSE即可。
最近愛上了VLOOKUP,有人還對它進行了更新。因為它的漏洞就是只能返回重復值得第一個值。下面就詳細來敘述一下吧!
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)Lookup_value 為需要在Table_array第一列中查找的數值。
可以為數值、引用或文本字符串。需要注意的是類型必須與table_array第一列的類型一致。查找文本時,文本不區分大小寫;可以使用通配符“*”、“?”。
Table_array 為需要在其中查找數據的數據表。
可以使用對區域或區域名稱的引用、常數數組、計算后的內存數組。對區域引用時,可以引用整列,excel會自動判斷使用區域。
該參數的第一列必須包含查找的內容,其它列包含需返回的內容;返回內容的列序號由下個參數指定。
Col_index_num 為table_array中待返回的匹配值的列序號。
如為1時,返回table_array第一列中的數值;為2,返回table_array第二列中的數值,以此類推。
如果col_index_num小于1,函數 VLOOKUP 返回錯誤值值 #VALUE!;
如果col_index_num大于table_array的列數,函數 VLOOKUP 返回錯誤值 #REF!。
Range_lookup 為一邏輯值,指明函數VLOOKUP返回時是精確匹配還是近似匹配。
如果為TRUE或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小于lookup_value的最大數值;
近似匹配查詢一般用于數值的查詢,table_array的第一列必須按升序排列;否則不能返回正確的結果。
如果range_value為FALSE(或0),函數VLOOKUP將返回精確匹配值。
此時,table_array不必進行排序。如果找不到,則返回錯誤值#N/A;可isna檢測錯誤后使用if判斷去除錯誤信息。
VLOOKUP 經常會出現錯誤的#N/A,下面是幾種可能性: 數據有空格或者數據類型不一致。
可以在lookup_value 前用TRIM()將空格去除。
如果格式不一致,可以將數值強制轉換成文本,lookup_value之后用&跟""表示的空字符串。將文本轉換成數值,lookup_value*1進行運算。假設有以下兩個表格:表1:
姓名 身份證 學科 成績
張三 310111 物理 A
李斯 310112 化學 B王五 310113 政治 A趙六 310114 物理 B
張三 310111 政治 C
趙六 310114 語文 B劉備 310115 英語 D
表2:
姓名 身份證 住址 學科 成績
曹操 319723 陜西馬超 310197 甘肅趙云 319784 黑龍江
李斯 310112 浙江劉備 310115 江蘇張三 310111 上海
請問:如何快速的將表2的學科和成績自動填入?直接使用VLOOKUP即可。示例如下:
=VLOOKUP($B1,Sheet1!$B$1C$5,2,FALSE)
涵義:在Sheet1的單元格區間B1:C5,查找符合條件為:第一列與當前工作表單元格B1的值相等的第二列的值。
$B1 條件值
Sheet1!$B$1C$5 要查找區間(注意:請使用絕對引用)2 查找的結果為區域中的第幾列FALSE 表示精確查找
*具體應用中大家注意各個參數的意義!調整參數來滿足個人需要。
第二篇: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函數我所了解的,也只是這些,大家有什么好的經驗或有什么疑問,歡迎大家提出,一起探討。
excel 用vlookup函數跨表調取數據 2009-03-13 14:12 目標:從全校學生資料中調取本班學生資料
1、下面是總表,有一千個學生的資料,我這里只舉幾項資料,如姓名、性別、出生年月日、學號、民族。
2、插入一個工作表,命名“一(1)班”,這個是自己班學生的名字,班主任當然很快打得出來。
3、現在B2單元格里輸入“=VLOOKUP($A2,總表!$A$2:$E$1000,2,0)”,回車就可以顯示小明的性別了。
注意:輸入內容必須是英文狀態下輸入。
解釋:$A2 代表本工作表要查找的單元格(意思是要到別的工作表查找與這個單元格相同
的內容)
總表!代表要查找的工作表(要在“總表”工作表里查找)
$A$2:$E$1000 找在哪個范圍查找,即A2到E1000這個范圍內
2代表要顯示哪一列的數據,即查找范圍是A2到B7,那A列為第1列,我想顯示B
列的數據,B(性別)列為第2列。
4、選中B2這一格,鼠標移到右下角出現黑十字時,單擊左鍵不放往下拉,拉到最后一名學生再放開,所有的學生的性別就出現了。
5、再回來B2,像上面一步一樣往右拉。
一看效果怎么打橫的全都是性別,別急,再看下一步。
6、選中C2,看看函數欄,原來要顯示的列數還沒改,還是第2列,那“出生年月日”是第3列,就改為3,再回車。
效果出來了,看到出生年月了,然后用上面的方法往下拉,把全班的拉出來。
7、如此類推,把其他列改過來之后,再往下拉,那么就可以顯示所有的資料了。
8、如果一(1)班的班主任做完了,那么其他班的班主任就不用這么麻煩了,只要把自己班的學生名單復制,然后覆蓋一(1)班學生的姓名,其他資料就跟著變了,呵呵!
=VLOOKUP($A1,Sheet2!$A$1:$C$14864,3,0)
第三篇:EXCEL查找與引用函數VLOOKUP的應用法及實例 詳解
EXCEL查找與引用函數VLOOKUP的應用法及實例詳解
在表格或數值數組的首列查找指定的數值,并由此返回表格或數組當前行中指定列處的數值。當比較值位于數據表首列時,可以使用函數 VLOOKUP 代替函數 HLOOKUP。
在 VLOOKUP 中的 V 代表垂直。語法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
VLOOKUP(查找XX,在YY區域中,與查找值相對的第ZZ列的值,方式)lookup_value
為需要在數組第一列中查找的數值。Lookup_value 可以為數值、引用或文本字符串。
如下圖所示,C3單元格即為lookup_value
名稱的引用,例如數據庫或列表。
如下圖所示:C6:F10即為
table_array
為需要在其中查找數據的數據表??梢允褂脤^域或區域
table_array
col_index_num
為table_array中待返回的匹配值的列序號。col_index_num為1時,返回table_array第一列中的數值; col_index_num為2,返回table_array第二列中的數值,以此類推。如果col_index_num小于1,函數VLOOKUP返回錯誤值值#VALUE!; 如果col_index_num大于table_array的列數,函數VLOOKUP返回錯誤值#REF!。
如下圖所示,4表示數據表的第4列,col_index_num
range_lookup
如果 range_lookup 為 TRUE,則 table_array 的第一列中的數值必須按升序排列:?、-
2、-1、0、1、2、?、-Z、FALSE、TRUE;否則,函數 VLOOKUP 不能返回正確的數值。如果 range_lookup 為 FALSE,table_array 不必進行排序。
(通過在“數據”菜單中的“排序”中選擇“升序”,可將數值按升序排列。)為了方便起見,一般選用 FALSE,即表格不必要再按升序又排列一次。
table_array 的第一列中的數值可以為文本、數字或邏輯值。文本不區分大小寫。
如下圖所示,FALSE 即為range_lookup表示第一列的數值不必進行排序
range_lookup 為一邏輯值,指明函數 VLOOKUP 返回時是精確匹配還是近似匹配。如果為 TRUE 或省略,則返回近似匹配值,也就是說,如果找不到精確匹配值,則返回小于 lookup_value 的最大數值;如果 range_value 為 FALSE,函數 VLOOKUP 將返回精確匹配值。如果找不到,則返回錯誤值 #N/A。
說明
如果函數 VLOOKUP 找不到 lookup_value,且 range_lookup 為 TRUE,則使用小于等于 lookup_value 的最大值。
VLOOKUP 返回錯誤值 #N/A。
如果 lookup_value 小于 table_array 第一列中的最小數值,函數
如果函數 VLOOKUP 找不到 lookup_value 且 range_lookup 為 FALSE,函數 VLOOKUP 返回錯誤值 #N/A。
----------------------------對于可能產生錯誤值的防范 將公式進行以下修改
=IF(C3=“",”查詢值為空,請填寫查詢值“,IF(ISERROR(VLOOKUP(C3,C6:F10,4,FALSE))=TRUE,”請檢查參數是否正確",VLOOKUP(C3,C6:F10,4,FALSE)))如下圖所示,如果查找時未指定名稱,則公式的計算結果為“查詢值為空,請填寫查詢值”
如下圖所示,因使用的是FALSE,精確查找,當查找值為“西瓜”時,因該值不在列表中,會產生#N/A 錯誤,但使用公式用,可提示有參數錯誤
上述公式,使用了函數ISERROR檢查是否有錯誤值,如果有興趣你也可以使用函數ERROR.TYPE返回錯誤值對應的數字,從而明確顯示是哪一類型的錯誤,錯誤值對應的數字如下表所示
呵呵,關于VLOOKUP就介紹到這里,祝大家工作愉快!
第四篇:HEX2DEC函數的用法
HEX2DEC函數的用法
來源: http://excel表格制作excel表格的基本操作
HEX2DEC函數:將十六進制數轉換為十進制數
功能說明:將十六進制數轉換為十進制數。
語法表達式:HE2XDEC(number)
參數說明:number:表示需要轉換為十進制的數。使用函數時,該參數可以直接輸入數值,也可以指定單元格。參數位數不能多于10位(40位二進制),其中最高位是符號位,其余39位是數字位。如果是負數,那么用二進制數的補碼表示。
使用說明:如果參數number是不合法的十六進制數,函數將返回錯誤值#NUM!。
如果參數number中包含字母,那么需要加上半角雙引號,否則函數將返回錯誤值#NAME!。如果參數number的位數多于10位,函數也將返回錯誤值#NUM!。
如果參數number中全是數字時,參數中加或不加半角雙引號,返回的結果都相同。如果函數HEX2DEC轉換后的數值的位數比places指定的位數多,函數將返回錯誤值#NUM!。
實際應用:將十六進制數轉換為十進制數。
在單元格B2中輸入公式“=HEX2DEC(A2)”,轉換為十進制數,然后利用自動填充功能,轉換其他數值,如圖11.14所示。
應用說明:在進制轉換的計算中,HEX2DEC函數應用比較廣泛。
上一篇:HEX2BIN函數:將十六進制數轉換為二進制數
下一篇:在excel中如何按分類合并計算
第五篇:excel中if函數的用法
excel如何使用if函數?
IF函數的語法為: =IF(條件,條件成立的返回的值,條件不成立時返回的值)
例 =IF(B7=“",”“,C7/B7)公式說明:公式的意思是如果B7等于空,則在單元格里顯示空,否則顯示C7/B7的結果。
如下圖所示。
二,多條件判斷
在使用IF進行判斷的時候,有時不只是一個條件,而是有多個條件組成的混合條件,這時候該怎么處理呢?
如下圖所示。如果B列和C列有一例為空,則公式就會出錯或出現不符的百分比,這時就需要對兩列進行判斷,看是不是有一列的內容是空值,如果是空值,則不顯示,怎么同時對兩列進行判斷呢?我們可以這樣設置公式 =IF(AND(B2<>”“,C2<>”“),C2/B2,”0%“)公式中借用了and函數,AND函數可以表示兩個條件同時成立,如果同時成立則返回TRUE(正確),有任一個條件不成立就會返回FALSE(錯誤).三IF函數嵌套
IF函數嵌套就是有多個IF函數一層套一層,什么時候會用到IF嵌套呢,是有多個條件要分別判斷時會用到,舉個例子吧。
=IF(B2<60,”不及格“,IF(B2<70,”及格“,IF(B2<85,”良好“,”優秀“)))上面公式中就進行了多次判斷,第一次是判斷是不是小于60,如果小于60則顯示不及格,如果不小于60呢?下面還要進行及格,良好和優秀成績的判斷,所以還需要還再用IF函數。怎么連接呢,很簡單。把下一個IF作為本次IF的第二個參數。即:
=IF(第一個條件,第一個條件成立時返回的值,if(第二個條件,第二個條件成立時返回的值,if(第三個條件,第三個條件成立時返回的值...IF(。)
注意:
1、IF函數只能嵌套七層,不但針對IF,對所有的函數都適合,也就是說函數嵌套函數,不能超過七層。
2、在設置IF公式的時候,如果前面的IF條件成立,后面的就不會再判斷了,所以要合理的設置判斷的條件,不能這樣設置 =IF(A1<100,”ABC“,IF(A1<10,”bcd"))上面的公式中,第二個條件永遠無出頭之日的,因為如果小于10,必然小于100,只會判斷第一個條件而第二個條件沒有被判斷的機會。