回覆列表
  • 1 # 君臨九天snowy

    可以用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函式我所瞭解的,也只是這些,大家有什麼好的經驗或有什麼疑問,歡迎大家提出,一起探討。

  • 中秋節和大豐收的關聯?
  • what's the matter變賓語從句是what the matter is嗎?