vlookup重複值順序匹配Excel兩列有相同內容但順序不同如何匹配資料

2021-03-09 03:06:09 字數 6209 閱讀 8979

1樓:匿名使用者

e2陣列公式,輸入完成後不要直接回車,要按三鍵  ctrl+shift+回車  下拉。

=if(d2="","",index(b:b,**all(if(a$2:a$999=d2,row($2:$999),4^8),countif(d$2:d2,d2)))&"")

if(a$2:a$999=d2,row($2:$999),4^8)

公式這部份是判斷a2:a999區域有多少個是等於d2(甲),如果等於的就返回對應的行號row(2:999),否則就返回4^8=65536行。

countif(d$2:d2,d2)

d$2:d2下拉時變為d$2:d3、d$2:

d4。。。這樣一個拉伸的區域,從而判斷d列的值是第幾次現次,再把這個第幾次的值返回給前面的**all函式,從而讀取上面公式返回的第幾個相同的行號的值。再把這個值返回給index函式,index(b:

b....),最終返回相應的b列的值。

2樓:怦然心動晒

haoa,我是不是你最疼愛啊的人

excel 兩列有相同內容,但順序不同如何匹配資料

3樓:有錢哥哥

可以用vlookup。

1、電腦開啟excel**。

2、開啟excel**後,輸入公式=vlookup(b3,a3:a6,1,0)。

3、輸入公式回車確認後,如果沒有相同的就會顯示錯誤。

4、下拉複製,如果有相同的,就會顯示名字。

4樓:一張一馳

因為沒有看到具體資料,所以無法明確如何匹配,一般情況下可以使用vlookup來進行匹配

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 可能返回不正確或意外的值。有關詳細資訊,請參閱 clean 和 trim。

在搜尋數字或日期值時,請確保 table_array 第一列中的資料未儲存為文字值。否則,vlookup

可能返回不正確或意外的值。有關詳細資訊,請參閱將儲存為文字的數字轉換為數字值。

如果 range_lookup 為 false 且 lookup_value 為文字,則可以在 lookup_value 中使用萬用字元、問號 (?)

和星號 (*)。問號匹配任意單個字元;星號匹配任意字元序列。如果要查詢實際的問號或星號,請在該字元前鍵入波形符 (~)。

示例 1

如果將示例複製到一個空白工作表中,可能會更易於理解。

如何複製示例

建立一個空白工作簿或工作表。

在幫助主題中選擇示例。

註釋 請不要選擇行或列標題。

從幫助中選擇示例

按 ctrl+c。

在工作表中,選擇單元格 a1,然後按 ctrl+v。

若要在檢視結果和檢視返回結果的公式之間切換,請按 ctrl+`(重音符),或在「公式」選項卡的「公式稽核」組中,單擊「顯示公式」按鈕。

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

3456

78910

abc密度

粘度溫度

0.457

3.55

5000.525

3.25

4000.616

2.93

3000.675

2.75

2500.746

2.57

2000.835

2.38

1500.946

2.17

1001.09

1.95

501.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

如果將示例複製到一個空白工作表中,可能會更易於理解。

如何複製示例

建立一個空白工作簿或工作表。

在幫助主題中選擇示例。

註釋 請不要選擇行或列標題。

從幫助中選擇示例

按 ctrl+c。

在工作表中,選擇單元格 a1,然後按 ctrl+v。

若要在檢視結果和檢視返回結果的公式之間切換,請按 ctrl+`(重音符),或在「公式」選項卡的「公式稽核」組中,單擊「顯示公式」按鈕。

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

3456

abcd

貨品 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

如果將示例複製到一個空白工作表中,可能會更易於理解。

如何複製示例

建立一個空白工作簿或工作表。

在幫助主題中選擇示例。

註釋 請不要選擇行或列標題。

從幫助中選擇示例

按 ctrl+c。

在工作表中,選擇單元格 a1,然後按 ctrl+v。

若要在檢視結果和檢視返回結果的公式之間切換,請按 ctrl+`(重音符),或在「公式」選項卡的「公式稽核」組中,單擊「顯示公式」按鈕。

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

3456

7abc

deid姓

名職務出生日期

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 的員工,將三個單元格的值連

EXCEL中VLOOKUP如果解決兩個關鍵字影印貼上的問題

sumproduct sheet2 a2 c6 a2 sheet2 b2 b6 b2 sheet2 c2 c6 請看圖,輸入的公式b2 vlookup a2,sheet2 a c,2,c2 vlookup a2,sheet2 a c,3,用巨集寫個函式 下面函式假設sheet2中的相應內容也在abc...

excel中怎麼對比兩列重複資料

設兩列的資料為c d列,如要判斷c2的內容在d列是否重複,由可在e2輸入公式 if countif d d,c1 0,重複 下拉填充。如要判斷d2的內容在c列是否重複,由可在f2輸入公式 if countif c c,d1 0,重複 下拉填充。使用vlookup可以的 或者使用countif返回值大...

excel利用函式公式,提取兩列不重複資料,並輸出到某列

方法 excel 利用函式公式,提取兩列不重複資料,並輸出到某列?5 把a列和b列的資料都複製到c列,然後選中c列,點選資料 刪除重複 excel怎樣快速分出兩組資料的不相同資料 用excel函式在兩列資料中提取不同的資料來?在d1中輸入 countif b b,a1 然後往下填充 出現1就是說明跟...