So Sánh Hai Ô Trong Excel: Các Cách So Sánh Văn Bản Và Áp Dụng Thực Tiễn

Trong môi trường làm việc hiện đại, Excel không chỉ là một công cụ tính toán đơn thuần mà còn là một nền tảng mạnh mẽ để quản lý, phân tích và xử lý dữ liệu. Một trong những nhu cầu cơ bản và thường gặp nhất của người dùng là so sánh hai ô chứa văn bản (text) để xác định sự khác biệt, trùng khớp hoặc thực hiện các hành động tiếp theo dựa trên kết quả so sánh. Bài viết dưới đây sẽ cung cấp cho bạn một hướng dẫn chi tiết, đầy đủ và thực tiễn về cách so sánh hai ô trong Excel, bao gồm:

  1. Các hàm cơ bản để so sánh văn bản (EXACT, =, <>, LEFT, RIGHT, MID, FIND, SEARCH, LEN, SUBSTITUTE, REPLACE, TRIM, CLEAN, TEXT, VALUE, CONCATENATE, &,…).
  2. Sử dụng Conditional Formatting (định dạng có điều kiện) để hiển thị ngay các ô trùng hoặc khác nhau.
  3. Áp dụng công cụ “Remove Duplicates”, “Advanced Filter”, “Power Query” cho việc so sánh hàng loạt dữ liệu.
  4. Kỹ thuật so sánh không phân biệt chữ hoa/thường, bỏ dấu, bỏ khoảng trắng thừa, và các biến thể Unicode (tiếng Việt).
  5. Ví dụ thực tế: so sánh danh sách khách hàng, mã sản phẩm, địa chỉ email, mô tả sản phẩm…
  6. Mẹo tối ưu hiệu suất khi làm việc với hàng triệu dòng dữ liệu.
  7. Cách tự động hoá quy trình bằng VBA (macro) và Power Automate.

Mục lục bài viết

1. Hiểu rõ nhu cầu so sánh văn bản trong Excel

Trước khi đi sâu vào các công thức và công cụ, chúng ta cần xác định rõ mục tiêu của việc so sánh:

Mục tiêuMô tảPhương pháp thường dùng
Kiểm tra trùng lặpXác định ô nào có cùng nội dung với ô khác=A2=B2, EXACT, Conditional Formatting
So sánh không phân biệt hoa/thường“Apple” và “apple” được coi là giống nhau=LOWER(A2)=LOWER(B2) hoặc EXACT(LOWER(A2),LOWER(B2))
Bỏ dấu, bỏ khoảng trắng“Hà Nội ” vs “Ha Nội”TRIM, SUBSTITUTE, CLEAN, PROPER
Tìm phần chung hoặc khác nhauLấy phần chung hoặc phần khác biệtLEFT, RIGHT, MID, FIND, SEARCH
So sánh theo mẫu (wildcard)Kiểm tra ô chứa một chuỗi conCOUNTIF, SEARCH
Kiểm tra độ dàiSo sánh độ dài chuỗiLEN
Kiểm tra số nguyên hoặc ngàyChuyển đổi văn bản sang số/ngàyVALUE, DATEVALUE, TEXT

Việc lựa chọn công cụ phù hợp sẽ giúp bạn tiết kiệm thời gian, giảm lỗi và tăng tính tự động trong quy trình làm việc.

2. Các hàm cơ bản để so sánh hai ô văn bản

2.1. Hàm so sánh trực tiếp: = và <>

  • Cú pháp: =A1=B1 trả về TRUE nếu nội dung giống hệt, FALSE nếu khác.
  • Không phân biệt chữ hoa/thường? Không, hàm này phân biệt. Để bỏ qua, dùng LOWER hoặc UPPER.
  • Ví dụ:
  • Ô A2 chứa “Hello”, B2 chứa “hello”. =A2=B2 → FALSE.
  • =LOWER(A2)=LOWER(B2) → TRUE.

2.2. Hàm EXACT

  • Mô tả: So sánh hai chuỗi chính xác (phân biệt hoa/thường).
  • Cú pháp: =EXACT(text1, text2).
  • Ưu điểm: Dễ đọc, trả về TRUE/FALSE.
  • Ví dụ: =EXACT("Data","data") → FALSE.

2.3. Hàm TRIM + CLEAN + SUBSTITUTE

Đôi khi dữ liệu nhập vào có khoảng trắng thừa, ký tự không hiển thị (ASCII 0-31) hoặc dấu tiếng Việt. Để chuẩn hoá:

=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," ")))
  • CHAR(160) là dấu cách không phá vỡ (non‑breaking space).
  • CLEAN loại bỏ ký tự không hiển thị.
  • TRIM xóa khoảng trắng đầu/cuối và giảm nhiều khoảng trắng liên tiếp thành một.

Sau khi chuẩn hoá, bạn có thể so sánh:

=EXACT(TRIM(CLEAN(A2)), TRIM(CLEAN(B2)))

2.4. So sánh không phân biệt dấu (tiếng Việt)

Excel không có hàm built‑in để bỏ dấu. Tuy nhiên, bạn có thể tạo một hàm tùy chỉnh (UDF) trong VBA hoặc dùng công thức lồng nhau:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( LOWER(A2), "á","a"),"à","a"),"ả","a"),"ã","a"),"ạ","a")

Lặp lại cho các nguyên âm khác (â, ă, ê, ô, ơ, ú, ư, í, ó, etc.). Đối với hàng ngàn ký tự, việc này sẽ dài, vì vậy VBA thường là lựa chọn tốt hơn.

2.4.1. VBA: Hàm RemoveDiacritics

Function RemoveDiacritics(str As String) As String Dim i As Long, ch As String, s As String Dim arrAccents As Variant, arrPlain As Variant arrAccents = Array("á","à","ả","ã","ạ","â","ă","ấ","ầ","ẩ","ẫ","ậ","ắ","ằ","ẳ","ẵ","ặ","đ","é","è","ẻ","ẽ","ẹ","ê","í","ì","ỉ","ĩ","ị","ó","ò","ỏ","õ","ọ","ô","ơ","ú","ù","ủ","ũ","ụ","ư","ý","ỳ","ỷ","ỹ","ỵ") arrPlain = Array("a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","d","e","e","e","e","e","e","i","i","i","i","i","o","o","o","o","o","o","o","u","u","u","u","u","u","y","y","y","y","y") s = LCase(str) For i = LBound(arrAccents) To UBound(arrAccents) s = Replace(s, arrAccents(i), arrPlain(i)) Next i RemoveDiacritics = s
End Function

Sau khi lưu macro, bạn dùng:

=EXACT(RemoveDiacritics(A2), RemoveDiacritics(B2))

2.5. Hàm LEFT, RIGHT, MID, LEN

Đôi khi bạn chỉ cần so sánh phần đầu hoặc phần cuối của chuỗi.

  • So sánh 5 ký tự đầu: =LEFT(A2,5)=LEFT(B2,5)
  • So sánh 3 ký tự cuối: =RIGHT(A2,3)=RIGHT(B2,3)
  • So sánh ký tự từ vị trí thứ 3, độ dài 4: =MID(A2,3,4)=MID(B2,3,4)

Kết hợp với LEN để tránh lỗi khi chuỗi ngắn hơn độ dài muốn so sánh:

=IF(LEN(A2)>=5,LEFT(A2,5),"")=IF(LEN(B2)>=5,LEFT(B2,5),"")

2.6. Hàm FIND và SEARCH

  • FIND phân biệt chữ hoa/thường, trả về vị trí bắt đầu của chuỗi con.
  • SEARCH không phân biệt hoa/thường.

Kiểm tra A2 có chứa B2?

=ISNUMBER(FIND(B2,A2)) // phân biệt
=ISNUMBER(SEARCH(B2,A2)) // không phân biệt

Nếu muốn trả về TRUE/FALSE:

=IF(ISNUMBER(SEARCH(B2,A2)),TRUE,FALSE)

2.7. Hàm COUNTIF và COUNTIFS (wildcard)

Bạn có thể dùng COUNTIF để kiểm tra có tồn tại một chuỗi trong một dải ô.

  • Wildcard (bất kỳ ký tự nào) và ? (một ký tự).
  • Ví dụ: Kiểm tra A2 có chứa “ABC” ở bất kỳ vị trí nào trong dải B2:B100:
=COUNTIF(B2:B100,""&A2&"")>0

2.8. Hàm TEXT, VALUE, DATEVALUE

Khi dữ liệu là số hoặc ngày dưới dạng văn bản, chuyển đổi trước khi so sánh:

=VALUE(A2)=VALUE(B2) // so sánh số
=DATEVALUE(A2)=DATEVALUE(B2) // so sánh ngày

Nếu dữ liệu ngày có định dạng khác nhau (dd/mm/yyyy vs mm/dd/yyyy), dùng TEXT để chuẩn hoá:

=TEXT(A2,"yyyy-mm-dd")=TEXT(B2,"yyyy-mm-dd")

3. Định dạng có điều kiện (Conditional Formatting) để hiển thị kết quả so sánh

3.1. Đánh dấu các ô trùng nhau

  1. Chọn dải ô cần so sánh, ví dụ A2:A100.
  2. Vào Home → Conditional Formatting → New Rule → Use a formula to determine which cells to format.
  3. Nhập công thức:
=COUNTIF($B$2:$B$100, A2)>0
  1. Chọn màu nền (ví dụ: xanh lá).

Kết quả: mọi ô trong cột A có nội dung xuất hiện trong cột B sẽ được tô màu.

3.2. Đánh dấu các ô không trùng

Thay công thức thành:

=COUNTIF($B$2:$B$100, A2)=0

3.3. So sánh từng cặp A2 vs B2 (cùng hàng)

  • Chọn A2:B100.
  • Công thức:
=$A2<>$B2
  • Định dạng màu nền đỏ → các ô khác nhau sẽ hiển thị.

3.4. Định dạng “khác nhau nhưng chỉ một ký tự”

Bạn muốn phát hiện sự sai lệch chỉ 1 ký tự (ví dụ lỗi gõ). Dùng công thức:

=LEN(A2)=LEN(B2) AND (SUMPRODUCT(--(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)<>MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1)))=1)

Lưu ý: Công thức trên là mảng, cần nhập bằng Ctrl+Shift+Enter trong Excel 2026 trở về trước; trong Excel 365/2026 không cần.

4. So sánh hàng loạt dữ liệu: Remove Duplicates, Advanced Filter, Power Query

4.1. Remove Duplicates

Excel Compare Two Cells Text
Excel Compare Two Cells Text
  • Cách nhanh: Chọn cột (hoặc nhiều cột), vào Data → Remove Duplicates.
  • Giới hạn: chỉ loại bỏ trùng lặp, không cung cấp danh sách “khác nhau”.

4.2. Advanced Filter – Trích xuất các giá trị duy nhất & không trùng

  1. Chọn dữ liệu.
  2. Data → Advanced.
  3. Chọn Copy to another location, tick Unique records only.

Kết quả là danh sách không trùng lặp.

4.3. Power Query (Get & Transform)

Power Query là công cụ mạnh mẽ để so sánh, hợp nhất, và làm sạch dữ liệu lớn.

Bước 1: Load dữ liệu

  • Data → Get Data → From Table/Range (đối với mỗi bảng dữ liệu).

Bước 2: Chuẩn hoá dữ liệu

  • Transform → Format → Trim, Clean, Lowercase.
  • Add Column → Custom Column để tạo cột “NoDiacritics” bằng hàm Text.RemoveDiacritics (trong Power Query M ngôn ngữ, có sẵn).

Bước 3: Merge Queries (Join)

  • Home → Merge Queries.
  • Chọn cột chuẩn hoá (ví dụ: “NoDiacritics”) ở cả hai bảng, chọn Join Kind = Inner (để lấy trùng) hoặc Left Anti (để lấy không trùng).

Bước 4: Load kết quả

  • Close & Load → bảng mới trong Excel.

Power Query độc lập với kích thước dữ liệu (có thể xử lý hàng triệu dòng) và cho phép tự động hoá (Refresh) khi dữ liệu thay đổi.

5. Kỹ thuật so sánh không phân biệt chữ hoa/thường, bỏ dấu và khoảng trắng

5.1. Công thức tổng hợp

Giả sử A2 và B2 chứa văn bản tiếng Việt có dấu, khoảng trắng thừa, và có thể khác chữ hoa/thường. Công thức chuẩn hoá:

=EXACT( TRIM( SUBSTITUTE( LOWER( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( A2, "á","a"),"à","a"),"ả","a"),"ã","a"),"ạ","a"),"â","a"),"ă","a"),"đ","d"),"é","e"),"è","e"),"ẻ","e"),"ẽ","e"),"ẹ","e"),"ê","e"),"í","i"),"ì","i"),"ỉ","i"),"ĩ","i"),"ị","i"),"ó","o"),"ò","o"),"ỏ","o"),"õ","o"),"ọ","o"),"ô","o"),"ơ","o"),"ú","u"),"ù","u"),"ủ","u"),"ũ","u"),"ụ","u"),"ư","u"),"ý","y"),"ỳ","y"),"ỷ","y"),"ỹ","y"),"ỵ","y") ) ) )," ","") ) ), TRIM( SUBSTITUTE( LOWER( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( B2, "á","a"),"à","a"),"ả","a"),"ã","a"),"ạ","a"),"â","a"),"ă","a"),"đ","d"),"é","e"),"è","e"),"ẻ","e"),"ẽ","e"),"ẹ","e"),"ê","e"),"í","i"),"ì","i"),"ỉ","i"),"ĩ","i"),"ị","i"),"ó","o"),"ò","o"),"ỏ","o"),"õ","o"),"ọ","o"),"ô","o"),"ơ","o"),"ú","u"),"ù","u"),"ủ","u"),"ũ","u"),"ụ","u"),"ư","u"),"ý","y"),"ỳ","y"),"ỷ","y"),"ỹ","y"),"ỵ","y") ) ) )," ","") ) )
)

Giải thích:
– LOWER → chuyển về chữ thường.
– SUBSTITUTE → thay thế từng ký tự có dấu bằng ký tự không dấu.
– TRIM → xóa khoảng trắng đầu/cuối.
– SUBSTITUTE(...," ","") → xóa toàn bộ khoảng trắng (nếu muốn so sánh không có bất kỳ khoảng trắng nào).

Bạn có thể rút gọn bằng cách đặt danh sách thay thế vào một bảng phụ và dùng VLOOKUP/XLOOKUP trong một hàm tùy chỉnh.

5.2. Sử dụng hàm TEXTJOIN và mảng để thay thế nhanh

Nếu Excel 365 hỗ trợ dynamic arrays, bạn có thể viết:

=LET( accents, {"á","à","ả","ã","ạ","â","ă","đ","é","è","ẻ","ẽ","ẹ","ê","í","ì","ỉ","ĩ","ị","ó","ò","ỏ","õ","ọ","ô","ơ","ú","ù","ủ","ũ","ụ","ư","ý","ỳ","ỷ","ỹ","ỵ"}, plain, {"a","a","a","a","a","a","a","d","e","e","e","e","e","e","i","i","i","i","i","o","o","o","o","o","o","o","u","u","u","u","u","u","y","y","y","y","y"}, norm, LAMBDA(txt, LET( t, LOWER(txt), seq, SEQUENCE(ROWS(accents)), REPLACE(t, FIND(accents, t), 1, plain) // không thực tế, chỉ minh họa ) ), EXACT(TRIM(norm(A2)), TRIM(norm(B2)))
)

Tuy nhiên, hàm REPLACE không hoạt động như trên; nên VBA vẫn là cách thực tế hơn cho dữ liệu lớn.

6. Ví dụ thực tiễn

6.1. So sánh danh sách khách hàng

Giả sử bạn có hai sheet: KhachHang_NhanVien và KhachHang_Import. Mỗi sheet có cột Tên khách hàng (có dấu, hoa/thường khác nhau). Bạn muốn:

  • Xác định khách hàng trùng (để tránh import lại).
  • Liệt kê khách hàng mới (chỉ xuất hiện trong file import).

Bước 1: Chuẩn hoá cả hai cột:

=TRIM(LOWER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"á","a"),"é","e"),"đ","d")))

Sao chép công thức vào cột phụ Tên chuẩn.

Bước 2: Dùng VLOOKUP hoặc XLOOKUP:

=IFERROR(XLOOKUP(C2, KhachHang_NhanVien!$C$2:$C$5000, KhachHang_NhanVien!$C$2:$C$5000, "Mới"),"Mới")

Kết quả: trả về “Mới” nếu không tìm thấy, ngược lại trả về tên khách hàng trùng.

Bước 3: Đánh dấu bằng Conditional Formatting:

  • Công thức: =$D2="Mới" → nền màu cam.

6.2. So sánh mã sản phẩm (không phân biệt hoa/thường, bỏ ký tự “-”)

Mã sản phẩm có dạng AB-123-XYZ. Khi nhập thủ công, người dùng có thể bỏ dấu “-”. Để so sánh:

=SUBSTITUTE(UPPER(A2),"-","")=SUBSTITUTE(UPPER(B2),"-","")

Nếu muốn hiển thị “Khớp”/“Không khớp”:

=IF(SUBSTITUTE(UPPER(A2),"-","")=SUBSTITUTE(UPPER(B2),"-",""),"Khớp","Không khớp")

6.3. So sánh địa chỉ email (bỏ dấu “+” và phần sau khi “+” trong Gmail)

=LEFT(LOWER(A2),FIND("@",A2)-1)

Sau đó loại bỏ phần “+”:

=LEFT(LEFT(LOWER(A2),FIND("@",A2)-1), FIND("+",LEFT(LOWER(A2),FIND("@",A2)-1)&"+")-1) & MID(A2,FIND("@",A2),LEN(A2))

So sánh:

=EXACT(ProcessedEmailA, ProcessedEmailB)

6.4. So sánh mô tả sản phẩm để phát hiện “copy‑paste” gần giống

Bạn có thể dùng độ dài chuỗi và số ký tự khác nhau:

=LEN(A2)-LEN(SUBSTITUTE(A2,B2,"")) // số lần B2 xuất hiện trong A2

Hoặc dùng Levenshtein distance (khoảng cách chỉnh sửa) bằng VBA để tính độ tương đồng. Nếu khoảng cách ≤2, coi là “gần giống”.

Function Levenshtein(s As String, t As String) As Long Dim d() As Long, i As Long, j As Long, cost As Long Dim n As Long: n = Len(s) Dim m As Long: m = Len(t) ReDim d(0 To n, 0 To m) For i = 0 To n: d(i, 0) = i: Next i For j = 0 To m: d(0, j) = j: Next j For i = 1 To n For j = 1 To m If Mid(s, i, 1) = Mid(t, j, 1) Then cost = 0 Else cost = 1 d(i, j) = Application.Min(d(i - 1, j) + 1, d(i, j - 1) + 1, d(i - 1, j - 1) + cost) Next j Next i Levenshtein = d(n, m)
End Function

Sử dụng:

=Levenshtein(A2,B2)<=2

7. Tối ưu hiệu suất khi so sánh hàng triệu dòng

Khi dữ liệu lớn, việc dùng công thức mảng phức tạp sẽ làm Excel chậm. Các gợi ý:

Phương phápKhi nào dùngLợi ích
Power QueryDữ liệu > 100.000 hàngXử lý nhanh, không làm tắc Excel.
VBA + DictionarySo sánh 2 danh sách lớn, cần tìm nhanhO(1) tra cứu, giảm thời gian từ phút xuống giây.
Helper Column + INDEX/MATCHKhi muốn trả về giá trị tương ứngTránh công thức mảng.
PivotTable + Distinct CountĐếm số lần xuất hiện, phát hiện trùngTính toán nhanh, trực quan.
Database (SQL Server, Access)Dữ liệu > 1 triệuXử lý bằng truy vấn SQL, sau đó import kết quả.

7.1. Ví dụ VBA Dictionary để so sánh 2 danh sách

Sub CompareLists() Dim dict As Object, ws1 As Worksheet, ws2 As Worksheet Dim lastRow1 As Long, lastRow2 As Long, i As Long, key As String Set dict = CreateObject("Scripting.Dictionary") Set ws1 = ThisWorkbook.Sheets("Sheet1") Set ws2 = ThisWorkbook.Sheets("Sheet2") lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row ' Load Sheet1 vào Dictionary (chuẩn hoá) For i = 2 To lastRow1 key = Trim(LCase(ws1.Cells(i, "A").Value)) If Not dict.Exists(key) Then dict.Add key, i ' lưu vị trí dòng đầu tiên Next i ' Kiểm tra Sheet2 For i = 2 To lastRow2 key = Trim(LCase(ws2.Cells(i, "A").Value)) If dict.Exists(key) Then ws2.Cells(i, "B").Value = "Trùng (Sheet1 Row " & dict(key) & ")" Else ws2.Cells(i, "B").Value = "Mới" End If Next i MsgBox "Hoàn tất so sánh!", vbInformation
End Sub
  • Ưu điểm: O(n) cho mỗi danh sách, nhanh ngay cả với 1 triệu bản ghi.
  • Lưu ý: Đảm bảo đủ bộ nhớ, và chuẩn hoá dữ liệu (trim, lower) trước khi đưa vào dictionary.

8. Tự động hoá quy trình bằng Macro và Power Automate

8.1. Macro tự động kiểm tra trùng khi nhập dữ liệu

Bạn có thể gắn macro Worksheet_Change vào sheet:

Private Sub Worksheet_Change(ByVal Target As Range) Dim rngCheck As Range, cell As Range, key As String Set rngCheck = Me.Range("A2:A" & Me.Cells(Me.Rows.Count, "A").End(xlUp).Row) If Not Intersect(Target, rngCheck) Is Nothing Then Application.EnableEvents = False For Each cell In Intersect(Target, rngCheck) key = Trim(LCase(cell.Value)) If Application.WorksheetFunction.CountIf(rngCheck, key) > 1 Then cell.Interior.Color = vbYellow ' đánh dấu trùng Else cell.Interior.ColorIndex = xlNone End If Next cell Application.EnableEvents = True End If
End Sub

Điều này giúp ngay lập tức cảnh báo người dùng khi nhập dữ liệu trùng.

8.2. Power Automate (Flow) để so sánh dữ liệu trên SharePoint/OneDrive

  1. Trigger: Khi file Excel được cập nhật (OneDrive for Business).
  2. Action: “List rows present in a table” (lấy dữ liệu từ bảng).
  3. Apply to each: Duyệt từng dòng, dùng biểu thức equals(toLower(trim(item()?'Column1')), toLower(trim(item()?'Column2'))).
  4. Condition: Nếu true → cập nhật cột “Status” = “Trùng”, ngược lại “Mới”.
  5. Write back: “Update a row” để ghi lại kết quả.

Power Automate cho phép đồng bộ dữ liệu giữa nhiều nguồn (SharePoint, SQL, Teams) mà không cần mở Excel.

9. Tổng kết – Lựa chọn giải pháp phù hợp

Nhu cầuCông cụ đề xuấtKhi nào sử dụng
So sánh nhanh 1‑2 ô (cùng hàng)= , EXACT, Conditional FormattingDữ liệu ít, không cần chuẩn hoá phức tạp
So sánh danh sách lớn, cần chuẩn hoá (dấu, khoảng trắng)Power Query + Clean/Trim/Lower, hoặc VBA RemoveDiacriticsDữ liệu > 10.000, cần chuẩn hoá
Kiểm tra trùng lặp trong 2 cộtCOUNTIF, XLOOKUP, Conditional FormattingDễ dàng, không cần macro
So sánh không phân biệt hoa/thường, bỏ dấuVBA UDF (RemoveDiacritics) hoặc Power Query Text.RemoveDiacriticsKhi dữ liệu tiếng Việt có dấu
So sánh theo mẫu (wildcard)COUNTIF, SEARCHKhi muốn kiểm tra “có chứa”
Kiểm tra “gần giống” (Levenshtein)VBA functionKhi cần phát hiện lỗi gõ, sao chép gần giống
Xử lý hàng triệu dòngPower Query, VBA Dictionary, hoặc chuyển sang DBKhi Excel chậm, cần hiệu suất cao
Tự động hoá quy trìnhMacro (Worksheet_Change) + Power AutomateKhi muốn cảnh báo ngay lập tức hoặc đồng bộ đa nguồn

Việc hiểu rõ mục tiêu, chọn công cụ phù hợp, và áp dụng chuẩn hoá dữ liệu là chìa khóa để so sánh hai ô (hoặc hàng) văn bản trong Excel một cách chính xác và hiệu quả. Hy vọng bài viết này đã cung cấp cho bạn một bộ công cụ toàn diện, từ các hàm cơ bản đến các giải pháp nâng cao, giúp bạn tự tin xử lý mọi tình huống so sánh dữ liệu trong công việc hằng ngày. Chúc bạn thành công!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận