Như Quỳnh Văn Vũ
Như Quỳnh Văn Vũ
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 1084 lượt xem

Hướng dẫn cách kiểm tra dữ liệu trong hai ô có khớp hay không trong Excel

Dec 21 2020

Trong bài viết trước, Gitiho đã hướng dẫn bạn cách tô màu làm nổi bật các dữ liệu số giống và khác nhau (highlight) trong Excel.  Trong bài viết dưới đây, chúng ta cùng tìm hiểu thêm cách so sánh 2 chuỗi dữ liệu dạng text có khớp nhau hay không trong Excel. Sau đó, đánh dấu các điểm tương đồng hoặc khác biệt trong chuỗi text đó. Hãy bắt đâu ngay nào.

So khớp chuỗi dữ liệu bằng công thức

Giả sử, nếu bạn chỉ muốn biết các chuỗi được so sánh có khớp nhau hay không, bạn có thể áp dụng công thức sau.


1. Chọn ô trống C2, bạn hãy nhập công thức =EXACT(A2, B2) vào Thanh công thức, sau đó nhấn phím Enter.

Lưu ý:

- Trong công thức trên, A2 & B2 là ô chứa các chuỗi dữ liệu cần so sánh.

- Hàm EXACT là hàm giúp phân biệt giá trị bên trong 2 ô có khớp nhau hay không. Hàm này có phân biệt cả chữ viết hoa và viết thường, phân biệt các hệ font chữ khác nhau.

Tham khảo: Thủ thuật kiểm tra sai lệch dữ liệu trong bảng dữ liệu lớn của Excel

2. Tiếp theo, bạn hãy chọn ô kết quả, sau đó kéo Fill Handle đến các ô cho đến khi nhận được tất cả các kết quả so sánh.

Nếu kết quả FALSE có nghĩa là các chuỗi dữ liệu khác nhau. Còn nếu kết quả TRUE có nghĩa là hai chuỗi khớp nhau.


So khớp chuỗi dữ liệu bằng VBA

Bước 1: Đầu tiên, bạn cần nhấn tổ hợp phím ALT + F11 để mở trình soạn code VBA.

Tham khảo: VBA là gì, cách mở cửa sổ VBA trong Excel

Bước 2: Trong cửa sổ VBA, bạn click chọn tab Insert => Module => copy và paste mã VBA dưới đây vào trình soạn code:

Sub highlight()
    Dim xRg1 As Range
    Dim xRg2 As Range
    Dim xTxt As String
    Dim xCell1 As Range
    Dim xCell2 As Range
    Dim I As Long
    Dim J As Integer
    Dim xLen As Integer
    Dim xDiffs As Boolean
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg1 = Application.InputBox("Range A:", "Gitiho.com", xTxt, , , , , 8)
    If xRg1 Is Nothing Then Exit Sub
    If xRg1.Columns.Count > 1 Or xRg1.Areas.Count > 1 Then
        MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Gitiho.com"
        GoTo lOne
    End If
lTwo:
    Set xRg2 = Application.InputBox("Range B:", "Gitiho.com", "", , , , , 8)
    If xRg2 Is Nothing Then Exit Sub
    If xRg2.Columns.Count > 1 Or xRg2.Areas.Count > 1 Then
        MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Gitiho.com"
        GoTo lTwo
    End If
    If xRg1.CountLarge <> xRg2.CountLarge Then
       MsgBox "Two selected ranges must have the same numbers of cells ", vbInformation, "Gitiho.com"
       GoTo lTwo
    End If
    xDiffs = (MsgBox("Click Yes to highlight similarities, click No to highlight differences ", vbYesNo + vbQuestion, "Gitiho.com") = vbNo)
    Application.ScreenUpdating = False
    xRg2.Font.ColorIndex = xlAutomatic
    For I = 1 To xRg1.Count
        Set xCell1 = xRg1.Cells(I)
        Set xCell2 = xRg2.Cells(I)
        If xCell1.Value2 = xCell2.Value2 Then
            If Not xDiffs Then xCell2.Font.Color = vbRed
        Else
            xLen = Len(xCell1.Value2)
            For J = 1 To xLen
                If Not xCell1.Characters(J, 1).Text = xCell2.Characters(J, 1).Text Then Exit For
            Next J
            If Not xDiffs Then
                If J <= Len(xCell2.Value2) And J > 1 Then
                    xCell2.Characters(1, J - 1).Font.Color = vbRed
                End If
            Else
                If J <= Len(xCell2.Value2) Then
                    xCell2.Characters(J, Len(xCell2.Value2) - J + 1).Font.Color = vbRed
                End If
            End If
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Bước 3: Nhấn F5 để chạy mã => Trong pop-up Gitiho.com, chọn dữ liệu cột thứ nhất (Range A)=> chọn OK. Tương tự, đối với cột thứ hai cũng thế (Range B).


Bước 4: Nếu bạn muốn highlight các phần giống nhau, click chọn YES. Ngược lại, click chọn NO nếu bạn muốn đánh dấu các phần khác nhau trong chuỗi dữ liệu.

Và đây là kết quả:

  • So khớp phần giống trong chuỗi dữ liệu
  • So khớp phần khác trong chuỗi dữ liệu

Trên đây là những hướng dẫn về cách so khớp 2 chuỗi dữ liệu dạng text trong Excel. Nếu thấy bài viết hay và hữu ích, các bạn hãy chia sẻ với bạn bè của mình nhé. Chúc các bạn thành công!

Cuối cùng, đừng quên tham khảo khóa học EXG01 - Tuyệt đỉnh Excel - Trở thành bậc thầy Excel trong 16 giờ của Gitiho bạn nhé! Hẹn gặp lại các bạn trong những bài viết tiếp theo. 

CÓ THỂ BẠN CŨNG QUAN TÂM:

Cùng tìm hiểu sự khác nhau giữa các thuộc tính Text Value và Value2 của đối tượng Range trong VBA

Hướng dẫn cách làm sao để chuyển kiểu định dạng dữ liệu từ số (Number) sang chữ (Text) trong Excel

Cách phân biệt dạng dữ liệu trong Excel với nhóm hàm IsNumber, IsNonText, IsText


Cùng tham gia cộng đồng hỏi đáp về chủ đề Excel Cơ Bản

Thảo luận 0 câu trả lời
Lượt xem 1084 lượt xem
Vỗ tay vỗ tay

0 Bình luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội