Hướng dẫn how do i find duplicate words in excel? - làm cách nào để tìm các từ trùng lặp trong excel?

Hướng dẫn chỉ ra cách làm nổi bật các từ trùng lặp hoặc chuỗi văn bản trong ô bằng VBA.

Định dạng có điều kiện Excel giúp làm nổi bật các bản sao theo mọi cách có thể bạn có thể nghĩ đến: có hoặc không có lần xuất hiện thứ nhất, trong một cột hoặc nhiều cột, các ô trùng lặp liên tiếp và toàn bộ các hàng dựa trên các giá trị giống hệt nhau trong một cột chính. Nhưng, như thường lệ, có một "nhưng". Các quy tắc định dạng có điều kiện hoạt động ở cấp độ ô trong khi bạn có thể muốn làm nổi bật văn bản trùng lặp hơn là toàn bộ ô. Điều này chỉ có thể được thực hiện với macro. Ngay cả khi bạn không có bất kỳ kinh nghiệm nào với VBA, xin vui lòng không vội vàng đóng trang này. Tại đây, bạn sẽ tìm thấy các ví dụ mã sẵn sàng sử dụng và các hướng dẫn chi tiết về cách sử dụng chúng trong bảng tính của bạn.

Đánh dấu các từ trùng lặp trong một ô bỏ qua trường hợp văn bản

Ví dụ này cho thấy cách che bóng các từ hoặc chuỗi văn bản trong một ô có màu phông chữ màu đỏ như được hiển thị trong hình dưới đây. Xin lưu ý rằng các chữ cái chữ thường và chữ hoa được coi là cùng một ký tự. Ví dụ, cam, cam và cam được coi là cùng một từ.

Hướng dẫn how do i find duplicate words in excel? - làm cách nào để tìm các từ trùng lặp trong excel?

Mã của macro như sau:

Publicsub nổi bậtDupesCaseInsensitive () dim ô dưới dạng phạm vi phân định dimer asstringDelimiter = inputBox ("Nhập dấu phân cách phân tách các giá trị trong ô", "Delimiter", ",") Tế bào foreach trong ứng dụng. Điểm nổi bậtDupewordSincell (ô như phạm vi, phân định tùy chọn asstring = "" . matchCount = matchCount + 1 endifnext nextIde Index if matchCount> 0 thì text = "" cho index = lbound (từ) toubound (từ) text = text & amp; từ (index) if (từ (index) = word) sau đó cell.characters (len (văn bản) - len (từ) + 1, len (từ)). font.color = vbre endif text = text & amp; DELIMITER NEXTENDIFNEXT WordIndex Endsub Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As StringDelimiter = InputBox("Enter the delimiter that separates values in a cell", "Delimiter", ", ")For Each Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " ", Optional CaseSensitive As Boolean = True) Dim text As String Dim words() As String Dim word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Then words = Split(Cell.Value, Delimiter) Else words = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound(words) To UBound(words) - 1 word = words(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound(words) If word = words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex If matchCount > 0 Then text = "" For Index = LBound(words) To UBound(words) text = text & words(Index) If (words(Index) = word) Then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End Sub

Đánh dấu văn bản trùng lặp trong một trường hợp phân biệt tế bào

Trong hầu hết các tình huống, chúng ta có xu hướng bỏ qua trường hợp thư khi làm việc với các mục văn bản trong Excel. Trong một số trường hợp nhất định, tuy nhiên, trường hợp văn bản không quan trọng. Chẳng hạn, nếu bạn đang xử lý ID, mật khẩu hoặc các bản ghi khác thuộc loại đó, các chuỗi như 1-AA, 1-AA và 1-AA không phải là trùng lặp và không nên được tô sáng:

Hướng dẫn how do i find duplicate words in excel? - làm cách nào để tìm các từ trùng lặp trong excel?

Trong trường hợp này, hãy sử dụng phiên bản sau của mã:

Publicsub nổi bậtDupesCaseSensitive () dimer ô như phạm vi phân định Dim asstringDelimiter = inputBox ("Nhập phân cách phân tách các giá trị trong ô", "Delimiter", ",") Tế bào foreach trong ứng dụng. Điểm nổi bậtDupewordSincell (ô như phạm vi, phân định tùy chọn asstring = "" . matchCount = matchCount + 1 endifnext nextIde Index if matchCount> 0 thì text = "" cho index = lbound (từ) toubound (từ) text = text & amp; từ (index) if (từ (index) = word) sau đó cell.characters (len (văn bản) - len (từ) + 1, len (từ)). font.color = vbre endif text = text & amp; DELIMITER NEXTENDIFNEXT WordIndex Endsub Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As StringDelimiter = InputBox("Enter the delimiter that separates values in a cell", "Delimiter", ", ")For Each Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " ", Optional CaseSensitive As Boolean = True) Dim text As String Dim words() As String Dim word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Then words = Split(Cell.Value, Delimiter) Else words = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound(words) To UBound(words) - 1 word = words(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound(words) If word = words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex If matchCount > 0 Then text = "" For Index = LBound(words) To UBound(words) text = text & words(Index) If (words(Index) = word) Then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End Sub

Cách sử dụng các macro để làm nổi bật các từ sao chép trong Excel

Nếu bạn là người mới bắt đầu sử dụng VBA, các hướng dẫn từng bước dưới đây sẽ thoải mái hướng dẫn bạn qua. Người dùng có kinh nghiệm có thể chỉ chọn liên kết tải xuống và bỏ qua phần còn lại :)

Thêm mã vào sổ làm việc của bạn

Bạn bắt đầu với việc chèn mã macro vào sổ làm việc Excel của bạn. Đây là cách:

  1. Mở sổ làm việc nơi bạn muốn làm nổi bật các bản sao.
  2. Nhấn Alt + F11 để mở Trình chỉnh sửa Visual Basic.Alt + F11 to open the Visual Basic Editor.
  3. Ở khung bên trái, nhấp chuột phải vào Workworkbook và chọn Chèn> Mô-đun từ menu ngữ cảnh.
  4. Dán mã trong cửa sổ mã.
  5. Để giữ cho macro sử dụng trong tương lai, hãy chắc chắn lưu sổ làm việc của bạn dưới dạng tệp .xlsm hỗ trợ macro.

Ngoài ra, bạn có thể tải xuống sổ làm việc mẫu của chúng tôi và chạy macro từ đó. Sổ làm việc mẫu chứa các macro sau:

  • Điểm nổi bậtDupescaseInsensitive - Sắc thái trùng lặp trong một ô bỏ qua trường hợp chữ cái.
  • Điểm nổi bậtDupesCaseSensitive - Nổi bật các bản sao trong một ô xem xét trường hợp chữ cái.

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

Chạy macro

Với mã được thêm vào sổ làm việc riêng hoặc tệp mẫu của chúng tôi được tải xuống và mở, chạy macro theo cách này:

  1. Trong bảng tính của bạn, chọn các ô nơi bạn muốn làm nổi bật văn bản trùng lặp. Đây có thể là một phạm vi hoặc nhiều phạm vi không liên kết.
  2. Nhấn Alt + F8.Alt + F8.
  3. Chọn macro của mối quan tâm và nhấp vào chạy.Run.
    Hướng dẫn how do i find duplicate words in excel? - làm cách nào để tìm các từ trùng lặp trong excel?
  4. Macro sẽ yêu cầu bạn chỉ định dấu phân cách phân tách các giá trị trong các ô đã chọn. Delimiter đặt trước (dấu phẩy và không gian trong trường hợp của chúng tôi) sẽ tự động xuất hiện trong hộp đầu vào. Tùy thuộc vào nhu cầu của bạn, bạn có thể để lại dấu phân cách mặc định hoặc nhập một loại khác, sau đó nhấp vào OK.
    Hướng dẫn how do i find duplicate words in excel? - làm cách nào để tìm các từ trùng lặp trong excel?

Một lúc sau, tất cả các chuỗi trùng lặp trong các ô đã chọn sẽ được tô màu màu đỏ (hoặc bất kỳ màu phông chữ nào được đặt trong mã của bạn).

Mẹo. Để nhanh chóng loại bỏ các bản sao trong một ô, bạn có thể sử dụng loại bỏ các chuỗi con trùng lặp, một trong nhiều công cụ tiết kiệm thời gian có trong bộ cuối cùng của chúng tôi. To quickly remove duplicates within a cell, you can utilize Remove Duplicate Substrings, one of many timesaving tools included in our Ultimate Suite.

Cách điều chỉnh mã cho nhu cầu của bạn

Với các ghi chú sử dụng này và kiến ​​thức rất cơ bản về VBA (hoặc chỉ theo sát các hướng dẫn dưới đây), bạn có thể dễ dàng sửa đổi các mã theo chính xác nhu cầu của bạn.

Đặt trên cùng một mô -đun

Như bạn có thể nhận thấy, cả hai macro (nổi bậtDupesCaseSensitive và nổi bậtDupesCaseInsensitive) đều gọi chức năng nổi bậtDupewordSincell. Sự khác biệt giữa hai macro trên chỉ trong tham số thứ 3 (trường hợp nhạy cảm) được truyền cho hàm nói trên.

Đối với tìm kiếm nhạy cảm trường hợp, nó được đặt thành đúng:

Call HighlightDupeWordsInCell(Cell, Delimiter, True)

Đối với tìm kiếm không nhạy cảm trường hợp, nó được đặt thành sai:

Call HighlightDupeWordsInCell(Cell, Delimiter, False)

Để các macro hoạt động, mã của chức năng nổi bậtDupewordSincell phải được đặt vào cùng một mô -đun với các macro.

Phân định

Khi chạy, macro sẽ yêu cầu bạn chỉ định dấu phân cách phân tách các từ/chuỗi trong các ô đã chọn. DELIMITER mặc định là dấu phẩy và không gian (",") và nó được đặt trước trong InputBox:

Delimiter = InputBox("Specify the delimiter that separates values in a cell", "Delimiter", ", ")

Trong mã của bạn, bạn có thể tự do sử dụng (các) ký tự nào khác làm dấu phân cách được xác định trước.

Màu sắc

Theo mặc định, chức năng nổi bậtDupewordSincell nhân đôi màu đỏ phông chữ. Màu sắc được xác định trong dòng này:

Cell.Characters(positionInText, Len(word)).Font.Color = vbRed

Ở đây, VBRED là một loại hằng số màu VBA. Để hiển thị các dấu hiệu với một màu khác, bạn có thể thay thế VBRED bằng một hằng số khác như VBGreen, Vbyellow, Vbblue, v.v ... Danh sách các hằng số màu được hỗ trợ có thể được tìm thấy ở đây.vbBlue, etc. The list of supported color constants can be found here.

Đó là cách làm nổi bật các từ trùng lặp trong các ô Excel. 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!

Tải xuống có sẵn

Mã ví dụ để làm nổi bật các bản sao trong một ô (tệp .xlsm) Ultimate Suite phiên bản đầy đủ chức năng 14 ngày (tệp .exe)
Ultimate Suite 14-day fully-functional version (.exe file)

Bạn cũng có thể quan tâm

Làm thế nào để bạn làm nổi bật các chuỗi văn bản trùng lặp hoặc các từ trong ô Excel?

Trong bảng tính của bạn, chọn các ô nơi bạn muốn làm nổi bật văn bản trùng lặp.Đây có thể là một phạm vi hoặc nhiều phạm vi không liên kết.Nhấn Alt + F8.Press Alt + F8.

Có cách nào để tìm bản sao trong Excel mà không cần xóa không?

Tìm các giá trị trùng lặp mà không cần xóa theo định dạng có điều kiện..
Chọn các giá trị bạn muốn tìm bản sao, nhấp vào Trang chủ> Định dạng có điều kiện> Đánh dấu các quy tắc ô> Các giá trị trùng lặp ..
Trong hộp thoại Popping trùng lặp giá trị, chọn tùy chọn tô sáng khi bạn cần từ danh sách thả xuống bên phải.....
Bấm OK ..