Cách loại bỏ các bản trùng lặp trong một ô trong Excel

  • Chia Sẻ Cái Này
Michael Brown

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

Khi liên quan đến việc xóa các hàng hoặc giá trị 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 xóa văn bản giống hệt nhau trong một ô nhất định, Excel không cung cấp… gì cả. Không công cụ, không tính năng, không công thức, không gì cả. Nó sẽ ngăn chúng ta đạt được mục tiêu của mình? Trong mọi trường hợp. Nếu Excel không có chức năng chúng ta cần, chúng ta hãy viết một chức năng của riêng mình :)

    Cách xóa các từ lặp lại trong ô Excel

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

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

    Hàm do người dùng xác định để loại bỏ các văn bản trùng lặp 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 (UDF) sau đây , được đặt tên là RemoveDupeWords :

    Hàm RemoveDupeWords(văn bản Dưới dạng Chuỗi , Dấu phân cách tùy chọn Dưới dạng Chuỗi = " " ) Dưới dạng Từ điển chuỗi Dim Dưới dạng Đối tượng Dim x, một phần Đặt từ điển = CreateObject ( "Scripting.Dictionary" ) từ điển .CompareMode = vbTextSo sánh Đối với Mỗi x Trong Phần chia (văn bản, dấu phân cách) = Trim(x) Nếu phần "" Và Không phải dictionary.Exists(part) Sau đó là dictionary.Thêm phần, Không có gì Kết thúc Nếu Tiếp theo Nếu dictionary.Count > 0 Sau đó RemoveDupeWords = Tham gia(dictionary.keys,dấu phân cách) 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, bạn cần làm như sau:

    1. Nhấn Alt + F11 để mở Trình soạn thảo Visual Basic.
    2. Ở ngăn bên trái, nhấp chuột phải vào 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 VBA mã 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(text, [dấu phân cách])

    Ở đâu :

    • Văn bả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ị bỏ qua, một khoảng trắng sẽ được sử dụng cho dấu phân cách.

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

    Cách sử dụng hàm 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 giống như cách bạn sử dụng các hàm tích hợp 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 chức năng, và bạn sẽ có nóchèn vào một ô. Xác định các đối số, nhập dấu ngoặc đơn đóng, nhấn Enter và công thức của bạn đã hoàn thành.

    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 khỏi A2, nhập công thức bên dưới vào ô B2, sau đó kéo nó xuống qua bao nhiêu ô tùy ý:

    =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à khoảng trắng :

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

    =RemoveDupeWords(A2, ",")

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

    =RemoveDupeWords(A2)

    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, do đó, 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 nhiều ô cùng một lúc

    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 hàm RemoveDupeWords từ m 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 vài 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, đồng thời đặ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à dấu phẩy và không gian . Để sử dụng một dấu phân cá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, ", ")

    Lưu ý. Để macro hoạt động, mã của macro và mã của hàm RemoveDupeWords phải được đặt trên cùng một mô-đun.

    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 của chúng tôi có mã, 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ở hộp thoại Macro .
    3. Trong danh sách macro, chọn RemoveDupeWords2 .
    4. Nhấp vào Chạy .

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

    Lưu ý. 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 lầnô chỉ được chứa một lần xuất hiện duy nhất của một ký tự nhất định.

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

    Hàm do người dùng định nghĩa để xóa các ký tự lặp lại

    Để xóa 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 định nghĩa sau, có tên RemoveDupeChars :

    Chức năng RemoveDupeChars(văn bản dưới dạng Chuỗi ) Dưới dạng chuỗi Từ điển mờ Dưới dạng đối tượng Dim char Dưới dạng chuỗi Kết quả mờ dưới dạng chuỗi Đặt từ điển = CreateObject ( "Scripting.Dictionary") For i = 1 To Len(text) char = Mid(text, i, 1 ) Nếu không phải là dictionary.Exists(char) Sau đó là dictionary.Add char, Không có kết quả = 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 thực hiện 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(text)

    Trong đó text là một chuỗi hoặc ô mà bạn muốn từ đó để xóa các ký tự trùng lặp.

    Hàm này phân biệt chữ hoa chữ thường và coi chữ thường và chữ hoa là các ký tự khác nhau.

    Cách sử dụng hàm RemoveDupeChars

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

    Để xóa các ký tự trùng lặp khỏi cột A bắt đầu từ 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 này đã xử lý thành công các loại ký tự khác nhau bao gồm chữ cái, chữ số và ký hiệu đặc biệt:

    Mẹo. Nếu các ký tự của bạn được phân tách với nhau bằng 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 ngang, thì hãy sử dụng chức năng RemoveDupeWords như minh họa trong ví dụ trước.

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

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

    Công khai Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub

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

    Lưu ý. Để macro hoạt động, mã của nó và mã của RemoveDupeChars UDF phải được đặt trên cùng một mô-đun trong trình chỉnh sửa 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 có chứa mã của chúng tôi, hãy 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ở hộp thoại Macro hộp.
    3. Trong danh sách macro, hãy chọn RemoveDupeChars2 .
    4. Nhấp vào Chạy .

    Xóa các chuỗi con trùng lặp bằng Ultimate Suite

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

    Bạn có thể tìm thấy nó trong menu thả xuống Duplicate Remover trên tab Ablebits Data , trong Dedupe nhóm. Nếu tùy chọn Xóa chuỗi con trùng lặp 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 (bạn có thể tải xuống bản dùng thử miễn phí tại đây).

    Để xóa các từ hoặc văn bản lặp lại khỏi nhiều ô trong 5 giây (một giây mỗi bước :), bạn cần làm như sau:

    1. Chọn dữ liệu nguồn của bạn và khởi chạy Công cụ Xóa các chuỗi con trùng lặp .
    2. Chỉ định dấu phân cách .
    3. Xác định xem có coi dấu phân cách liên tiếp là một hay không (mặc định).
    4. Chọn thực hiện tìm kiếm phân biệt chữ hoa chữ thường hoặc phân biệt chữ hoa chữ thường .
    5. Nhấp vào Xóa .

    Xong! Không phải loay hoay với VBA hay công thức, chỉ cần có kết quả nhanh chóng và chính xác.

    Để tìm hiểu thêm về tiện ích bổ sung tuyệt vời này, vui lòng truy cập trang chủ của nó. Hoặc tốt hơn nữa, hãy tải xuống phiên bản đánh giá bên dưới và dùng thử!

    Đó là cách xóa văn bản trùng lặp trong một ô.Tôi 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!

    Các bản tải xuống hiện có

    Ví dụ để xóa các bản sao trong ô (tệp .xlsm)

    Ultimate Suite 14 -day phiên bản đầy đủ chức năng (tệp .exe)

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.