ecel中如何同時查詢並替換不同的字串

2021-08-16 15:25:52 字數 5029 閱讀 5066

1樓:匿名使用者

首先製作一張數字與姓名對應的**,然後在用函式vlookup()來實現。

語法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 個大氣壓下對空氣的測定。)

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

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

如何複製示例

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

在幫助主題中選擇示例。

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

從幫助中選擇示例

按 ctrl+c。

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

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

本示例搜尋嬰幼兒用品表中“貨品 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

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

如何複製示例

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

在幫助主題中選擇示例。

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

從幫助中選擇示例

按 ctrl+c。

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

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

本示例搜尋員工表的 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 的員工,將三個單元格的值連線為一個完整的句子。(潘金是銷售代表。)

如何在SQL中替換,SQl 裡 如何替換查詢結果

update 表set a2 case when len a1 18 thencase when substring a1,17,1 in 1 3 5 7 9 then 01 else 02 end when len a1 15 thencase when substring a1,15,1 in ...

如何用的查詢替換功能替換掉中的空格和空行

呵呵,這是bai最簡單的啊兄弟。du你在zhi查詢裡面 輸入一dao個空格,然後在替換裡面什回麼也不輸入,答然後選擇確定,這樣就可以替換掉空格啦。在查詢裡面選擇輸入特殊字元,選擇兩個回車符,然後在替換裡面選擇輸入特殊字元,選定乙個回車符,確定,就可以搞定啦。查詢替換裡面 特殊字元 p 段落標記 是可...

excel中如何查詢資料所在單元格並返回數值

excel 2016 怎麼使用萬用字元查詢資料 excel中 如何查詢一行資料的最大值並返回所在的單元格?假設你的資料在第一行a1到j1 large a1 j1,column a1 右拉填充 假設你的資料在第一行a1到j1 large a1 j1,column a a 右拉就可以了 excel根據單...