Cách xóa các bản sao trong một ô trong Excel

Có ba cách để tìm và xóa các bản sao trong một ô trong Excel. Chỉ cần chọn một trong những phù hợp nhất với bạn.

Khi nó liên quan loại bỏ các giá trị hoặc hàng trùng lặp, Microsoft Excel cung cấp một loạt các tùy chọn khác nhau. Nhưng khi nói đến việc loại bỏ văn bản trùng lặp trong một ô nhất định, Excel không cung cấp gì cả. Không có công cụ, không có tính năng, không có công thức, không có gì cả. Nó có ngăn chúng ta đạt được mục tiêu không? Không có trường hợp nào. Nếu Excel không có hàm chúng ta cần, chúng ta hãy viết hàm của riêng chúng ta 🙂

Cách xóa các từ trùng lặp trong ô Excel

Vấn đề: Bạn có các từ hoặc chuỗi văn bản giống nhau trong một ô và muốn xóa lần thứ hai và tất cả các lần lặp lại tiếp theo.

Giải pháp: một chức năng tùy chỉnh do người dùng xác định hoặc macro VBA.
Loại bỏ các bản sao trong ô Excel

Chức năng do người dùng xác định để loại bỏ các bản sao trong một ô

Để loại bỏ văn bản trùng lặp trong một ô, bạn có thể sử dụng hàm do người dùng xác định sau (UDF), có tên RemoveDupeWords:

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

Cách chèn mã của hàm vào sổ làm việc của bạn

Để thêm mã trên vào Excel của bạn, đây là những gì bạn cần làm:

  1. nhấn Alt + F11 để mở Trình soạn thảo Visual Basic.
  2. Trên ngăn bên trái, bấm chuột phải ThisWorkbook và chọn Chèn > Mô-đun.
  3. Dán mã trên vào cửa sổ.

Để biết thêm thông tin, vui lòng xem Cách chèn mã VBA trong Excel.

Cú pháp hàm RemoveDupeWords

Hàm mới được tạo của chúng tôi để xóa văn bản trùng lặp trong một ô có cú pháp sau:

RemoveDupeWords (văn bản, [delimiter])

Ở đâu:

  • Bản văn (bắt buộc) – một chuỗi hoặc ô mà bạn muốn xóa văn bản lặp lại.
  • Dấu phân cách (tùy chọn) – dấu phân cách mà văn bản lặp lại được phân tách bằng. Nếu bỏ qua, một khoảng trắng được sử dụng cho dấu phân cách.

Chức năng là không phân biệt chữ hoa chữ thường, nghĩa là các chữ cái thường và chữ hoa được coi là các ký tự giống nhau.

Cách sử dụng chức năng RemoveDupeWords

Sau khi mã của hàm được thêm vào sổ làm việc của bạn, bạn có thể sử dụng nó trong các công thức của mình giống như cách bạn sử dụng các hàm dựng sẵn của Excel.

Chỉ cần bắt đầu nhập tên của hàm sau dấu bằng và nó sẽ xuất hiện trong công thức intellisense. Bấm đúp vào hàm và bạn sẽ chèn nó vào một ô. Xác định các đối số, nhập dấu ngoặc đơn, nhấn Đi vào, và công thức của bạn đã hoàn thành.

Một chức năng tùy chỉnh để loại bỏ các bản sao trong một ô.

Ví dụ: để xóa các từ trùng lặp được phân tách bằng dấu phẩy và dấu cách từ A2, hãy nhập công thức dưới đây vào B2, sau đó kéo công thức xuống qua nhiều ô nếu cần:

=RemoveDupeWords(A2, ", ")

Kết quả là bạn sẽ có một danh sách các từ hoặc chuỗi con duy nhất được phân tách bằng dấu dấu phẩy và dấu cách:

Xóa các từ trùng lặp được phân tách bằng dấu phẩy và dấu cách

Nếu bạn muốn nhận một danh sách được phân tách bằng dấu phẩy, thì hãy sử dụng chỉ một dấu phẩy cho dấu phân cách:

=RemoveDupeWords(A2, ",")

Xóa các từ lặp lại được phân tách bằng dấu phẩy

Nếu dữ liệu nguồn của bạn được phân tách bằng dấu không gian, đối số thứ hai phải là “” hoặc bị bỏ qua:

=RemoveDupeWords(A2)

Loại bỏ các bản sao trong một ô được phân tách bằng dấu cách

Giống như bất kỳ hàm Excel nào khác, UDF của chúng tôi sẽ tự động tính toán lại khi dữ liệu nguồn thay đổi, vì vậy kết quả của bạn sẽ luôn được cập nhật.

Macro VBA để xóa văn bản trùng lặp khỏi một ô

Nếu bạn đang tìm cách xóa văn bản lặp lại khỏi nhiều ô trong một lần, thì bạn có thể gọi RemoveDupeWords chức năng từ bên trong một macro. Trong trường hợp này, dấu phân cách được mã hóa cứng và bạn sẽ phải cập nhật mã của macro mỗi khi dấu phân cách thay đổi. Ngoài ra, bạn có thể viết một số biến thể mã cho các dấu phân cách phổ biến nhất, chẳng hạn như dấu cách, dấu phẩy hoặc dấu phẩy và dấu cách và đặt tên có ý nghĩa cho macro của bạn, ví dụ: RemoveDupesDelimSpace.

Mã của macro như sau:

Public Sub RemoveDupeWords2()
	Dim cell As Range
	For Each cell In Application.Selection
		cell.Value = RemoveDupeWords(cell.Value, ", ")
	Next
End Sub

Trong đoạn mã trên, dấu phân cách là một dấu phẩy và dấu cách. Để sử dụng một dấu phân tách khác, hãy thay thế “,” bằng (các) ký tự khác trong dòng mã này:

cell.Value = RemoveDupeWords(cell.Value, ", ")

Cách sử dụng macro

Chèn mã của macro vào sổ làm việc của riêng bạn hoặc mở sổ làm việc mẫu với mã, và sau đó thực hiện các bước sau để chạy macro.

  1. Chọn một dải ô mà bạn muốn xóa văn bản lặp lại.
  2. nhấn Alt + F8 để mở Macro hộp thoại.
  3. Trong danh sách macro, hãy chọn RemoveDupeWords2.
  4. Nhấp chuột Chạy.
    Macro để xóa văn bản trùng lặp khỏi tất cả các ô trong phạm vi đã chọn

Để biết thêm chi tiết, vui lòng xem Cách chạy macro trong Excel.

Ghi chú. Bởi vì hành động của macro không thể hoàn tác, chúng tôi thực sự khuyên bạn nên lưu sổ làm việc của mình ngay trước khi sử dụng macro. Bằng cách này, nếu xảy ra sự cố, bạn có thể chỉ cần đóng và mở lại sổ làm việc và bạn sẽ quay lại chính xác vị trí của mình. Hoặc bạn chỉ có thể tạo một bản sao của (các) trang tính có thể bị ảnh hưởng bởi macro.

Cách xóa các ký tự trùng lặp trong một ô

Vấn đề: Bạn có nhiều lần xuất hiện của cùng một ký tự trong một ô, trong khi mỗi ô chỉ nên chứa một lần xuất hiện của một ký tự nhất định.

Giải pháp: một chức năng tùy chỉnh do người dùng xác định hoặc macro VBA.

Xóa các ký tự trùng lặp trong một ô

Chức năng do người dùng xác định để xóa các ký tự lặp lại

Để loại bỏ các ký tự trùng lặp trong một ô chỉ giữ lại các lần xuất hiện đầu tiên, bạn có thể sử dụng hàm do người dùng xác định sau, có tên 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

Để chèn mã của hàm vào sổ làm việc của bạn, các bước giống hệt như trong ví dụ trước.

Cú pháp hàm RemoveDupeChars

Cú pháp của hàm tùy chỉnh này càng đơn giản càng tốt – chỉ cần một đối số:

RemoveDupeChars (văn bản)

Ở đâu bản văn là một chuỗi hoặc ô mà bạn muốn xóa các ký tự trùng lặp.

Chức năng là trường hợp nhạy cảm và coi chữ thường và chữ hoa là các ký tự khác nhau.

Cách sử dụng chức năng RemoveDupeChars

Mọi thứ chúng tôi đã nói về sử dụng RemoveDupeWords đúng với RemoveDupeChars. Vì vậy, không đi quá sâu vào lý thuyết, chúng ta hãy đi thẳng vào một ví dụ.

Để xóa các ký tự trùng lặp từ cột A bắt đầu bằng A2, hãy nhập công thức này vào B2 và sao chép nó xuống:

=RemoveDupeChars(A2)

Như bạn có thể thấy trong hình bên dưới, hàm xử lý thành công các loại ký tự khác nhau bao gồm các chữ cái, chữ số và các ký hiệu đặc biệt:

Một chức năng tùy chỉnh để xóa các ký tự trùng lặp trong một ô

Tiền boa. Nếu các ký tự của bạn được phân tách với nhau bởi một số dấu phân cách chẳng hạn như dấu cách, dấu phẩy hoặc dấu gạch nối, sau đó sử dụng RemoveDupeWords chức năng như được hiển thị trong ví dụ trước.

Macro VBA để xóa các ký tự giống nhau khỏi một ô

Giống RemoveDupeWords, các RemoveDupeChars hàm cũng có thể được gọi từ bên trong một macro:

Public Sub RemoveDupeChars2()
	Dim cell As Range
	For Each cell In Application.Selection
		cell.Value = RemoveDupeChars(cell.Value)
	Next
End Sub

Bởi vì UDF này không sử dụng bất kỳ dấu phân cách nào, bạn sẽ không phải thực hiện bất kỳ điều chỉnh nào trong mã.

Ghi chú. Để macro hoạt động, mã của nó và mã của UDF RemoveDupeChars phải được đặt trên cùng một mô-đun trong trình soạn thảo VBA.

Cách sử dụng macro

Giả sử bạn đã chèn mã của macro vào sổ làm việc của mình hoặc mở sổ làm việc mẫu chứa mã, khởi chạy macro theo cách này.

  1. Chọn một dải ô mà bạn muốn xóa các ký tự lặp lại.
  2. nhấn Alt + F8 để mở Macro hộp thoại.
  3. Trong danh sách macro, hãy chọn RemoveDupeChars2.
  4. Nhấp chuột Chạy.Macro để xóa các ký tự lặp lại khỏi mỗi ô trong phạm vi đã chọn

Loại bỏ các chuỗi con trùng lặp với Ultimate Suite

Ở phần đầu của hướng dẫn này, người ta đã đề cập rằng Microsoft Excel không có tính năng sẵn có để loại bỏ các bản sao trong một ô. Nhưng của chúng tôi Suite Ultimate làm!

Bạn có thể tìm thấy nó trong Trùng lặp Remover trình đơn thả xuống trên Dữ liệu Ablebits tab, trong Dedupe nhóm. Nếu Loại bỏ các chuỗi con trùng lặp tùy chọn không xuất hiện trong Excel của bạn, hãy đảm bảo bạn đã cài đặt phiên bản Ultimate Suite mới nhất (có thể tải xuống bản dùng thử miễn phí đây).

Loại bỏ công cụ Chuỗi con trùng lặp cho Excel

Để loại bỏ các chuỗi con lặp lại trong 5 giây (một giây mỗi bước :), đây là những gì bạn cần làm:

  1. Chọn dữ liệu nguồn của bạn và khởi chạy Loại bỏ các chuỗi con trùng lặp dụng cụ.
  2. Chỉ định la dấu phân cách.
  3. Xác định xem có nên điều trị dấu phân cách liên tiếp như một (mặc định).
  4. Chọn xem có biểu diễn hay không trường hợp nhạy cảm hoặc là trường hợp không nhạy cảm Tìm kiếm.
  5. Nhấp chuột Tẩy.

Làm xong! Không cần tìm hiểu VBA hoặc công thức, chỉ cần kết quả nhanh chóng và chính xác.

Loại bỏ văn bản trùng lặp trong Excel mà không cần VBA

Để tìm hiểu thêm về tiện ích bổ sung tuyệt vời này, vui lòng truy cập https://ketoanmvb.com/thu-thuat-excel. Đó là cách loại bỏ văn bản trùng lặp trong một ô. Ketoanmvb cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi vào tuần tới!