Để xóa dữ liệu trùng trong Excel, chọn dữ liệu rồi bấm Data > Remove Duplicates, chọn các cột phải trùng khớp và nhấn OK: Excel xóa mọi hàng lặp lại và giữ hàng đầu tiên. Nếu muốn giữ danh sách gốc và lấy một bản sạch, hãy gõ =UNIQUE(A2:A9) vào một cột trống.
| A | B | C | |
|---|---|---|---|
| 1 | Customer | Without duplicates | |
| 2 | Ana | Ana | |
| 3 | Ben | Ben | |
| 4 | Cara | Cara | |
| 5 | Ana | Dan | |
| 6 | Dan | Eve | |
| 7 | Ben | ||
| 8 | Ana | ||
| 9 | Eve |
Các ô được tô màu ở cột A (hàng 5, 7 và 8) là các bản lặp: đó là những hàng mà Remove Duplicates sẽ xóa. Cột C là danh sách đã bỏ chúng: Ana, Ben, Cara, Dan, Eve. Đổi A6 thành Ana, cả phần tô màu lẫn danh sách đều cập nhật; còn nút bấm thì phải chạy lại.
Xóa dữ liệu trùng bằng nút Remove Duplicates
- Bấm vào ô bất kỳ trong vùng dữ liệu. Excel chọn cả khối dữ liệu xung quanh; nếu chỉ muốn làm trên một phần trang tính, hãy tự chọn vùng đó.
- Vào Data > Remove Duplicates (trong nhóm Data Tools). Trên Windows, chuỗi phím tắt là Alt, A, M. Trong một bảng Excel, nút này cũng có ở thẻ Table Design.
- Giữ dấu chọn ở My data has headers nếu hàng 1 chứa tên cột, để hàng tiêu đề không bao giờ bị đem ra so sánh.
- Đánh dấu các cột phải trùng hết thì hai hàng mới bị coi là trùng. Khi đánh dấu mọi cột, chỉ những hàng giống hệt nhau mới bị xóa.
- Nhấn OK. Excel báo đã tìm thấy và xóa bao nhiêu giá trị trùng, và còn lại bao nhiêu giá trị duy nhất.
Nút này làm gì, và những điều cần biết trước khi bấm:
- Nó xóa dữ liệu trùng ngay tại chỗ và đẩy các ô bên dưới lên. Chỉ các cột được chọn dịch chuyển: các ô ngoài vùng chọn đứng yên, nên hãy chọn hết chiều rộng của bảng, nếu không các hàng sẽ bị lệch. Nhấn Ctrl+Z (Cmd+Z trên Mac) để hoàn tác ngay nếu kết quả sai.
- Nó giữ lần xuất hiện đầu tiên, tính từ trên xuống.
- Chữ hoa và chữ thường bị bỏ qua:
anavàAnalà trùng. - Nó so sánh giá trị theo cách chúng hiển thị. Cùng một ngày được định dạng là
3/15/2026ở ô này và15-Mar-26ở ô kia được tính là hai giá trị khác nhau.
Nút bấm không để lại ghi chép nào về những gì nó đã xóa. Khi điều đó quan trọng, hãy đánh dấu dữ liệu trùng bằng công thức trước, xem lại, rồi mới xóa.
Tìm dữ liệu trùng trước khi xóa
Một cột đánh dấu cho biết hàng nào là bản lặp. =COUNTIF($A$2:A2,A2)>1 đếm giá trị của hàng hiện tại trong các hàng từ trên cùng xuống đến hàng này. Điểm đầu của vùng, $A$2, được khóa còn điểm cuối, A2, thì không, nên vùng mở rộng dần khi kéo công thức xuống: TRUE nghĩa là "giá trị này đã xuất hiện ở trên", đúng là những hàng mà Remove Duplicates xóa.
| A | B | C | |
|---|---|---|---|
| 1 | Customer | Repeat? | Times in list |
| 2 | Ana | FALSE | 3 |
| 3 | Ben | FALSE | 2 |
| 4 | Cara | FALSE | 1 |
| 5 | Ana | TRUE | 3 |
| 6 | Dan | FALSE | 1 |
| 7 | Ben | TRUE | 2 |
| 8 | Ana | TRUE | 3 |
| 9 | Eve | FALSE | 1 |
Bấm vào B5: vùng của nó là $A$2:A5, chứa Ana hai lần, nên B5 là TRUE. Cột C dùng vùng cố định $A$2:$A$9, nên nó đếm mọi lần xuất hiện: mỗi hàng Ana hiện 3, còn Cara, Dan và Eve hiện 1. Dùng cột C để tìm mọi bản của một giá trị trùng, kể cả bản đầu tiên; dùng cột B để chỉ tìm các bản thừa.
Để tự xóa các hàng đã đánh dấu, bật Data > Filter, lọc cột B theo TRUE, chọn các hàng đang hiện, bấm chuột phải và chọn Delete Row, rồi bỏ bộ lọc. Nếu muốn tô màu dữ liệu trùng thay vì đánh dấu, xem tô màu dữ liệu trùng.
Xóa dữ liệu trùng theo hai cột
Hai hàng chỉ trùng nhau khi cả Name và City cùng lặp lại. Trong hộp thoại Remove Duplicates, đánh dấu cả hai cột. Với công thức, đưa cả hai cột cho UNIQUE: =UNIQUE(A2:B8) so sánh cả hàng. Cột đánh dấu ở C làm điều tương tự bằng COUNTIFS, hàm đếm các hàng khớp cả hai điều kiện.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | City | Repeat? | Unique rows | |
| 2 | Ana | Lima | FALSE | ||
| 3 | Ben | Oslo | FALSE | ||
| 4 | Ana | Rome | FALSE | ||
| 5 | Ben | Oslo | TRUE | ||
| 6 | Cara | Lima | FALSE | ||
| 7 | Ana | Lima | TRUE | ||
| 8 | Dan | Rome | FALSE |
Đến lượt bạn: Liệt kê mỗi cặp Name và City một lần ở E2.
Ana xuất hiện ba lần nhưng chỉ một hàng của cô ấy là trùng: Ana ở Rome là hàng khác với Ana ở Lima. C5 và C7 là TRUE. Đáp án trả tràn rộng hai cột, nên cột E và F cần để trống.
Xóa trùng theo một cột và giữ các cột còn lại
Khi chỉ một cột quyết định (mỗi khách hàng một hàng, bất kể thành phố), chỉ đánh dấu cột đó trong hộp thoại. Excel giữ hàng đầu tiên của mỗi tên cùng mọi cột của hàng đó. Phiên bản công thức giữ những hàng có tên xuất hiện lần đầu: MATCH(A2:A8,A2:A8,0) cho vị trí lần xuất hiện đầu tiên của mỗi tên, và vị trí này chỉ bằng vị trí của chính hàng đó ở lần xuất hiện đầu tiên.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | City | Name | City | |
| 2 | Ana | Lima | Ana | Lima | |
| 3 | Ben | Oslo | Ben | Oslo | |
| 4 | Ana | Rome | Cara | Lima | |
| 5 | Ben | Oslo | Dan | Rome | |
| 6 | Cara | Lima | |||
| 7 | Ana | Lima | |||
| 8 | Dan | Rome |
Kết quả là Ana ở Lima, Ben ở Oslo, Cara ở Lima và Dan ở Rome. Các thành phố sau đó của Ana (Rome, Lima) bị bỏ đi, giống hệt cách nút bấm loại bỏ chúng.
Danh sách đã sắp xếp, và các giá trị chỉ xuất hiện một lần
Bọc UNIQUE trong SORT để có danh sách sạch theo thứ tự bảng chữ cái. Đối số thứ ba của UNIQUE, exactly_once, làm một việc khác: với TRUE, nó chỉ trả về các giá trị không bao giờ lặp lại, nên mọi giá trị có bản trùng đều biến mất hoàn toàn, kể cả bản đầu tiên. Remove Duplicates không có tùy chọn này.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Customer | Sorted | Only once | ||
| 2 | Eve | Ana | Cara | ||
| 3 | Ben | Ben | Dan | ||
| 4 | Cara | Cara | |||
| 5 | Ana | Dan | |||
| 6 | Dan | Eve | |||
| 7 | Ben | ||||
| 8 | Ana | ||||
| 9 | Eve |
C2 trả tràn Ana, Ben, Cara, Dan, Eve. E2 chỉ trả về Cara và Dan: Eve, Ben và Ana mỗi người xuất hiện hai lần. Để sắp xếp giảm dần, dùng =SORT(UNIQUE(A2:A9),,-1). Xem thêm về chính hàm này, kể cả by_col, ở trang UNIQUE.
Đếm có bao nhiêu dữ liệu trùng
Số hàng mà Remove Duplicates sẽ xóa bằng số hàng trừ đi số giá trị duy nhất. ROWS(A2:A9) đếm số hàng và COUNTA(UNIQUE(A2:A9)) đếm số khách hàng khác nhau. Để chỉ đếm các giá trị khác nhau, xem đếm giá trị duy nhất.
| A | B | C | |
|---|---|---|---|
| 1 | Customer | Repeats | |
| 2 | Ana | ||
| 3 | Ben | ||
| 4 | Cara | ||
| 5 | Ana | ||
| 6 | Dan | ||
| 7 | Ben | ||
| 8 | Ana | ||
| 9 | Eve |
Đến lượt bạn: Ở C2, đếm xem có bao nhiêu hàng của A2:A9 là bản lặp của một hàng phía trên.
Đáp án là 3. Nếu bạn đã có cột đánh dấu ở phần trên, =COUNTIF(B2:B9,TRUE) cũng đếm được đúng số bản lặp đó.
Xóa dữ liệu trùng trong Excel 2019 trở về trước
UNIQUE, SORT và FILTER cần Excel 2021 hoặc Microsoft 365. Trong Excel 2019 trở về trước, có hai cách giữ lại bản gốc:
- Advanced Filter. Chọn cột, vào Data > Sort & Filter > Advanced, chọn Copy to another location, chọn ô đích ở Copy to, đánh dấu Unique records only rồi nhấn OK. Bản sao là danh sách cố định; hãy chạy lại bộ lọc sau khi dữ liệu thay đổi.
- Một công thức kéo xuống. Đặt công thức này vào C2, xác nhận bằng Ctrl+Shift+Enter (Cmd+Shift+Enter trên Mac) vì trong Excel cũ đây là công thức mảng, rồi kéo xuống cho đến khi hiện ô trống:
=IFERROR(INDEX($A$2:$A$9,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$9),0)),"")
Mỗi hàng tìm giá trị đầu tiên của A2:A9 chưa có trong danh sách phía trên nó. Google Sheets cũng có =UNIQUE(A2:A9), nhưng ở đó hàm phân biệt chữ hoa chữ thường: cả ana và Ana đều được giữ lại.
Vì sao Remove Duplicates bỏ sót một số dữ liệu trùng
Hai ô trông giống hệt nhau vẫn không phải là trùng khi một ô có dấu cách ở cuối. Remove Duplicates và UNIQUE đều so sánh văn bản từng ký tự một (chỉ bỏ qua chữ hoa và chữ thường), nên Ana và Ana có dấu cách ở cuối vẫn là hai mục.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Customer | UNIQUE | UNIQUE of TRIM | ||
| 2 | Ana | Ana | Ana | ||
| 3 | Ana | Ana | Ben | ||
| 4 | Ben | Ben | Cara | ||
| 5 | Ben | Ben | |||
| 6 | Cara | Cara |
C2 trả tràn cả năm mục, vì các dấu cách làm các bản sao khác nhau. TRIM xóa dấu cách ở cả hai đầu, nên E2 trả về Ana, Ben và Cara. Trước khi bấm nút trên dữ liệu nhập từ nơi khác, hãy thêm một cột với =TRIM(A2) kéo xuống, dán đè nó lên bản gốc dưới dạng giá trị (Home > Paste > Paste Values), rồi mới xóa dữ liệu trùng. Dữ liệu sao chép từ trang web cũng có thể chứa dấu cách không ngắt dòng, thứ mà TRIM không xóa được; =TRIM(SUBSTITUTE(A2,CHAR(160)," ")) xử lý được cả hai.
Câu hỏi thường gặp
Làm sao để xóa dữ liệu trùng trong Excel?
Bấm vào một ô trong vùng dữ liệu, vào Data > Remove Duplicates, đánh dấu các cột phải trùng hết thì một hàng mới bị coi là trùng, rồi nhấn OK. Excel giữ lần xuất hiện đầu tiên của mỗi hàng và xóa các hàng còn lại.
Làm sao để xóa dữ liệu trùng trong Excel mà không xóa dữ liệu gốc?
Dùng công thức ở một cột trống: =UNIQUE(A2:A9) liệt kê mỗi giá trị một lần và giữ nguyên A2:A9. UNIQUE cần Excel 2021 hoặc Microsoft 365; ở các phiên bản cũ hơn, dùng Data > Sort & Filter > Advanced với Unique records only và Copy to another location.
Remove Duplicates giữ lại bản trùng nào?
Bản đầu tiên, tính từ trên cùng của vùng chọn. Muốn giữ lần xuất hiện cuối cùng, hãy sắp xếp dữ liệu sao cho các hàng cần giữ nằm trước, rồi chạy Remove Duplicates.
Vì sao Remove Duplicates không xóa hết dữ liệu trùng?
Vì các giá trị không hoàn toàn giống nhau: một dấu cách ở cuối (Ana và Ana), một dấu cách không ngắt dòng, hay cùng một ngày hiển thị theo hai định dạng khác nhau làm hai ô trông giống nhau nhưng thực ra khác. Hãy làm sạch chúng trước bằng một cột phụ như =TRIM(A2). Chữ hoa và chữ thường không quan trọng: ana và Ana được tính là trùng.
Làm sao để đếm dữ liệu trùng trong Excel?
=COUNTIF($A$2:$A$9,A2) cho biết giá trị ở A2 xuất hiện bao nhiêu lần. Số hàng mà Remove Duplicates sẽ xóa là =ROWS(A2:A9)-COUNTA(UNIQUE(A2:A9)).