搜尋
首頁專題excelExcel:一次查找並替換多個值

在本教程中,我們將研究幾種方法來查找和替換多個單詞,字符串或單個角色,因此您可以選擇最適合您需求的單詞。

人們通常如何在Excel中搜索?通常,通過使用查找和替換功能,該功能適用​​於單個值。但是,如果您有數十個甚至數百個物品要替換怎麼辦?當然,沒有人願意一對一手動進行所有這些替換,然後在數據更改時再次進行。幸運的是,有一些更有效的方法可以在Excel中進行質量替換,我們將詳細調查它們。

用嵌套替換查找並替換多個值

在Excel中查找和替換多個條目的最簡單方法是使用替代功能。

公式的邏輯非常簡單:您編寫一些單獨的函數將舊值替換為新值。然後,您將這些功能嵌套在另一個功能中,以便每個後續替代品都使用上一個替代的輸出來尋找下一個值。

替代(替代(替代( textold_text1new_text1 ), old_text2new_text2 ), old_text3new_text3

在A2:A10的位置列表中,假設您想用全名替換縮寫的國家名稱(例如FRUKUSA )。

要完成它,請在D2:D4中輸入舊值以及E2:E4中的新值,如下屏幕截圖所示。然後,將以下公式放入B2中,然後按Enter:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A10, D2, E2), D3, E3), D4, E4)

…您將立即完成所有替代品:

Excel:一次查找並替換多個值

請注意,上述方法僅在支持動態數組的Excel 365中起作用。

在Excel 2019,Excel 2016和更早的動態版本中,需要為最上方的細胞(B2)編寫該公式,然後復製到以下細胞中:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, $D$2, $E$2), $D$3, $E$3), $D$4, $E$4)

請注意,在這種情況下,我們將使用絕對單元格引用鎖定替換值,因此它們在將公式放下時不會移動。

Excel:一次查找並替換多個值

筆記。替代函數對大小寫敏感,這意味著您應該在與原始數據中顯示的同一字母案例中鍵入舊值( old_text )。

儘管可能很容易,但此方法具有很大的缺點 - 當您有數十個要替換的項目時,嵌套功能變得很難管理。

優點:易於實現;在所有Excel版本中支持

缺點:最好用於有限數量的查找/替換值

用Xlookup搜索並替換多個條目

在您希望替換整個單元格內容而不是其部分時,Xlookup功能派上用場。

假設您有A列中的國家 /地區列表,目的是用相應的全名代替所有縮寫。與上一個示例一樣,您從在單獨的列中輸入“查找”和“替換”項目(分別為d和e),然後在B2中輸入此公式:

=XLOOKUP(A2, $D$2:$D$4, $E$2:$E$4, A2)

從Excel語言翻譯成人類語言,這是公式的作用:

在D2:D4(Lookup_array)中搜索A2值(Lookup_value),然後從E2:E4(return_array)返回匹配項。如果找不到,請從A2中摘取原始值。

雙擊填充手柄以將公式複製到以下單元格中,結果不會讓您等待:

Excel:一次查找並替換多個值

由於Xlookup功能僅在Excel 365中可用,因此上述公式在較早版本中無法使用。但是,您可以通過IFERROR或IFNA和VLOOKUP的組合輕鬆模仿這種行為:

=IFNA(VLOOKUP(A2, $D$2:$E$4, 2, FALSE), A2)

Excel:一次查找並替換多個值

筆記。與替代品不同,Xlookup和Vlookup功能不是對大小寫的敏感性,這意味著他們搜索忽略字母情況的查找值。例如,我們的公式將用法國代替FRFR

優點:不尋常的使用通常功能;在所有Excel版本中使用

缺點:在單元格級別上工作,無法替換部分單元內容

使用遞歸lambda功能多次替換

對於Microsoft 365訂戶,Excel提供了一個特殊的功能,該功能允許使用傳統公式語言創建自定義功能。是的,我說的是Lambda。這種方法的優點在於,它可以將非常冗長且複雜的公式轉換為非常緊湊且簡單的公式。此外,它使您可以創建自己不存在Excel中的功能,這僅在VBA中才可能。

有關創建和使用自定義Lambda功能的詳細信息,請查看本教程:如何在Excel中編寫lambda函數。在這裡,我們將討論幾個實際示例。

優點:結果是一種優雅且令人驚訝的功能,無論替換對數量多少

缺點:僅在Excel 365中可用;特定於工作簿,不能在不同的工作簿中重複使用

示例1。一次搜索並替換多個單詞 /字符串

為了一次替換多個單詞或文本,我們創建了一個自定義的lambda函數,名為MultirePlace ,可以採用以下形式之一:

=LAMBDA(text, old, new, IF(old"", MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0)), text))

或者

=LAMBDA(text, old, new, IF(old="", text, MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))))

兩者都是自稱的遞歸功能。區別僅在於如何建立出口點。

在第一個公式中,IF函數檢查列表是否不是空白(舊“”)。如果為true,則調用多隔板函數。如果false,該函數將其當前形式和退出返回文本

第二公式使用反向邏輯:如果舊的是空白(old =“”),則返回文本和退出;否則請致電MultirePlace

最棘手的部分是完成的!您要做的就是在名稱管理器中命名多隔板函數,如下面的屏幕截圖所示。有關詳細指南,請查看如何命名lambda功能。

Excel:一次查找並替換多個值

功能獲得名稱後,您可以像其他任何內置功能一樣使用它。

從最終用戶的角度來看,您選擇的兩個公式變化中的哪個,語法都一樣簡單:

Multireplace(文本,舊,新)

在哪裡:

  • 文本- 源數據
  • - 找到的價值觀
  • - 替換為

以先前的例子為例,讓我們不僅取代國家的縮寫,還要取代國家的縮寫。為此,在d2開始鍵入D列中的縮寫(值),在E2中開始E列E中的全名(值)。

在B2中,輸入多台詞函數:

=MultiReplace(A2:A10, D2, E2)

點擊Enter並享受結果:)

Excel:一次查找並替換多個值

該公式如何工作

理解該公式的線索是理解遞歸。這聽起來可能很複雜,但是原理很簡單。在每次迭代中,遞歸函數解決了一個更大問題的一個小實例。在我們的情況下,多隔板函數通過舊值和新值循環,並且每個循環都執行一個替代:

多動(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))

與嵌套替代功能一樣,先前替代的結果成為下一個替代的文本參數。換句話說,在每個隨後的呼叫中,替代功能不是原始文本字符串,而是上一個呼叫的輸出。

要處理列表中的所有項目,我們從最上方的單元格開始,並使用偏移函數在每次交互時向下移動1行:

OFFSET(old, 1, 0)

列表也是如此:

OFFSET(new, 1, 0)

關鍵的事情是提供一個退出點,以防止遞歸電話永遠進行。它是在IF函數的幫助下完成的 - 如果單元格為空,則該函數將其返回文本其當前形式並退出:

=LAMBDA(text, old, new, IF(old="", text, MultiReplace(…)))

或者

=LAMBDA(text, old, new, IF(old"", MultiReplace(…), text))

示例2。在Excel中替換多個字符

原則上,前一個示例中討論的多隔板函數也可以處理單個字符,前提是每個舊字符都在單獨的單元格中輸入,就像上面的屏幕截圖中的縮寫和完整名稱一樣。

如果您想在一個單元格中輸入舊字符和另一個單元格中的新字符,或者將它們直接在公式中鍵入,則可以通過使用以下公式之一創建另一個名為替代的自定義函數:

=LAMBDA(text, old_chars, new_chars, IF(old_chars"", ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1)), text))

或者

=LAMBDA(text, old_chars, new_chars, IF(old_chars="", text, ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))))

請記住,以往常為名將您的新lambda函數命名:

Excel:一次查找並替換多個值

替換函數“ title =”名稱一個自定義替換式函數>

並且您的新自定義功能已準備就緒:

替換(文本,old_chars,new_chars)

在哪裡:

  • 文字- 原始字符串
  • - 要搜索的角色
  • 新的- 字符要替換為

為了進行現場測試,讓我們做一些經常在導入的數據上執行的事情 - 用直引號和直接撇號替換智能報價和智能撇號。

首先,我們在E2中輸入智能引號和智能撇號,直接引號和直撇號,將字符的空間分開,以獲得更好的可讀性。 (當我們在兩個單元格中使用相同的定界符時,它不會對結果產生任何影響 - excel只會用一個空間代替一個空間。)

之後,我們在B2中輸入此公式:

=ReplaceChars(A2:A4, D2, E2)

並準確獲取我們正在尋找的結果:

Excel:一次查找並替換多個值

也可以直接在公式中鍵入字符。在我們的情況下,只記得“複製”這樣的直言:

=ReplaceChars(A2:A4, "“ ” '", """ "" '")

該公式如何工作

替代方案的功能通過舊_charsnew_chars字符串循環,並從左側的第一個字符開始一次替換。該部分由替代功能完成:

SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars))

在每次迭代中,右功能都從舊_charsnew_chars字符串的左側剝離一個字符,因此左側可以拿出下一個字符以替換:

ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))

在每個遞歸調用之前,IF函數評估old_chars字符串。如果不是空的,則該函數會自動調用。一旦取代了最後一個字符,迭代過程就完成了,該公式將返回文本其當前形式和退出。

筆記。由於我們的核心公式中使用的替代功能對病例敏感,因此lambdas(多部替換)都將大寫和小寫字母視為不同的字符。

群眾查找並用UDF​​替換

如果您的Excel中沒有Lambda功能,則可以使用VBA以傳統方式編寫用戶定義的功能。

為了將UDF與lambda定義的多隔板功能區分開,我們將以不同的命名,例如MassReplace 。該函數的代碼如下:

函數subsreplace inputrng作為範圍 findrng範圍替換範圍變量 iInputCurrow,iinputCurcol,cntinputrows,cntinputCols在源範圍內當前的索引,當前列的索引,源範圍中的當前列的索引,行計數,行計數,列計數,列計數redim rarre(1cntinputrows,1cntinputcols) redim arsearchReplace(1cntfindrows,12)'準備find/replease for fin/替換成對的ifindcurrow = 1 to cntfindrows arsearchreplace arsearchreplace(ifindcurrow,1)= findrng.cells(ifIndrng.celliue)(1) ArsearchReplace(Ifindcurrow,2)= replaceNg.cells(IfindCurrow,1)。接下來的'search'search和更換iinputCurrow = 1 to cntinputrows to cntinputrows for cntinputrows for iinputCurcol = 1 to cntinputcols to cntinputcols stmp = inputrng.celllng.celllng.cellcurlcurlcurrancorlcurrafcurrafcurrafcurncorlcurncorlcurncurrofcurrofcurrofcurrofcurrofcurrofcurrofrow。 '替換每個單元中的所有查找/替換ifindcurrow = 1 = 1 to cntfindrows stmp = replace(stmp,arsearchReplace(ifindcurrow,1),arsearchReplace(arsearchReplace(ifindcurrow,2))下一個arres (iinputcurrow,iinputcurcol,iinputcurcol iinputcurcol

像Lambda定義的功能一樣,UDF在範圍內。這意味著只有在您插入代碼的工作簿中, MassReplace功能才能使用。如果您不確定如何正確執行此操作,請按照如何在Excel中插入VBA代碼中所述的步驟。

一旦將代碼添加到您的工作簿中,該函數將出現在公式IntelliSense中 - 僅函數的名稱,而不是參數!不過,我相信記住語法沒什麼大不了的:

massReplace(input_range,find_range,replace_range)

在哪裡:

  • input_range-要替換值的源範圍。
  • find_range-字符,字符串或單詞要搜索。
  • replace_range-字符,字符串或單詞要替換為。

在Excel 365中,由於支持動態陣列,這是正常公式的作用,僅需要輸入頂部單元格(B2):

=MassReplace(A2:A10, D2:D4, E2:E4)

Excel:一次查找並替換多個值

在預先動態的excel中,這是一個老式的CSE數組公式:您選擇整個源範圍(b2:b10),鍵入公式,然後按CTRL Shift同時輸入鍵以完成它。

Excel:一次查找並替換多個值

優點:Excel 2019,Excel 2016和更早版本的自定義Lambda功能的不錯的替代品

缺點:必須將工作簿保存為宏啟用.xlsm文件

散裝用VBA宏代替Excel

如果您喜歡使用宏自動化常見任務,則可以使用以下VBA代碼在範圍內查找和替換多個值。

sub bulkreplace() dim rng作為範圍作為範圍sourcerng 替換錯誤恢復範圍下一個set sec sourcerng = application.inputbox “源數據:” “ bulk替換” 應用程序替換什麼然後應用。ScreenupDation = forse for for for for fors for for fors for for plactacerng.columns (1) .cells sourcerng.replace what what:= rng.value,替換:= rng.offset = rng.offset(0,1)。

要立即使用宏,您可以下載包含代碼的示例工作簿。或者,您可以在自己的工作簿中插入代碼。

如何使用宏

在運行宏之前,將舊值和新值鍵入兩個相鄰列,如下圖所示(C2:D4)。

然後,選擇您的源數據,按Alt F8 ,選擇Bulkreplace宏,然後單擊“運行”

Excel:一次查找並替換多個值

源憤怒被預選時,只需驗證參考,然後單擊“確定:

Excel:一次查找並替換多個值

之後,選擇替換範圍,然後單擊確定:

Excel:一次查找並替換多個值

完畢!

Excel:一次查找並替換多個值

優點:設置一次,隨時重複使用

缺點:每個數據都需要運行宏

用substring工具中的多個查找並替換Excel

在第一個示例中,我提到嵌套替代是替換Excel中多個值的最簡單方法。我承認我錯了。我們的終極套房使事情變得更加容易!

要在工作表中進行質量替換,請轉到“ ablebits數據”選項卡,然後單擊子字符串工具>替換子字符串

Excel:一次查找並替換多個值

“替換子字”對話框將出現,要求您定義範圍和子字符串範圍。

Excel:一次查找並替換多個值

選擇兩個範圍,單擊“替換”按鈕,然後在原始數據右側插入的新列中找到結果。是的,很容易!

Excel:一次查找並替換多個值

提示。在單擊替換之前,您需要考慮的一件重要的事情 -對案例敏感的框。如果您想處理大寫和小寫字母作為不同的字符,請務必選擇它。在此示例中,我們會打勾此選項,因為我們只想替換大寫字母,並在完整的詞中留下諸如“ fr”,“ uk”或“ ak”之類的子字符串。

如果您想知道在字符串上可以執行哪些其他批量操作,請查看我們的Ultimate Suite中包含的其他子字符串工具。甚至更好,請在下面下載評估版本,然後嘗試一下!

這就是如何在Excel中一次找到和替換多個單詞和字符的方法。我感謝您閱讀,並希望下週在我們的博客上見到您!

可用下載

多個查找並替換在Excel(.xlsm File)Ultimate Suite 14天完全功能版本(.EXE文件)中

以上是Excel:一次查找並替換多個值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Excel中的中位公式 - 實際示例Excel中的中位公式 - 實際示例Apr 11, 2025 pm 12:08 PM

本教程解釋瞭如何使用中位功能計算Excel中數值數據中位數。 中位數是中心趨勢的關鍵度量

Google電子表格Countif函數帶有公式示例Google電子表格Countif函數帶有公式示例Apr 11, 2025 pm 12:03 PM

Google主張Countif:綜合指南 本指南探討了Google表中的多功能Countif函數,展示了其超出簡單單元格計數的應用程序。 我們將介紹從精確和部分比賽到Han的各種情況

Excel共享工作簿:如何為多個用戶共享Excel文件Excel共享工作簿:如何為多個用戶共享Excel文件Apr 11, 2025 am 11:58 AM

本教程提供了共享Excel工作簿,涵蓋各種方法,訪問控制和衝突解決方案的綜合指南。 現代Excel版本(2010年,2013年,2016年及以後)簡化了協作編輯,消除了M的需求

如何將Excel轉換為JPG-保存.xls或.xlsx作為圖像文件如何將Excel轉換為JPG-保存.xls或.xlsx作為圖像文件Apr 11, 2025 am 11:31 AM

本教程探討了將.xls文件轉換為.jpg映像的各種方法,包括內置的Windows工具和免費的在線轉換器。 需要創建演示文稿,安全共享電子表格數據或設計文檔嗎?轉換喲

excel名稱和命名範圍:如何定義和使用公式excel名稱和命名範圍:如何定義和使用公式Apr 11, 2025 am 11:13 AM

本教程闡明了Excel名稱的功能,並演示瞭如何定義單元格,範圍,常數或公式的名稱。 它還涵蓋編輯,過濾和刪除定義的名稱。 Excel名稱雖然非常有用,但通常是氾濫的

標準偏差Excel:功能和公式示例標準偏差Excel:功能和公式示例Apr 11, 2025 am 11:01 AM

本教程闡明了平均值的標準偏差和標準誤差之間的區別,指導您掌握標準偏差計算的最佳Excel函數。 在描述性統計中,平均值和標準偏差為interinsi

Excel中的平方根:SQRT功能和其他方式Excel中的平方根:SQRT功能和其他方式Apr 11, 2025 am 10:34 AM

該Excel教程演示瞭如何計算正方根和n根。 找到平方根是常見的數學操作,Excel提供了幾種方法。 計算Excel中正方根的方法: 使用SQRT函數:

Google表基礎知識:了解如何使用Google電子表格Google表基礎知識:了解如何使用Google電子表格Apr 11, 2025 am 10:23 AM

解鎖Google表的力量:初學者指南 本教程介紹了Google Sheets的基礎,這是MS Excel的強大而多才多藝的替代品。 了解如何輕鬆管理電子表格,利用關鍵功能並協作

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。