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

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)