Có thể bạn quan tâm: Lọc Dữ Liệu Với Nhiều Điều Kiện Trong Excel
Giới thiệu
Trong công việc quản lý dữ liệu, xử lý số liệu thường xuyên gặp phải tình huống cần tìm ra các giá trị trùng lặp giữa hai cột dữ liệu khác nhau. Việc này không chỉ giúp bạn xác định được những mục tiêu quan trọng trong báo cáo, mà còn hỗ trợ quá trình phân tích, lọc và tổng hợp dữ liệu hiệu quả hơn. Excel, với những công cụ mạnh mẽ và tính linh hoạt cao, luôn là lựa chọn ưu tiên cho các thao tác như vậy.
Bài viết này sẽ hướng dẫn chi tiết cách lọc số trùng nhau giữa hai cột trong Excel bằng nhiều phương pháp khác nhau: dùng công thức, Conditional Formatting, hàm FILTER, Power Query, và thậm chí viết một macro VBA. Bạn sẽ tìm thấy bước thực hiện từng phương pháp, ví dụ minh họa, và lời khuyên để tối ưu hiệu suất làm việc.
Có thể bạn quan tâm: Hướng Dẫn Chuyển Chữ Thường Thành Chữ Hoa Trong Excel: Cách Nhanh, Công Thức, مصطفى Vba Và Mẹo Tối Ưu
1. Tại sao cần lọc trùng lặp giữa hai cột?
Trước khi đi vào chi tiết kỹ thuật, hãy xem xét lý do tại sao việc lọc trùng lặp giữa hai cột lại quan trọng trong nhiều lĩnh vực:
- Xác định dữ liệu chung: Khi bạn có hai danh sách khách hàng, mã sản phẩm, hoặc mã giao dịch, việc biết được những mục có mặt trong cả hai danh sách giúp xác định vùng chung.
- Kiểm tra tính toàn vẹn dữ liệu: Nếu dữ liệu trong hai cột phải khớp nhau (ví dụ: mã sai trong một cột), bạn có thể phát hiện ngay các sai sót.
- Tối ưu hoá báo cáo: Khi chuẩn bị báo cáo, bạn có thể loại bỏ những dòng không cần thiết, giảm độ dài bảng, giúp người đọc nhanh chóng nắm bắt thông tin quan trọng.
- Phân tích hành vi khách hàng: Trong marketing, biết khách hàng đã mua sản phẩm A và B cùng lúc giúp.Nil.
Việc lọc trùng lặp được thực hiện qua nhiều công cụ trong Excel, tùy thuộc vào quy mô dữ liệu và nhu cầu cụ thể.
Có thể bạn quan tâm: Lệnh Chuyển Chữ Thường Sang Chữ Hoa Trong Excel
2. Chuẩn bị dữ liệu mẫu
Trước khi áp dụng bất kỳ công thức nào, hãy tạo một bảng dữ liệu mẫu để thực hành. Dưới đây là ví dụ với hai cột A và B, mỗi cột chứa danh sách số nguyên (hoặc mã, chuỗi ký tự).
| A | B | |
|---|---|---|
| 1 | 101 | 101 |
| 2 | 102 | 103 |
| 3 | 103 | 104 |
| 4 | 104 | 101 |
| 5 | 105 | 105 |
| 6 | 106 | 110 |
| 7 | 107 | 107 |
| 8 | 108 | 108 |
| 9 | 109 | 111 |
| 10 | 110 | 112 |
Trong ví dụ này, các giá trị trùng lặp giữa hai cột là: 101, 103, 104, 105, 107, 108. Mục tiêu của chúng ta là lọc các giá trị này ra một danh sách riêng biệt hoặc đánh dấu chúng trong bảng gốc.
3. Phương pháp 1: Sử dụng công thức mảng với hàm IF, COUNTIF và FILTER
3.1 Công thức đơn giản: IF + COUNTIF
Nếu bạn chỉ muốn hiển thị một cột danh sách các giá trị trùng lặp, bạn có thể dùng công thức mảng:
=IF(COUNTIF($B$1:$B$10;A1)>0;A1; "")
COUNTIF($B$1:$B$10;A1)đếm số lần A1 xuất hiện trong cột B. Nếu >0, có trùng lặp.IF(...;A1; "")trả về giá trị A1 nếu tồn tại trong B, ngược lại trả về chuỗi trống.
Bạn hãy nhập công thức vào ô C1 và kéo xuống cho hết các hàng trong cột A. Kết quả sẽ là danh sách các giá trị trùng lặp, nhưng còn có Associated blank cells.
3.2 Xóa giá trị trống: FILTER (Excel 365/Excel 2019engo)
Nếu bạn dùng phiên bản Excel hỗ trợ hàm FILTER, bạn có thể tạo danh sách trùng lặp mà không còn giá trị trống:
=FILTER(A1:A10; COUNTIF(B1:B10; A1:A10)>0)
COUNTIF(B1:B10; A1:A10)trả về mảng số lượng trùng lặp trong cột B cho từng giá trị trong A.FILTER(A1:A10; condition)lọc ra những giá trị thoả điều kiện.
Kết quả sẽ là một danh sách mảng chứa chính xác các giá trị trùng lặp.
3.3 Lọc trùng lặp và loại bỏ giá trị bị trùng (unique)
Nếu bạn muốn hiển thị danh sách trùng lặp mà không bao gồm các giá trị bị trùng lặp nhiều hơn một lần trong bảng, bạn có thể maart:
=FILTER(A1:A10; (COUNTIF(B1:B10; பதA1:A10)>0)(COUNTIF(A1:A10; A1:A10)=1))
(COUNTIF(B1:B10; A1:A10)>0)kiểm tra trùng lặp.(COUNTIF(A1:A10; A1:A10)=1)đảm bảo giá trị chỉ xuất hiện một lần trong cột A.
3.4 Lưu ý
- Công thức
FILTERchỉ có thể chạy trên các phiên bản Excel mới (Excel 365, Excel 2026). Nếu bạn đang dùng Excel 2026 hoặc cũigraph, công thức này sẽ không hoạt động. - Đối với dữ liệu lớn (thousands rows),
COUNTIFcó thể làm chậm Kol. Bạn có thể dùngXLOOKUPhoặcVLOOKUPđể tăng tốc.
4. Phương pháp 2: Sử dụng Conditional Formatting để đánh dấu trùng lặp
4.1 Thiết lập Conditional Formatting
- Chọn cột A (A1:A10).
- Vào
Home>Conditional Formatting>New Rule. - Chọn
Use a formula to determine which cells to format. - Nhập công thức:
=COUNTIF($B$1:$B$10; A1)>0
- Chọn định dạng (ví dụ: nền màu vàng).
- Nhấn OK.
Bây giờ, các ô trong cột A có giá trị trùng với ô trong cột B sẽ được tô màu.
4.2 Phương pháp ngược lại (đánh dấu trùng lặp trong cột B)
Tương tự, bạn có thể áp dụng công thức:
=COUNTIF($A$1:$A$10; B1)>0
4.3 Lời khuyên
- Đảm bảo rằng vùng tham chiếu
$B$1:$B$10và$A$1:$A$10là cố định (dùng dấu$) để tránh thay đổi khi kéo công thức. - Bạn có thể áp dụng Conditional Formatting cho cả hai cột đồng thời để nhận được một cái nhìn tổng quan.
5. Phương pháp 3: Sử dụng Power Query để lọc trùng lặp

Có thể bạn quan tâm: Lọc Giá Trị Từ Lớn Đến Nhỏ Trong Excel: Cách Thực Hiện, Thủ Thuật Và Ứng Dụng Thực Tế
5.1 Tải dữ liệu vào Power Query
- Chọn bảng dữ liệu (cột A và B).
- Vào
Data>From Table/Range. Nếu bảng chưa là bảng, Excel sẽ hỏi bạn có muốn chuyển đổi thành bảng không; chọnOK. - Power Query Editor sẽ mở ra.
5.2 Thêm cột tính toán
- Vào menu
Add Column>Custom Column. - Đặt tên
InOtherColumnvà nhập công thức:
if List.Contains(List.Transform(B, each _), A) then true else false
List.Containskiểm tra xem giá trịAcó nằm trong danh sáchBkhông.
5.3 Lọc ra cột trùng lặp
- Chọn cột
InOtherColumn, nhấnFilter>True. Bây giờ bảng chỉ hiển thị những dòng có trùng lặp. - Nếu bạn muốn chỉ lấy cột A trùng lặp, chọn cột A, sau đó
Remove Other Columns.
5.4 Lưu và tải dữ liệu trở lại Excel
- Nhấn
Close & Load. Power Query sẽ tạo một bảng mới trong Excel chứa kết quả.
5.5 Ưu điểm của Power Query
- Đối với dữ liệu lớn (thousands rows), Power Query làm việc nhanh hơn.
- Dễ dàng tái sử dụng quy trình khi dữ liệu cập nhật.
- Hỗ trợ thao tác chuyển đổi dữ liệu phức tạp hơn, như loại bỏ bảng trùng lặp, chuyển đổi kiểu dữ liệu, v.v.
6. Phương pháp 4: Sử dụng hàm XLOOKUP để kiểm tra trùng lặp
6.1 Công thức XLOOKUP
=IF(ISNUMBER(XLOOKUP(A1; B ; B ; #N/A)); A1; "")
XLOOKUP(A1; B1:B10; B1:B10; #N/A)tìm giá trị A1 trong cột B. Nếu tìm thấy, trả về giá trị gốc; nếu không, trả về lỗi #N/A.ISNUMBER()kiểm tra xem kết quả có phải là số hay không (tức là tìm thấy).IF()hiển thị giá trị A1 nếu tìm thấy, ngược lại trống.
Khi kéo công thức xuống, bạn sẽ nhận được danh sách trùng lặp mà không có giá trị trống.
6.2 Lưu ý
- XLOOKUP là hàm mới trong Excel 365/Excel 2026. Nếu bạn đang dùng Excel 2026 hay cũ, bạn cần dùng
VLOOKUPhoặcINDEX/MATCH.
7. Phương pháp 5: Viết macro VBA để lọc trùng lặp
Nếu bạn thường xuyên phải lọc trùng lặp giữa hai cột, viết một macro đơn giản sẽ tiết kiệm thời gian. Dưới đây là ví dụ macro:
Sub FilterDuplicateBetweenColumns() Dim ws As Worksheet Dim listA As Range, listB As Range Dim cell As Range Dim outRow As Long Set ws = ActiveSheet Set listA = ws.Range("A1:A10") Set listB = ws.Range("B1:B10") ' Xóa nội dung cột C trước khiDIT ws.Range("C1:C10").ClearContents outRow = 1 For Each cell In listA If WorksheetFunction.CountIf(listB, cell.Value) > 0 Then ws.Cells(outRow, 3).Value = cell.Value outRow = outRow + 1 End If Next cell MsgBox "Đã lọc trùng lặp và lưu vào cột C!"
End Sub
7.1 Hướng dẫn sử dụng
- Nhấn
Alt+F11để mở VBA editor. - Vào
Insert>Module, dán đoạn mã trên vào. - Trở lại Excel, nhấn
Alt+F8, chọnFilterDuplicateBetweenColumns, nhấnRun. - Macro sẽ tạo danh sách trùng lặp trong cột C.
7.2 Tùy chỉnh macro
- Thay đổi phạm vi
A1:A10vàB1:B10theo dữ liệu thực tế. - Nếu bạn muốn làm việc trên nhiều sheet, bạn có thể thêm tham số
sheetNamevào macro.
8. So sánh các phương pháp
| Phương pháp | Độ phức tạp | Tốc độ xử lý | Tính linh hoạt | Yêu cầu phiên bản Excel |
|---|---|---|---|---|
Công thức mảng (FILTER) | Trung bình | Nhanh với dữ liệu nhỏ | Kém | 365/2026 |
| Conditional Formatting | Dễ | Nhanh | Tốt cho hiển thị | Mọi phiên bản |
| Power Query | Trung bình | Rất nhanh với dữ liệu lớn | Rất linh hoạt | 2026+ |
| XLOOKUP | Dễ | Nhanh | Thích hợp cho dữ liệu dạng bảng | 365/2026 |
| VBA | Cao | Rất nhanh | Rất linh hoạt | Mọi phiên bản |
9. Thực hành: Ứng dụng trong báo cáo thực tế
Giả sử bạn đang làm việc cho một công ty bán lẻ. Bạn có hai bảng dữ liệu:
- Bảng A: Danh sách khách hàng đã mua sản phẩm A.
- Bảng B: Danh sách khách hàng đã mua sản phẩm B.
Bạn muốn tìm ra những khách hàng đã mua cả hai sản phẩm để gửi chương trình khuyến mãi đặc biệt. Dưới đây là cách bạn có thể thực hiện:
- Sử dụng công thức
FILTER: Trích xuất danh sách khách hàng trùng lặp và xuất ra một bảng riêng. - Conditional Formatting: Đánh dấu các hàng trong bảng A chứa khách hàng đã mua B.
- Power Query: Tạo một bảng “Kết hợp” chứa
INNER JOINgiữa A và B.
Kết quả cuối cùng: Bạn có danh sách khách hàng duy nhất đã mua cả hai sản phẩm và có thể sử dụng dữ liệu này để gửi email khuyến mãi.
10. Tối ưu hóa hiệu suất khi làm việc với dữ liệu lớn
Khi số lượng hàng vượt lên hàng chục ngàn hoặc hàng trăm ngàn, việc dùng công thức COUNTIF hoặc tshuaj có thể làm Excel chậm. Dưới đây là một số mẹo:
- Sử dụng Table: Đặt dữ liệu vào
Insert > Table. Khi áp dụng công thức, vùng tham chiếu sẽ tự động mở rộng khi thêm dữ liệu mới. - Chọn phạm vi cụ thể: Tránh dùng
A:AhoặcB:Btrong công thức; thay vào đó, dùngA1:A1000, vì Excel sẽ tính toán toàn bộ cột. - Sử dụng Power Query: Đối với dữ liệu lớn, Power Query thường nhanh hơn rất nhiều.
- Sử dụng hàm
XLOOKUPhoặcMATCH: Thay vìCOUNTIF, dùngXLOOKUPcó thể tối ưu hơn khiajin. - Tắt tính năng tự động tính toán: Trong
Formulas > Calculation Options > Manual. Sau khi hoàn thành công việc, chọnRecalculateđể cập nhật.
11. Gợi ý nâng cao: Lọc trùng lặp giữa nhiều cột
Nếu bạn có hơn hai cột và muốn lọc trùng lặp giữa tất cả chúng, bạn có thể mở rộng công thức như sau:
=FILTER(A1:A10; COUNTIFS(B1:B10; A1:A10; C1:C10; A1:A10)>0)
Hoặc sử dụng Power Query để thực hiện INNER JOIN nhiều lần.
12. Kết luận
Lọc số trùng nhau giữa hai cột trong Excel là một kỹ năng thiết yếu, giúp bạn nhanh chóng xác định dữ liệu chung, kiểm tra tính toàn vẹn và nâng cao hiệu quả báo cáo. Bài viết đã trình bày đầy đủ các phương pháp: từ công thức đơn giản, Conditional Formatting, Power Query, hàm XLOOKUP, đến macro VBA. Bạn có thể chọn phương pháp phù hợp tùy theo:
- Quy mô dữ liệu (nhỏ, vừaின்ற, lớn).
- Phiên bản Excel mà bạn đang sử dụng.
- Kỹ năng lập trình (macro).
- Yêu cầu tính linh hoạt (tạo báo cáo, tự động hoá).
Bằng cách áp dụng những công cụ này, bạn sẽ tiết kiệm thời gian, tránh sai sót và nâng cao năng suất làm việc trong các dự án quản lý dữ liệu. Happy filtering!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
