Cách Tìm Dữ Liệu Khác Nhau Trong 2 Bảng Excel

Giới thiệu chung

Trong công việc quản lý dữ liệu, bạn thường phải so sánh hai bộ dữ liệu để tìm ra những dòng, cột hoặc giá trị khác nhau. Dù dữ liệu được lưu trữ trong cùng một bảng Excel hay hai file riêng biệt, việc xác định “sự khác biệt” một cách chính xác và nhanh chóng luôn là một thách thức. Dưới đây, chúng ta sẽ đi qua nhiều phương pháp, từ các công thức đơn giản, Conditional Formatting, Power Query, cho tới việc viết một đoạn macro VBA. Mỗi phương pháp có ưu điểm và hạn chế riêng, vì vậy bạn sẽ có thể chọn công cụ phù hợp với quy mô và đặc tính dữ liệu của mình.

1. So sánh dữ liệu bằng Conditional Formatting

1.1 Mục tiêu

Hiển thị ngay lập tức những ô có giá trị khác nhau giữa hai bảng.

1.2 Cách thực hiện

  1. Chọn vùng dữ liệu đầu tiên (ví dụ A1:D100).
  2. Vào Home → Conditional Formatting → New Rule → Use a formula to determine which cells to format.
  3. Nhập công thức:
    excel =A1<>INDIRECT("Sheet2!A1")
  4. Giả sử Sheet2 là bảng thứ hai.
  5. Đảm bảo vùng tham chiếu đúng (đừng quên dấu $ nếu cần cố định cột/góc).
  6. Chọn màu nền hoặc kiểu chữ để làm nổi bật.
  7. Nhấn OK. Excel sẽ tự động tô màu tất cả các ô khác nhau giữa hai bảng.

1.3 Lưu ý

  • Phương pháp này chỉ áp dụng cho cùng một file Excel và đối chiếu theo tọa độ. Nếu bảng thứ hai có sắp xếp lại dòng/ cột, công thức cần được điều chỉnh.
  • Khi dữ liệu lớn, Conditional Formatting có thể làm giảm tốc độ tính toán.

2. Sử dụng công แกรม Excel chuẩn

2.1 Công thức VLOOKUP + IFERROR

  • Mục tiêu: Kiểm tra sự tồn tại của một giá trị trong bảng thứ hai và so sánh nội dung.

Ví dụ:

=IFERROR(IF(VLOOKUP(A2, Sheet2!A:D, 2, FALSE)=B2, "Đồng nhất", "Khác"), "Không có")
  • Giải thích:
  • VLOOKUP(A2, Sheet2!A:D, 2, FALSE) tìm giá trị trong cột A của Sheet2 và trả về giá trị tương ứng ở cột B.
  • So sánh với giá trị hiện tại B2.
  • Nếu không tìm thấy, IFERROR trả về “Không có”.

Tùy chỉnh:

  • Thay VLOOKUP bằng XLOOKUP (Excel 365) để linh hoạt hơn:
    excel =IFERROR(IF(XLOOKUP(A2, Sheet2!A:A, Sheet2!B:B, "")=B2, "Đồng nhất", "Khác"), "Không có")

2.2 Công thức COUNTIF

  • Mục tiêu: Đếm số lần xuất hiện của một giá trị trong bảng 세번째 và so sánh.
=IF(COUNTIF(Sheet2!A:A, A2)>0, "Có", "Không")

2.3 Công thức EXACT

  • Mục tiêu: So sánh chính xác (kích thước chữ hoa/ thường).
=IF(EXACT(A2, INDEX(Sheet2!A:A, MATCH(A2, Sheet2!A:A, 0))), "Đúng", "Sai")

3. Sử dụng công cụ Power Query

3.1 Giải pháp tổng quát

Power Query (Get & Transform) cung cấp một nền tảng mạnh mẽ để so sánh, hợp nhất, và tìm kiếm sự khác biệt giữa hai bảng dữ liệu, ngay cả khi symbols như file Excel, CSV, hoặc nguồn dữ liệu khác nhau.

3.2 Các bước thực לפחות

BướcThao tácMô tả
1Nhập dữ liệuVào Data → Get Data → From Workbook và chọn file Excel chứa bảng thứ nhất.
2Nhập bảng thứ haiLặp lại bước 1 với file hoặc sheet thứ hai.
3Thực hiện hợp nhấtTrong Power Query Editor, chọn một bảng, sau đó Home → Merge Queries.
4Chọn cột khóa (key column)Chọn cột có giá trị duy nhất (ID, Email,…) trong cả hai bảng.
5Loại bỏ cột không cầnKéo cột cần so sánh, sau đó click Remove Other Columns.
6Xác định sự khác biệtThêm cột Custom: = if Column1 <> Column2 then "Khác" else "Đồng".
7Lưu kết quảClick Close & Load vào sheet mới.

3.3 Ưu điểm

  • Không cần viết công thức.
  • Dễ dàng xử lý dữ liệu lớn, tự động cập nhật khi nguồn thay đổi.
  • Có thể kết hợp với các bước Data Cleaning (loại bỏ trống, chuẩn hóa kiểu dữ liệu).

3.4 Hạn chế

  • Cần phải quen với giao diện Power Query.
  • Đối với người mới, việc thiết lập nguồn dữ liệu có thể mất thời gian.

4. Sử dụng Pivot Table + Calculated Field

4.1 Mục tiêu

Cách Tìm Dữ Liệu Khác Nhau Trong 2 Bảng Excel
Cách Tìm Dữ Liệu Khác Nhau Trong 2 Bảng Excel

Sử dụng Pivot Table để tổng hợp và so sánh dữ liệu.

4.2 Bước thực hiện

  1. Tạo Pivot Table từ bảng thứ nhất.
  2. Thêm cột ID vào Rows, Số lượng vào Values.
  3. Đặt Pivot Table thứ hai trong cùng một workbook.
  4. Tạo Calculated Field:
    excel Difference = Sum1 - Sum2
  5. Lọc Difference <> 0 để chỉ hiển thị dòng có sự khác biệt.

4.3 Lợi ích

  • Dễ dàng tính toán tóm tắt, tổng hợp.
  • Thích hợp cho dữ liệu có tính tổng hợp (tổng, trung bình).

4.4 Hạn chế

  • Không phù hợp với so sánh từng dòng chi tiết.
  • Cần có dữ liệu định dạng đồng nhất.

5. So sánh bằng VBA Macro

5.1 Khi nào dùng VBA

  • Dữ liệu quá lớn, công thức truyền thống làm chậm.
  • Cần tự động hoá quá trình so sánh và ghi nhận kết quả vào file log.
  • Cần thực hiện quy trình phức tạp hơn (ví dụ:ە xóa dòng nào, ghi nhận vào log, gửi email).

5.2 Mẫu macro

Sub CompareTables() Dim ws1 As Worksheet, ws2 As Worksheet Dim rng1 As Range, rng2 As Range Dim cell As Range, matchCell As Range Dim outputRow As Long Set ws1 = ThisWorkbook.Sheets("Sheet1") Set ws2 = ThisWorkbook.Sheets("Sheet2") Set rng1 = ws1.Range("A2:D" & ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row) Set rng2 = ws2.Range("A2:D" & ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row) outputRow = 2 With ThisWorkbook.Sheets("Report") .Cells.Clear .Range("A1:D1").Value = Array("ID", "Column1", "Column2", "Result") For Each cell In rng1.Columns(1).Cells Set matchCell = rng2.Columns(1).Find(cell.Value, LookIn:=xlValues, LookAt:=xlWhole) If Not matchCell Is Nothing Then If cell.Offset(0, 1).Value <> matchCell.Offset(0, 1).Value Or _ cell.Offset(0, 2).Value <> matchCell.Offset(0, 2).Value Then .Cells(outputRow, 1).Value = cell.Value .Cells(outputRow, 2).Value = cell.Offset(0, 1).Value .Cells(outputRow, 3).Value = cell.Offset(0, 2).Value .Cells(outputRow, 4).Value = "Khác nhau" outputRow = outputRow + 1 End If Else .Cells(outputRow, 1).Value = cell.Value .Cells(outputRow, 4).Value = "Không có trong Sheet2" outputRow = outputRow + 1 End If Next End With
End Sub

5.3 Giải thích

  • Find: Tìm giá trị theo ID.
  • Offset: Truy cập các cột khác.
  • Report: Ghi lại các dòng có khác biệt, hoặc không tồn tại trong bảng thứ hai.
  • Macro này có thể được chạy tự động khi file mở hoặc khi cần.

5.4 Lưu ý

  • Macro Tian bị hạn chế bởi Trust Center Settings.
  • Phải lưu file dưới định dạng .xlsm.
  • Cần kiểm tra kỹ lỗi trong quá trình chạy (đối chiếu các dòng trống, kiểu dữ liệu khác nhau).

6. Kết hợp nhiều phương pháp

Đôi khi, một phương pháp duy nhất không đủ. Ví dụ: bạn muốn tìm giá trị khác nhau và đồng thời loại bỏ dữ liệu trùng lặp.

6.1 Quy trình

  1. Sử dụng Power Query để merge hai bảng, tạo cột “Status” (מק).
  2. Dùng Conditional Formatting để tô màu những dòng “Khác”.
  3. Nếu cần, chạy VBA để ghi lại danh sách vào file log غسل.

6.2 Lợi ích

  • Tự động hóa: Khi dữ liệu cập nhật, Power Query tự refresh.
  • Hiển thị trực quan: Conditional Formatting giúp người dùng nhanh chóng nhận diện.
  • Ghi nhận chi tiết: Macro ghi lại danh sách thay đổi, phục vụ audit.

7. Những lưu ý khi so sánh dữ liệu

Nhiệm vụLưu ý
Dữ liệu có trùng lặpĐảm bảo chỉ so sánh những dòng có ID duy nhất.
Kiểu dữ liệu khác nhauChuẩn hóa dữ liệu (Chuyển đổi ngày tháng, số thập phân, loại chữ hoa/ thường).
Cột thay đổi vị tríSử dụng công thức INDEX + MATCH hoặc XLOOKUP, tránh phụ thuộc vào vị trí cột.
Dữ liệu lớn (>10k dòng)Sử dụng Power Query hoặc VBA, tránh công thức array phức tạp trong ô.
Tự động cập nhậtĐặt công thức vào một sheet “Results” và sử dụng =IFERROR(VLOOKUP(...), "") để tự động cập nhật khi dữ liệu thay đổi.

8. Tổng kết

  • Conditional Formatting: Dễ dùng, nhanh nhạy nhưng không phù hợp với dữ liệu lớn.
  • Công thức Excel (VLOOKUP/XLOOKUP/COUNTIF/EXACT): Linh hoạt, nhưng cần kiến thức công thức sâu.
  • Power Query: Thích hợp cho dữ liệu lớn, có thể kết hợp nhiều bước xử lý dữ liệu.
  • Pivot Table: Tốt cho dữ liệu tổng hợp, không phải chi tiết.
  • VBA Macro: Đáp ứng nhu cầu tự động hoá, xử lý phức tạp.

Bạn có thể chọn phương pháp phù hợp với độ phức tạp và độ lớn dữ liệu. Khi làm việc thực tế, thường là kết hợp Power Query + Conditional Formatting để có báo cáo trực quan ngay lập tức, và VBA để xuất kết quả chi tiết khi cần thiết.

Bằng cách hiểu rõ từng công cụ và tận dụng đúng vị trí, bạn sẽ tiết kiệm thời gian, tránh sai sót và nâng cao độ tin cậy của dữ liệu trong doanh nghiệp.

⚠️
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