Excel單元格內重複項的刪除方法詳解
本文介紹三種在Excel單元格中查找和刪除重複項的方法,選擇最適合您的方法即可。
在刪除重複值或行方面,Microsoft Excel提供了多種不同的選項。但是,當需要刪除給定單元格內的相同文本時,Excel卻……什麼也沒有提供。沒有工具、沒有功能、沒有公式,什麼也沒有。這會阻止我們實現目標嗎?當然不會。如果Excel沒有我們需要的功能,那就讓我們自己編寫一個吧!
- 使用VBA在Excel中刪除重複單詞
- 使用VBA刪除重複字符
- 使用Ultimate Suite刪除多個單元格中的重複文本
如何在Excel單元格中刪除重複單詞
問題:單元格中存在相同的單詞或文本字符串,您希望刪除第二個及所有後續重複項。
解決方案:自定義用戶定義函數或VBA宏。
刪除單元格內重複項的用戶定義函數
要消除單元格中的重複文本,您可以使用以下名為RemoveDupeWords的自定義用戶定義函數(UDF):
Function RemoveDupeWords(text As String, Optional delimiter As String = " ") As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject("Scripting.Dictionary") dictionary.CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add part, Nothing End If Next If dictionary.Count > 0 Then RemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function
如何在工作簿中插入函數代碼
要將上述代碼添加到您的Excel中,您需要執行以下操作:
- 按Alt F11打開Visual Basic編輯器。
- 在左側窗格中,右鍵單擊ThisWorkbook ,然後選擇插入>模塊。
- 將上述代碼粘貼到代碼窗口中。
有關更多信息,請參閱如何在Excel中插入VBA代碼。
RemoveDupeWords函數語法
我們新創建的用於刪除單元格中重複文本的函數具有以下語法:
RemoveDupeWords(text, [delimiter]) 其中:
- Text (必需)- 要從中刪除重複文本的字符串或單元格。
- Delimiter (可選)- 重複文本用其分隔的分隔符。如果省略,則使用空格作為分隔符。
該函數不區分大小寫,這意味著小寫字母和大寫字母被視為相同的字符。
如何使用RemoveDupeWords函數
將函數代碼添加到工作簿後,您可以像使用Excel的內置函數一樣在公式中使用它。
只需在等號後開始鍵入函數名稱,它就會出現在公式智能感知中。雙擊該函數,它將被插入到單元格中。定義參數,鍵入右括號,按Enter鍵,您的公式就完成了。
例如,要從A2中刪除用逗號和空格分隔的重複單詞,請在B2中輸入以下公式,然後將其向下拖動到所需的單元格數:
=RemoveDupeWords(A2, ", ")
結果,您將獲得一個用逗號和空格分隔的唯一單詞或子字符串列表:
如果您希望獲得逗號分隔的列表,則僅對分隔符使用逗號:
=RemoveDupeWords(A2, ",")
如果您的源數據用空格分隔,則第二個參數應為" "或省略:
=RemoveDupeWords(A2)
像任何其他Excel函數一樣,我們的UDF會在源數據更改時自動重新計算,因此您的結果將始終是最新的。
一次刪除多個單元格中重複文本的VBA宏
如果您希望一次刪除多個單元格中的重複文本,則可以在宏中調用RemoveDupeWords函數。在這種情況下,分隔符是硬編碼的,每次分隔符更改時,您都必須更新宏的代碼。或者,您可以為最常見的分隔符(例如空格、逗號或逗號和空格)編寫一些代碼變體,並為您的宏賦予有意義的名稱,例如RemoveDupesDelimSpace 。
宏代碼如下:
Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", ") Next End Sub
在上面的代碼中,分隔符是逗號和空格。要使用不同的分隔符,請在以下代碼行中將", "替換為其他字符:
cell.Value = RemoveDupeWords(cell.Value, ", ")
注意。要使宏正常工作,其代碼和RemoveDupeWords函數的代碼必須放置在同一個模塊中。
如何使用宏
將宏代碼插入您自己的工作簿或打開包含該代碼的示例工作簿,然後執行以下步驟來運行宏。
- 選擇要從中刪除重複文本的單元格範圍。
- 按Alt F8打開宏對話框。
- 在宏列表中,選擇RemoveDupeWords2 。
- 單擊運行。
有關更多詳細信息,請參閱如何在Excel中運行宏。
注意。由於宏的操作無法撤消,我們強烈建議您在使用宏之前保存工作簿。這樣,如果出現問題,您可以簡單地關閉並重新打開工作簿,您將回到您之前的位置。或者,您可以只複製可能受宏影響的工作表。
如何在單元格中刪除重複字符
問題:單元格中存在多個相同的字符,而每個單元格應該只包含給定字符的單個出現。
解決方案:自定義用戶定義函數或VBA宏。
刪除重複字符的用戶定義函數
要刪除單元格內的重複字符,只保留第一次出現的字符,您可以使用以下名為RemoveDupeChars的自定義用戶定義函數:
Function RemoveDupeChars(text As String) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject("Scripting.Dictionary") For i = 1 To Len(text) char = Mid(text, i, 1) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = result & char End If Next RemoveDupeChars = result Set dictionary = Nothing End Function
要將函數代碼插入到您的工作簿中,步驟與前面的示例完全相同。
RemoveDupeChars函數語法
此自定義函數的語法盡可能簡單- 只需要一個參數:
RemoveDupeChars(text) 其中text是要從中刪除重複字符的字符串或單元格。
該函數區分大小寫,並將小寫字母和大寫字母視為不同的字符。
如何使用RemoveDupeChars函數
我們對RemoveDupeWords的使用所述的一切都適用於RemoveDupeChars 。因此,無需過多理論,讓我們直接進入示例。
要從A列(從A2開始)刪除重複字符,請在B2中輸入此公式並將其複製到下方:
=RemoveDupeChars(A2)
如下圖所示,該函數成功處理了不同的字符類型,包括字母、數字和特殊符號:
提示。如果您的字符用某些分隔符(例如空格、逗號或連字符)彼此分隔,則請使用前面示例中所示的RemoveDupeWords函數。
刪除單元格中相同字符的VBA宏
像RemoveDupeWords一樣, RemoveDupeChars函數也可以在宏中調用:
Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub
因為此UDF不使用任何分隔符,所以您無需在代碼中進行任何調整。
注意。要使宏正常工作,其代碼和RemoveDupeChars UDF的代碼必須放置在VBA編輯器中的同一個模塊中。
如何使用宏
假設您已經將宏代碼插入到您的工作簿中或打開了包含該代碼的示例工作簿,請按以下方式啟動宏。
- 選擇要從中刪除重複字符的單元格範圍。
- 按Alt F8打開宏對話框。
- 在宏列表中,選擇RemoveDupeChars2 。
- 單擊運行。
使用Ultimate Suite刪除重複子字符串
在本教程的開頭,提到Microsoft Excel沒有內置功能來刪除單元格內的重複項。但是我們的Ultimate Suite可以!
您可以在Ablebits Data選項卡上的Duplicate Remover下拉菜單中找到它,位於Dedupe組中。如果Remove Duplicate Substrings選項沒有出現在您的Excel中,請確保您安裝了最新版本的Ultimate Suite(此處可以下載免費試用版)。
要以5秒鐘的速度(每一步一秒)從多個單元格中刪除重複的單詞或文本,您需要執行以下操作:
- 選擇您的源數據並啟動Remove Duplicate Substrings工具。
- 指定分隔符。
- 定義是否將連續的分隔符視為一個(默認)。
- 選擇執行區分大小寫還是不區分大小寫的搜索。
- 單擊刪除。
完成了!無需使用VBA或公式,只需快速準確的結果即可。
要了解有關此強大加載項的更多信息,請訪問其主頁。或者更好的是,下載下面的評估版本並試用一下!
這就是刪除單元格中重複文本的方法。感謝您的閱讀,希望下週在我們的博客上再見!
可下載資源
單元格中刪除重複項的示例(.xlsm文件)Ultimate Suite 14天完全功能版本(.exe文件)
以上是如何在Excel中的單元格中刪除重複項的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器