Cách xóa dữ liệu trùng trong Excel theo một hoặc nhiều cột


Cách xóa dữ liệu trùng trong Excel là chọn cả bảng, vào Data → Remove Duplicates rồi tích các cột dùng để xét trùng. Excel giữ lần xuất hiện đầu tiên và loại các bản ghi lặp phía sau. Trước khi làm, hãy tạo bản sao để tránh mất thông tin cần giữ.
Nếu bạn cần học cách chọn cột xét trùng trên bảng công việc, có thể Chat Zalo với Gia Sư Tin Học Online để trao đổi nhu cầu học.
Hai dòng được coi là trùng khi chúng giống nhau ở các cột bạn chọn để so sánh. Cùng một bảng, chọn khác cột có thể cho kết quả xóa khác nhau. Hãy xác định mỗi dòng đang đại diện cho điều gì trước khi bấm lệnh.
Trong danh sách khách hàng, một mã có thể tương ứng một người cần liên hệ. Nhưng trong bảng bán hàng, một mã khách xuất hiện nhiều lần vì khách mua nhiều đơn. Xóa theo mã khách ở bảng thứ hai sẽ làm mất các giao dịch hợp lệ.
Cột khóa là cột dùng để nhận diện bản ghi trong nhiệm vụ đang xử lý. Đó có thể là mã khách, mã sản phẩm hoặc tổ hợp mã đơn và mã hàng. Tên khách thường chưa đủ để làm khóa, vì nhiều người có thể trùng tên.
Chẳng hạn, đơn DH101 có hai mặt hàng SP01 và SP02. Hai dòng cùng mã đơn vẫn cần được giữ nếu mỗi dòng mô tả một mặt hàng. Chỉ khi tổ hợp mã đơn và mã hàng lặp lại, bạn mới xem xét đó có phải dòng nhập thừa hay không.
Việc xóa trùng phù hợp khi bạn đã có quy tắc giữ một bản ghi. Nếu mục tiêu là cộng số lượng của các lần mua, bạn cần tổng hợp dữ liệu; xóa bớt dòng không thay thế phép cộng đó.
Một bản sao nguyên vẹn và vùng dữ liệu đầy đủ giúp bạn kiểm soát việc xóa. Hãy lưu tệp dưới tên khác hoặc sao chép sheet, rồi thao tác trên bản làm việc. Đừng chỉ dựa vào khả năng hoàn tác sau nhiều bước chỉnh sửa.
Phần tiêu đề nên nằm trên một hàng, mỗi cột có tên rõ ràng. Tách dòng ghi chú và tổng cộng khỏi danh sách. Nếu bảng có ô gộp, cấu trúc phân cấp hoặc Subtotal, hãy chuẩn bị lại thành bảng phẳng trước khi xử lý.
Vùng chọn phải chứa tất cả thông tin thuộc cùng một bản ghi. Ví dụ, mã hàng nằm ở A, tên hàng ở B và số lượng ở C thì chọn đủ A:C trong phạm vi cần làm. Chỉ chọn A có thể khiến danh sách mã bị rút ngắn trong khi các thông tin bên cạnh vẫn giữ vị trí cũ.
Hãy bỏ bộ lọc và kiểm tra hàng ẩn trên bản sao để nhìn được toàn bộ phạm vi dự định xử lý. Không suy đoán rằng lệnh chỉ xét những dòng đang hiện trên màn hình. Những bảng khác đặt cạnh danh sách cũng nên được tách rõ.
Ghi lại số dòng ban đầu, không tính tiêu đề. Có thể thêm cột thứ tự để truy vết bản ghi về sau, nhưng không tích cột này khi xét trùng. Mỗi số thứ tự khác nhau sẽ khiến các dòng vốn lặp trở thành khác nhau nếu bạn chọn cả cột đó.
Remove Duplicates xóa bản ghi ngay trong vùng dữ liệu được chọn. Các bước dưới đây dùng tên lệnh tiếng Anh trên Excel Windows; ở giao diện tiếng Việt, lệnh tương ứng thường là Loại bỏ các nội dung trùng lặp trong thẻ Dữ liệu.
Ô My data has headers giúp Excel phân biệt tiêu đề với bản ghi. Nhìn danh sách tên cột trong hộp thoại để kiểm tra vùng chọn. Nếu tên hiển thị không đúng bảng đang làm, nên hủy hộp thoại và chọn lại.
Các ô tích quyết định tiêu chí so sánh. Bỏ tích cột tên hàng không có nghĩa Excel sẽ giữ riêng ô tên hàng của bản ghi bị xóa. Khi phát hiện trùng, lệnh loại cả bản ghi trên các cột thuộc vùng bạn đã chọn; dữ liệu ngoài vùng không tự dịch chuyển theo.
Để mỗi mã có một bản ghi duy nhất, hãy chọn cả bảng nhưng chỉ tích cột mã trong hộp thoại. Cách này giữ thông tin của dòng xuất hiện trước và loại các dòng có cùng mã phía sau, kể cả khi chúng khác trạng thái.
Ví dụ giả lập dưới đây là danh sách liên hệ, đặt tiêu đề ở A1:C1 và dữ liệu ở A2:C6. Mục tiêu là mỗi mã khách còn một dòng; trạng thái cần giữ sẽ được quyết định theo thứ tự hiện tại.
| Mã khách | Khu vực | Trạng thái |
|---|---|---|
| KH01 | Khu A | Mới |
| KH02 | Khu B | Đã gọi |
| KH01 | Khu C | Đã gọi |
| KH03 | Khu A | Mới |
| KH02 | Khu B | Hẹn lại |
Chọn A1:C6, mở Remove Duplicates, tích có tiêu đề rồi chỉ chọn Mã khách. Kết quả còn 3 dòng là KH01, KH02 và KH03; có 2 dòng bị loại. KH01 giữ trạng thái Mới, còn KH02 giữ trạng thái Đã gọi.
Thông báo xóa thành công chưa đủ để kết luận dữ liệu đúng nhu cầu. Nếu trạng thái Hẹn lại của KH02 mới là thông tin cần dùng, thao tác vừa rồi đã giữ sai phiên bản. Bạn cần hoàn tác và sắp xếp theo tiêu chí ưu tiên trước khi chạy lại.
Với danh sách có lịch sử liên hệ, có thể các dòng đó đều cần thiết. Khi ấy, hãy tạo danh sách mã riêng phục vụ báo cáo và giữ nguyên bảng lịch sử. Một mã xuất hiện nhiều lần không tự động có nghĩa là nhập sai.
Muốn xóa dòng trùng theo nhiều cột trong Excel, bạn tích đồng thời các cột tạo thành khóa. Một dòng chỉ bị coi là lặp khi mọi giá trị ở các cột đã chọn đều khớp với một dòng trước đó.
Ví dụ giả lập thứ hai là bảng chi tiết đơn hàng. Đặt tiêu đề ở A1:C1, sáu dòng dữ liệu ở A2:C7. Hai cách chọn cột sau đây sẽ cho hai đáp án khác nhau.
| Mã đơn | Mã hàng | Số lượng |
|---|---|---|
| DH101 | SP01 | 2 |
| DH101 | SP01 | 2 |
| DH101 | SP02 | 1 |
| DH102 | SP01 | 3 |
| DH102 | SP01 | 4 |
| DH103 | SP03 | 1 |
Chọn A1:C7 rồi chỉ tích Mã đơn và Mã hàng. Excel giữ bốn tổ hợp: DH101–SP01, DH101–SP02, DH102–SP01 và DH103–SP03. Kết quả còn 4 dòng, loại 2 dòng.
Riêng DH102–SP01, dòng số lượng 4 bị loại vì tổ hợp khóa đã xuất hiện ở dòng số lượng 3. Công cụ không cộng hai số này và cũng không chọn số lớn hơn. Chỉ áp dụng khi quy tắc nghiệp vụ cho phép giữ một dòng cho mỗi tổ hợp.
Khi tích cả ba cột, chỉ cặp DH101–SP01–2 lặp hoàn toàn bị rút gọn. Bảng còn 5 dòng và loại 1 dòng. Hai dòng DH102–SP01 được giữ vì số lượng khác nhau.
Đừng chỉ tích Mã đơn để làm sạch bảng chi tiết này: thao tác đó sẽ loại cả dòng SP02 của DH101 dù đây là mặt hàng khác. Câu hỏi cần trả lời là “một dòng duy nhất theo tiêu chí nào”, rồi mới chọn dấu tích tương ứng.
Trên worksheet, Remove Duplicates giữ lần xuất hiện đầu tiên theo thứ tự hiện tại của vùng dữ liệu. “Đầu tiên” không đồng nghĩa với “mới nhất” hoặc “đầy đủ nhất”. Muốn giữ một phiên bản ưu tiên, bạn phải đưa nó lên trước.
Giả sử mỗi mã khách có cột Ngày cập nhật. Trên bản sao, chọn toàn bộ bảng, vào Data → Sort, chọn cột ngày và thứ tự Newest to Oldest. Kiểm tra các ngày đã được lưu dưới dạng ngày thực, rồi mới xóa trùng theo Mã khách.
Khi sắp xếp, các cột phải di chuyển cùng nhau. Không sắp xếp riêng cột ngày trong khi tên và mã khách đứng yên. Cách làm đó làm sai mối liên hệ của từng bản ghi ngay cả trước bước xóa trùng.
Hai dòng cùng ngày cập nhật cần có tiêu chí phụ, chẳng hạn thời điểm nhập hoặc trạng thái đã được xác nhận. Dữ liệu không có tiêu chí phân định thì cần kiểm tra thủ công; không nên chọn tùy ý một dòng rồi coi đó là bản chính.
Cũng có trường hợp mỗi phiên bản giữ một phần thông tin cần thiết. Bạn sẽ phải hợp nhất các trường trước, thay vì chỉ xóa một bản. Quy tắc giữ dòng đầu trên worksheet không được áp dụng máy móc sang Power Query, vì công cụ đó có cách xử lý thứ tự riêng.
COUNTIFS có thể giúp bạn tìm những lần lặp phía sau trước khi quyết định xóa. Với bảng đơn hàng ở ví dụ thứ hai, đặt tiêu đề Kiểm tra ở D1 và nhập công thức sau vào D2:
=COUNTIFS($A$2:A2,A2,$B$2:B2,B2)>1
Sao chép công thức xuống D7. Hai vùng bắt đầu cố định tại hàng 2 nhưng điểm kết thúc tăng theo từng dòng. Vì vậy, công thức đếm số lần tổ hợp mã đơn và mã hàng đã xuất hiện từ đầu danh sách đến dòng hiện tại.
Kết quả là FALSE, TRUE, FALSE, FALSE, TRUE, FALSE. Hai ô TRUE tại D3 và D6 tương ứng với hai bản ghi sẽ bị loại nếu xóa theo cặp khóa. Lần đầu của mỗi tổ hợp vẫn mang giá trị FALSE.
Ở máy dùng dấu chấm phẩy để phân cách đối số, hãy thay các dấu phẩy trong công thức bằng dấu chấm phẩy. Những vùng đếm trong COUNTIFS phải có cùng kích thước. Nếu mã chứa dấu sao hoặc dấu hỏi, cần xử lý ký tự đại diện trước khi dùng công thức để so khớp mã theo nghĩa đen.
Có thể lọc cột Kiểm tra để xem các dòng TRUE và đối chiếu với bản gốc. Không cần xóa ngay. Sau khi xác nhận, bỏ bộ lọc rồi chạy Remove Duplicates trên đủ vùng bảng với đúng hai cột khóa đã dùng để đếm.
Đừng thay vùng tăng dần bằng toàn bộ A2:A7 và B2:B7 nếu mục tiêu là đánh dấu phần lặp phía sau. Vùng cố định toàn bảng sẽ đánh dấu cả lần xuất hiện đầu của nhóm có nhiều bản ghi.
Tương tự, Duplicate Values trong Conditional Formatting chỉ tô màu các ô có giá trị lặp. Nó không tự xác nhận hai dòng trùng theo tổ hợp cột. Xóa toàn bộ ô đang tô màu có thể làm mất cả bản bạn muốn giữ.
Advanced Filter phù hợp khi bạn muốn có một danh sách riêng và giữ nguyên bảng nguồn. Với tùy chọn Unique records only, kết quả lấy một đại diện cho mỗi tổ hợp trong phạm vi so sánh.
Điểm cần lưu ý là phạm vi List range. Nếu chọn cả mã đơn, mã hàng và số lượng trong ví dụ, các dòng khác số lượng vẫn là các bản ghi khác nhau. Không nên kỳ vọng cứ chọn bảng nhiều cột là công cụ sẽ tự hiểu chỉ cần so sánh hai cột khóa.
Muốn lấy riêng danh sách cặp mã đơn và mã hàng, bạn có thể sao chép hai cột đó sang một vùng phụ, kèm tiêu đề, rồi dùng vùng phụ làm nguồn lọc. Kết quả dự kiến có bốn cặp khác nhau. Cách này chưa trả lại toàn bộ thông tin của bản ghi gốc theo từng khóa.
Danh sách sao chép phản ánh dữ liệu tại thời điểm chạy lệnh. Khi nguồn thay đổi, bạn cần thực hiện lại bộ lọc để cập nhật. Hãy chừa vùng đích đủ rộng và tránh đặt vào nơi đang chứa công thức báo cáo.
UNIQUE tạo danh sách các giá trị hoặc dòng khác nhau bằng công thức, không xóa bảng gốc. Hàm có trên Microsoft 365, Excel 2021 và Excel 2024; Excel 2016 hoặc 2019 không hỗ trợ hàm này theo cách thông thường.
Với bảng đơn hàng, nhập =UNIQUE(A2:B7) tại một ô trống ngoài bảng nguồn. Kết quả gồm bốn cặp mã đơn và mã hàng. Nếu đổi thành =UNIQUE(A2:C7), kết quả có năm dòng vì số lượng được đưa vào so sánh.
Hai công thức đó không gồm hàng tiêu đề; bạn có thể đặt tên cột phía trên vùng kết quả. Cần để trống các ô mà kết quả sẽ mở rộng xuống và sang bên. Khi gặp lỗi #SPILL!, hãy kiểm tra vật cản trong vùng tràn hoặc vị trí đặt công thức.
Tham số exactly_once dễ gây nhầm. Công thức =UNIQUE(A2:B7,FALSE,TRUE) chỉ trả về các cặp xuất hiện đúng một lần. Trong ví dụ, nó trả DH101–SP02 và DH103–SP03, đồng thời loại cả nhóm DH101–SP01 lẫn DH102–SP01.
Đó là nhu cầu khác với giữ một đại diện của mỗi nhóm. Muốn mỗi tổ hợp còn một lần thì dùng công thức mặc định, không bật exactly_once. Khi sửa giá trị trong vùng nguồn, kết quả sẽ tính lại.
Dữ liệu thêm ở hàng 8 sẽ chưa được tính vào kết quả của công thức tham chiếu cố định đến hàng 7. Bạn cần mở rộng phạm vi hoặc dùng tham chiếu đến Excel Table. Trước khi chia sẻ kết quả độc lập, có thể sao chép và dán dạng giá trị vào một vùng riêng.
Power Query phù hợp với công việc nhập và làm sạch cùng một cấu trúc dữ liệu nhiều lần. Bạn thiết lập các bước trong truy vấn, xuất kết quả ra bảng riêng rồi làm mới khi nguồn thay đổi.
Trên Excel Windows có nhóm Get & Transform Data, chọn bảng nguồn và vào Data → From Table/Range. Xác nhận tiêu đề, kiểm tra kiểu dữ liệu các cột, rồi chọn cột khóa trong cửa sổ Power Query Editor. Giữ Ctrl và bấm tiêu đề để chọn nhiều cột.
Tiếp theo, chọn Home → Remove Rows → Remove Duplicates. Kiểm tra bảng xem trước rồi dùng Close & Load để tải kết quả. Khi dữ liệu nguồn thay đổi, dùng Refresh; các hàng mới phải nằm trong bảng hoặc nguồn mà truy vấn thực sự đọc.
Công cụ này phân biệt chữ hoa và chữ thường khi xét trùng. Nếu mã SP01 và sp01 cần được coi là một, hãy thống nhất cách viết trước bước xóa. Đồng thời, kiểm tra kiểu Text của mã để tránh mất số 0 có ý nghĩa.
Một khác biệt cần nhớ: Power Query không bảo đảm giữ bản ghi đầu tiên trong nhóm trùng chỉ vì bạn đã sắp xếp trước. Nếu phải giữ bản cập nhật mới nhất, cần thiết kế quy tắc chọn bản theo khóa và thời điểm, rồi kiểm tra kết quả riêng. Với nhu cầu xử lý một lần và muốn giữ theo thứ tự nhìn thấy, cách làm trực tiếp trên worksheet dễ đối chiếu hơn.
Những dòng trông giống nhau có thể khác ở ký tự, định dạng hoặc một cột bạn đã tích thêm. Trước hết, kiểm tra lại các cột khóa trong hộp thoại; sau đó mới làm sạch dữ liệu trên bản sao.
Mã “SP01” và mã có khoảng trắng phía sau nhìn gần như giống nhau. Có thể tạo cột phụ bằng =TRIM(A2) để bỏ khoảng trắng thường ở đầu, cuối và thu gọn khoảng trắng giữa các từ. Không thay nội dung cột gốc khi chưa xem kết quả.
Khoảng trắng không ngắt trong dữ liệu sao chép từ trang web có thể còn sót sau khi dùng TRIM. Một công thức hỗ trợ kiểm tra là =TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160),” “))). SUBSTITUTE thay ký tự khoảng trắng mã 160 bằng khoảng trắng thường; CLEAN xử lý một số ký tự điều khiển.
Công thức này không xử lý được mọi ký tự Unicode ẩn. Với mã cần giữ khoảng trắng đặc biệt, cũng không nên áp dụng hàng loạt. Sau khi đối chiếu, dùng cột đã làm sạch để xét trùng hoặc dán giá trị trở lại bản làm việc.
Mã 0012 cần được giữ nguyên nếu số 0 là một phần định danh. Đổi toàn bộ mã sang số chỉ để tìm trùng có thể biến nó thành 12 và gộp nhầm hai mã. Ngược lại, cột số lượng hoặc ngày cần kiểu dữ liệu nhất quán để sắp xếp và kiểm tra đúng.
Cũng nên thống nhất cách hiển thị ngày và số trên cột so sánh. Định dạng khác nhau có thể ảnh hưởng việc nhận diện trùng; đừng chỉ dựa vào cảm giác hai ô đang mang cùng nội dung.
Những dòng thiếu khóa phải được kiểm tra riêng. Hai đơn chưa điền mã không có nghĩa là cùng một đơn. Nếu xóa quá nhiều, dùng Ctrl + Z ngay và so lại vùng chọn, tiêu đề cùng các dấu tích. Nếu lệnh không dùng được, kiểm tra cấu trúc tổng phụ và các ô gộp trước khi thử lại.
Kết quả đúng cần thỏa cả số dòng dự kiến lẫn quy tắc giữ thông tin. Thông báo của Excel chỉ cho biết thao tác đã thực hiện, chưa xác nhận bạn chọn đúng khóa.
Ở ví dụ đơn hàng, xóa theo Mã đơn và Mã hàng phải cho phép đối chiếu 6 dòng ban đầu = 2 dòng bị loại + 4 dòng còn lại. Sau đó kiểm tra DH101 còn cả SP01 và SP02, còn DH102–SP01 giữ số lượng 3.
Tổng số lượng ban đầu trong ví dụ là 13. Khi loại dòng lặp theo hai khóa, tổng còn 7 vì các dòng số lượng 2 và 4 đã bị bỏ. Nếu bạn đang cần tính tổng lượng hàng thực tế, mức thay đổi này là dấu hiệu phải xem lại nghiệp vụ trước khi chấp nhận kết quả.
Đối với bảng công việc, nên kiểm tra các nhóm có thông tin mâu thuẫn và các mã thiếu dữ liệu trước. Một vài dòng được chọn có chủ đích thường giúp phát hiện lỗi rõ hơn việc chỉ nhìn tổng số dòng.
| Phương pháp | Kết quả | Phù hợp khi |
|---|---|---|
| Remove Duplicates | Rút gọn bảng đang chọn | Xử lý một lần, khóa rõ |
| Advanced Filter | Sao chép danh sách riêng | Cần giữ nguồn, lọc một lần |
| UNIQUE | Danh sách bằng công thức | Cần tính lại theo nguồn |
| Power Query | Bảng kết quả từ truy vấn | Làm sạch theo quy trình lặp |
Sau khi kiểm tra, lưu bản kết quả riêng cùng ghi chú ngắn về khóa đã dùng. Chẳng hạn: “Loại bản ghi lặp theo Mã đơn + Mã hàng, giữ dòng xuất hiện trước”. Ghi chú này giúp người nhận hiểu vì sao số dòng thay đổi.
Bạn có thể luyện bằng hai bảng giả lập phía trên và tự dự đoán số dòng còn lại trước mỗi lần chạy. Hãy thử chọn một cột, hai cột rồi toàn bộ cột trên các bản sao độc lập. Quan sát bản ghi nào bị loại sẽ giúp bạn hiểu vai trò của từng dấu tích.
Bài tập tiếp theo là đổi thứ tự hai dòng cùng mã rồi chạy lại. Số dòng còn lại có thể giữ nguyên, nhưng thông tin được giữ sẽ khác. Sau đó dùng COUNTIFS để dự đoán các dòng lặp phía sau và đối chiếu với kết quả thực tế.
Người cần luyện thêm cách chọn vùng hoặc đọc tham chiếu công thức có thể xem nội dung Excel cho công việc văn phòng. Nhu cầu làm sạch, tổng hợp và kiểm tra bảng phù hợp hơn với Excel tổng hợp và kiểm tra dữ liệu tại Gia Sư Tin Học Online.
Hình thức hướng dẫn trực tuyến 1 kèm 1 cho phép học viên thực hành trên máy tính cá nhân. Nên trao đổi phiên bản Excel đang dùng và thao tác đang vướng; nếu cần minh họa bằng file, hãy dùng bản nhỏ đã bỏ dữ liệu nhạy cảm. Khả năng vận dụng còn tùy nền tảng và thời gian luyện tập của mỗi người.
Thông tin chi phí và tư vấn lộ trình có tại trang học phí tin học. Với thao tác xóa trùng, điều cần tự làm được là giải thích vì sao một dòng bị loại và vì sao dòng còn lại được giữ.
Để trao đổi nhu cầu học Excel online theo công việc, bạn có thể Gọi 0812 114 345 cho Gia Sư Tin Học Online. Địa chỉ liên hệ: 72 Đinh Bộ Lĩnh, Long Thành, Đồng Nai (huyện Long Thành cũ).
Chọn một bài toán nhỏ, tự làm rồi kiểm tra lại từng bước trước khi mở rộng.
Gợi ý áp dụng


Bắt đầu từ tệp mẫu, giữ bài làm và ghi lại lỗi đã sửa. Ảnh minh họa được thiết kế từ lớp tin học thực tế do chủ website cung cấp.