Menu

Cách xóa dữ liệu trùng trong Excel: nút bấm và công thức

Chọn dữ liệu rồi bấm Data > Remove Duplicates để xóa các hàng lặp lại ngay tại chỗ, hoặc dùng =UNIQUE(A2:A9) để có một bản sạch mà vẫn giữ bản gốc. Tìm, đánh dấu và đếm dữ liệu trùng, và xóa trùng theo hai cột.

Mọi bảng tính trên trang này đều trực tiếp: đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Để 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.

Khách hàng bị lặp
C2
ABC
1CustomerWithout duplicates
2AnaAna
3BenBen
4CaraCara
5AnaDan
6DanEve
7Ben
8Ana
9Eve
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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

  1. 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 đó.
  2. 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.
  3. 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.
  4. Đá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.
  5. 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: ana và Ana là 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.

Đánh dấu các bản lặp
B2
ABC
1CustomerRepeat?Times in list
2AnaFALSE3
3BenFALSE2
4CaraFALSE1
5AnaTRUE3
6DanFALSE1
7BenTRUE2
8AnaTRUE3
9EveFALSE1
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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.

Kết hợp Name và City
E2
ABCDE
1NameCityRepeat?Unique rows
2AnaLimaFALSE
3BenOsloFALSE
4AnaRomeFALSE
5BenOsloTRUE
6CaraLimaFALSE
7AnaLimaTRUE
8DanRomeFALSE
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đế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.

Hàng đầu tiên của mỗi khách hàng
D2
ABCDE
1NameCityNameCity
2AnaLimaAnaLima
3BenOsloBenOslo
4AnaRomeCaraLima
5BenOsloDanRome
6CaraLima
7AnaLima
8DanRome
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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.

Đã sắp xếp, và chỉ một lần
C2
ABCDE
1CustomerSortedOnly once
2EveAnaCara
3BenBenDan
4CaraCara
5AnaDan
6DanEve
7Ben
8Ana
9Eve
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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.

Có bao nhiêu bản lặp
C2
ABC
1CustomerRepeats
2Ana
3Ben
4Cara
5Ana
6Dan
7Ben
8Ana
9Eve
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đế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:

  1. 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.
  2. 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.

Dấu cách bị ẩn
C2
ABCDE
1CustomerUNIQUEUNIQUE of TRIM
2AnaAnaAna
3Ana Ana Ben
4BenBenCara
5 Ben Ben
6CaraCara
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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)).

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu