excel中怎麼實現兩個表的比對(重謝)

2022-09-04 01:40:02 字數 6952 閱讀 2011

1樓:匿名使用者

使用vlookup 函式匹配。如果出現#n/a 就是沒有記錄的關於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

1 編號 姓名 工資 科室

2 2005001 周杰倫 2870 辦公室

3 2005002 蕭亞軒 2750 人事科

4 2005006 鄭智化 2680 **科

5 2005010 屠洪剛 2980 銷售科

6 2005019 孫楠 2530 財務科

7 2005036 孟庭葦 2200 工 會

a列已排序(第四個引數預設或用true)

vlookup(2005001,a1:d7,2,true) 等於「周杰倫」

vlookup(2005001,a1:d7,3,true) 等於「2870」

vlookup(2005001,a1:d7,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列沒有排序,要得出正確的結果,第四個引數必須用falae

vlookup(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 中的 v 表示垂直方向。當比較值位於需要查詢的資料左邊的一列時,可以使用 vlookup,而不用 hlookup。

語法 vlookup(lookup_value,table_array,col_index_num,range_lookup)

lookup_value 為需要在**陣列 (陣列:用於建立可生成多個結果或可對在行和列中排列的一組引數進行運算的單個公式。陣列區域共用乙個公式;陣列常量是用作引數的一組常量。

)第一列中查詢的數值。lookup_value 可以為數值或引用。若 lookup_value 小於 table_array 第一列中的最小值,vlookup 將返回錯誤值 #n/a。

table_array 為兩列或多列資料。請使用對區域的引用或區域名稱。table_array 第一列中的值是由 lookup_value 搜尋的值。

這些值可以是文字、數字或邏輯值。不區分大小寫。

col_index_num 為 table_array 中待返回的匹配值的列序號。col_index_num 為 1 時,返回 table_array 第一列中的數值;col_index_num 為 2,返回 table_array 第二列中的數值,以此類推。如果 col_index_num :

小於 1,vlookup 返回錯誤值 #value!。

大於 table_array 的列數,vlookup 返回錯誤值 #ref!。

range_lookup 為邏輯值,指定希望 vlookup 查詢精確的匹配值還是近似匹配值:

如果為 true 或省略,則返回精確匹配值或近似匹配值。也就是說,如果找不到精確匹配值,則返回小於 lookup_value 的最大數值。

table_array 第一列中的值必須以公升序排序;否則 vlookup 可能無法返回正確的值。可以選擇「資料」選單上的「排序」命令,再選擇「遞增」,將這些值按公升序排序。有關詳細資訊,請參閱預設排序次序。

如果為 false,vlookup 將只尋找精確匹配值。在此情況下,table_array 第一列的值不需要排序。如果 table_array 第一列中有兩個或多個值與 lookup_value 匹配,則使用第乙個找到的值。

如果找不到精確匹配值,則返回錯誤值 #n/a。

說明 在 table_array 第一列中搜尋文字值時,請確保 table_array 第一列中的資料沒有前導空格、尾隨空格、不一致的直引號(' 或 ")、彎引號(『或「)或非列印字元。在上述情況下,vlookup 可能返回不正確或意外的值。有關用於清除文字資料的函式的詳細資訊,請參閱文字和資料函式。

在搜尋數字或日期值時,請確保 table_array 第一列中的資料未儲存為文字值。否則,vlookup 可能返回不正確或意外的值。有關詳細資訊,請參閱將儲存為文字的數字轉換為數字值。

如果 range_lookup 為 false 且 lookup_value 為文字,則可以在 lookup_value 中使用萬用字元、問號 (?) 和星號 (*)。問號匹配任意單個字元;星號匹配任意字串行。

如果您要查詢實際的問號或星號本身,請在該字元前鍵入波形符 (~)。

示例 1

本示例搜尋大氣特徵表的「密度」列以查詢「粘度」和「溫度」列中對應的值。(該值是在海平面 0 攝氏度或 1 個大氣壓下對空氣進行測定的結果。)

1 23 45 67 89 10

a b c

密度 粘度 溫度

0.457 3.55 500

0.525 3.25 400

0.616 2.93 300

0.675 2.75 250

0.746 2.57 200

0.835 2.38 150

0.946 2.17 100

1.09 1.95 50

1.29 1.71 0

公式 說明(結果)

=vlookup(1,a2:c10,2) 使用近似匹配搜尋 a 列中的值 1,在 a 列中找到小於等於 1 的最大值 0.946,然後返回同一行中 b 列的值。(2.17)

=vlookup(1,a2:c10,3,true) 使用近似匹配搜尋 a 列中的值 1,在 a 列中找到小於等於 1 的最大值 0.946,然後返回同一行中 c 列的值。(100)

=vlookup(.7,a2:c10,3,false) 使用精確匹配在 a 列中搜尋值 0.7。因為 a 列中沒有精確匹配的值,所以返回乙個錯誤值。(#n/a)

=vlookup(0.1,a2:c10,2,true) 使用近似匹配在 a 列中搜尋值 0.

1。因為 0.1 小於 a 列中最小的值,所以返回乙個錯誤值。

(#n/a)

=vlookup(2,a2:c10,2,true) 使用近似匹配搜尋 a 列中的值 2,在 a 列中找到小於等於 2 的最大值 1.29,然後返回同一行中 b 列的值。

(1.71)

示例 2

本示例搜尋嬰幼兒用品表中的「貨品 id」列,並在「成本」和「漲幅」列中查詢與之匹配的值,以計算**和測試條件。

1 23 45 6a b c d

貨品 id 貨品 成本 漲幅

st-340 童車 ¥145.67 30%

bi-567 圍嘴 ¥3.56 40%

di-328 尿布 ¥21.45 35%

wi-989 柔濕紙巾 ¥5.12 40%

as-469 吸出器 ¥2.56 45%

公式 說明(結果)

= vlookup("di-328", a2:d6, 3, false) * (1 + vlookup("di-328", a2:d6, 4, false)) 漲幅加上成本,計算尿布的零售價。

(¥28.96)

= (vlookup("wi-989", a2:d6, 3, false) * (1 + vlookup("wi-989", a2:d6, 4, false))) * (1 - 20%) 零售價減去指定折扣,計算柔濕紙巾的銷售**。

(¥5.73)

= if(vlookup(a2, a2:d6, 3, false) >= 20, "漲幅為 " & 100 * vlookup(a2, a2:d6, 4, false) &"%", "成本低於 ¥20.

00") 如果某一貨品的成本大於或等於 ¥20.00,則顯示字串「漲幅為 nn%」;否則,顯示字串「成本低於 ¥20.00」。

(漲幅為 30%)

= if(vlookup(a3, a2:d6, 3, false) >= 20, "漲幅為: " & 100 * vlookup(a3, a2:

d6, 4, false) &"%", "成本為 ¥" & vlookup(a3, a2:d6, 3, false)) 如果某一貨品的成本大於或等於 ¥20.00,則顯示字串「漲幅為 nn%」;否則,顯示字串「成本為 ¥n.

nn」。(成本為 ¥3.56)

示例 3

本示例搜尋員工表的 id 列並查詢其他列中的匹配值,以計算年齡並測試錯誤條件。

1 23 45 67 a b c d e

id 姓氏 名字 職務 出生日期

1 李 小明 銷售代表 12/8/1968

2 林 彩瑜 銷售部副總 2/19/1952

3 王 志東 銷售代表 8/30/1963

4 潘 金 銷售代表 9/19/1958

5 林 丹 銷售經理 3/4/1955

6 蘇 術平 銷售代表 7/2/1963

公式 說明(結果)

=int(yearfrac(date(2004,6,30), vlookup(5,a2:e7,5, false), 1)) 針對 2004 財政年度,查詢 id 為 5 的員工的年齡。使用 yearfrac 函式,以此財政年度的結束日期減去出生日期,然後使用 int 函式將結果以整數形式顯示。

(49)

=if(isna(vlookup(5,a2:e7,2,false)) = true, "未找到員工", vlookup(5,a2:e7,2,false)) 如果有 id 為 5 的員工,則顯示該員工的姓氏;否則,顯示訊息「未找到員工」。

(林)當 vlookup 函式返回錯誤值 #na 時,isna 函式返回值 true。

=if(isna(vlookup(15,a3:e8,2,false)) = true, "未找到員工", vlookup(15,a3:e8,2,false)) 如果有 id 為 15 的員工,則顯示該員工的姓氏;否則,顯示訊息「未找到員工」。

(未找到員工)

當 vlookup 函式返回錯誤值 #na 時,isna 函式返回值 true。

=vlookup(4,a2:e7,3,false) & " " & vlookup(4,a2:e7,2,false) & "是" & vlookup(4,a2:

e7,4,false) & "。" 對於 id 為 4 的員工,將三個單元格的值連線為乙個完整的句子。(潘金是銷售代表。

)註釋 上例中的第乙個公式使用的是 yearfrac 函式。如果該函式不可用並返回錯誤 #name?,請安裝和載入「分析工具庫」載入巨集。

操作方法

在「工具」選單上,單擊「載入巨集」。

在「可用載入巨集」列表中,選中「分析工具庫」框,然後單擊「確定」。

如何excel中篩選兩個表中相同的資料

如何篩選兩個excel 間的相同資料?兩個 如何篩選相同資料 如何把兩個excel 中相同的資料篩選出來,並放在第三個 中 步驟一 襲步驟二bai 步驟三 du 步驟四 zhi 步驟五 步驟六 步驟七dao 步驟八 步驟九 1.將兩 bai個工作表放在一個視窗中,如圖du所示 sheet1是全zhi...

mybatis怎麼實現根據id顯示兩個表的內容連線

可以通過關係對映查詢出來 請看下面 在mybatis中,沒有級聯的概念,但是可以利用集合來實現類似的功能。mybatis3.0新增了association和collection標籤專門用於對多個相關實體類資料進行級聯查詢,但仍不支援多個相關實體類資料的級聯儲存和級聯刪除操作。因此在進行實體類多對多對...

在兩個excel工作表中篩選相同的資訊如何操作

1.將兩個工作表放在乙個視窗中,如圖所示 sheet1是全部學生的,sheet2是某班學生花名。2.在sheet1相對應名字同一行的空白出輸入 if countif 3.然後切換到sheet2,選中全部名字並回車。4.再切換到sheet1,這時這個函式變成了 if countif sheet2 a1...