Hướng dẫn

Cách Xóa Dữ Liệu Trùng Lặp Trong Google Sheets [2026]

Tuân HoangTuân Hoang
14 tháng 8, 2026
Cập nhật: 23 tháng 8, 2026
7 phút đọc
Ảnh minh họa bài viết: Cách Xóa Dữ Liệu Trùng Lặp Trong Google Sheets [2026]

Danh sách khách hàng trùng 2 lần, mã đơn hàng lặp 3 lần, email import chồng chéo từ nhiều nguồn — dữ liệu trùng lặp trong Google Sheets không chỉ gây khó chịu khi nhìn bảng tính, mà còn làm sai lệch báo cáo doanh thu, gửi email trùng cho khách, và khiến các hàm như SUMIF, COUNTIF trả về kết quả sai. Bài này đi thẳng vào 6 cách xử lý trùng lặp, từ thao tác thủ công 30 giây đến công thức tự động theo dõi real-time.

Dùng công cụ Remove Duplicates có sẵn của Google Sheets

Đây là cách nhanh nhất cho dữ liệu tĩnh, không cần cập nhật liên tục. Google Sheets tích hợp sẵn tính năng này từ 2021, không cần add-on.

Các bước thực hiện

  • Bôi đen vùng dữ liệu cần xử lý (bao gồm cả dòng tiêu đề)
  • Vào menu Data (Dữ liệu) → Data cleanup (Dọn dẹp dữ liệu) → Remove duplicates (Xóa hàng trùng lặp)
  • Tick chọn "Data has header row" nếu bảng có dòng tiêu đề
  • Chọn cột nào dùng để xác định trùng lặp — có thể chọn 1 cột (ví dụ chỉ email) hoặc nhiều cột (ví dụ Họ tên + Số điện thoại phải giống nhau mới coi là trùng)
  • Nhấn Remove duplicates — Sheets sẽ báo số dòng đã xóa

Ví dụ thực tế: file 5.200 dòng khách hàng từ 3 lần export CRM, chọn xác định trùng theo cột Email, kết quả loại bỏ 847 dòng trùng chỉ trong 4 giây.

Hạn chế cần biết

Công cụ này xóa vĩnh viễn các dòng trùng (chỉ giữ lại lần xuất hiện đầu tiên) và không có tùy chọn hoàn tác dễ dàng ngoài Ctrl+Z ngay lập tức. Nó cũng không phân biệt hoa/thường hay khoảng trắng thừa — "Nguyen Van A" và "nguyen van a " (có dấu cách cuối) vẫn bị coi là khác nhau nếu không xử lý trước bằng TRIMLOWER.

Đánh dấu (không xóa) dữ liệu trùng bằng Conditional Formatting

Nhiều trường hợp bạn không muốn xóa ngay mà cần xem lại thủ công trước — ví dụ danh sách đơn hàng có thể "trùng" nhưng thực ra là khách mua 2 lần hợp lệ.

Công thức tô màu dòng trùng

Chọn vùng dữ liệu (ví dụ A2:A1000) → FormatConditional formatting → chọn "Custom formula is" và nhập:

  • =COUNTIF(A$2:A2,A2)>1 — tô màu các dòng trùng từ lần xuất hiện thứ 2 trở đi
  • =COUNTIF(A:A,A2)>1 — tô màu TẤT CẢ các dòng bị trùng (kể cả lần đầu)

Cách này giữ nguyên toàn bộ dữ liệu gốc, phù hợp khi cần review trước khi quyết định xóa — đặc biệt hữu ích với các file quản lý đơn hàng nơi một mã khách hàng xuất hiện nhiều lần là bình thường. Nếu đang xây hệ thống quản lý đơn hàng, xem thêm Tạo Hệ Thống Quản Lý Đơn Hàng Online Với Google Sheets + Google Forms để hiểu cách cấu trúc dữ liệu tránh trùng lặp ngay từ đầu.

Dùng hàm UNIQUE để lọc trùng mà không đụng dữ liệu gốc

Hàm UNIQUE() là cách an toàn nhất — nó tạo ra một danh sách mới không trùng lặp ở vị trí khác, dữ liệu gốc không bị thay đổi. Phù hợp khi cần dữ liệu gốc để đối chiếu sau này.

Cú pháp cơ bản

=UNIQUE(A2:A1000) trả về danh sách các giá trị duy nhất trong cột A, tự động cập nhật khi dữ liệu gốc thay đổi (vì đây là công thức, không phải thao tác một lần).

Lọc trùng theo nhiều cột

Với dữ liệu nhiều cột (ví dụ Tên + SĐT + Email), dùng: =UNIQUE(A2:C1000) — Sheets sẽ coi một dòng là trùng chỉ khi TẤT CẢ giá trị trong 3 cột giống hệt nhau.

Đếm số lần trùng trước khi lọc

Kết hợp với COUNTIF để biết mức độ trùng lặp nghiêm trọng ra sao trước khi quyết định xử lý:

=COUNTIF(A2:A1000,A2) — cho biết giá trị ở A2 xuất hiện bao nhiêu lần trong toàn bộ cột.

Phương phápDữ liệu gốcTự động cập nhậtTốc độ
Remove DuplicatesBị xóaKhôngNhanh nhất
Conditional FormattingGiữ nguyênNhanh
UNIQUE()Giữ nguyênNhanh, tốn thêm cột

Xử lý trùng lặp "gần giống" — khoảng trắng, hoa thường, định dạng khác nhau

Đây là lỗi phổ biến nhất khiến Remove Duplicates hoặc UNIQUE không nhận ra trùng lặp: "Cong Ty ABC", "CONG TY ABC ", "công ty abc" trên lý thuyết là 3 giá trị khác nhau dù cùng một khách hàng.

Chuẩn hóa dữ liệu trước khi lọc trùng

Tạo một cột phụ để chuẩn hóa toàn bộ giá trị về cùng định dạng trước khi so sánh:

=LOWER(TRIM(A2)) — chuyển về chữ thường và xóa khoảng trắng thừa ở đầu/cuối

Với số điện thoại có định dạng lộn xộn (084912345678, 0912345678, +84912345678), dùng thêm SUBSTITUTE để loại bỏ ký tự đặc biệt:

=SUBSTITUTE(SUBSTITUTE(TRIM(A2),"+84","0")," ","")

Sau khi có cột chuẩn hóa, áp dụng UNIQUE hoặc Remove Duplicates trên cột đó thay vì cột gốc. Bước này quan trọng khi làm sạch danh sách khách hàng trước khi gửi chiến dịch email — nếu bạn đang tự động hóa gửi email theo lịch, tham khảo Tự Động Gửi Email Chúc Mừng Sinh Nhật Khách Hàng Với Google Apps Script để thấy dữ liệu trùng ảnh hưởng thế nào đến việc gửi trùng email cho cùng một khách.

Tự động hóa với Google Apps Script cho file lớn hoặc cập nhật liên tục

Khi dữ liệu có hàng chục nghìn dòng hoặc được import liên tục (qua Form, API, Zapier), công thức Sheets có thể chậm. Apps Script xử lý nhanh hơn và có thể chạy tự động theo trigger.

Script xóa trùng cơ bản

function removeDuplicateRows() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const data = sheet.getDataRange().getValues();
  const seen = new Set();
  const uniqueRows = [];

  data.forEach(row => {
    const key = row.join('|').toLowerCase().trim();
    if (!seen.has(key)) {
      seen.add(key);
      uniqueRows.push(row);
    }
  });

  sheet.clearContents();
  sheet.getRange(1, 1, uniqueRows.length, uniqueRows[0].length).setValues(uniqueRows);
}

Script này có thể gắn vào trigger "onEdit" hoặc "onFormSubmit" để tự động chạy mỗi khi có dữ liệu mới, tránh tình trạng trùng lặp tích lũy theo thời gian — hữu ích cho các hệ thống quản lý đơn hàng nhận dữ liệu liên tục từ Google Forms.

Kiểm tra dữ liệu sau khi xóa trùng để tránh mất dữ liệu quan trọng

Sai lầm phổ biến nhất khi xóa trùng: mất dữ liệu hợp lệ vì chọn sai tiêu chí. Ví dụ xóa trùng theo Email nhưng 2 khách hàng dùng chung 1 email công ty (info@abc.com) — thao tác này sẽ xóa nhầm một khách hàng thật.

Checklist trước khi xóa trùng vĩnh viễn

  • Backup file gốc (File → Make a copy) trước khi chạy Remove Duplicates
  • Xác định rõ cột nào thực sự đại diện cho "bản ghi duy nhất" — thường là mã đơn hàng, mã khách hàng, không phải tên hay email
  • Dùng COUNTIF đối chiếu số dòng trước/sau để biết chính xác đã xóa bao nhiêu, tránh xóa nhầm hàng loạt
  • Nếu dữ liệu liên quan đến báo cáo tài chính, đối chiếu lại tổng sau khi xóa trùng bằng cách tính tổng cột doanh thu trước và sau — xem cách tính nhanh tại Cách Tính Tổng Một Cột Trong Google Sheets [Đầy Đủ 2026]

Với các bảng dữ liệu dùng để dự báo hoặc phân tích xu hướng, dữ liệu trùng lặp có thể làm sai lệch nghiêm trọng kết quả — một đơn hàng bị tính 2 lần sẽ đẩy số liệu forecast lên cao giả tạo. Nếu đang xây mô hình dự báo, nên xử lý trùng lặp là bước bắt buộc trước khi đưa dữ liệu vào công thức, tham khảo thêm ở Dự Báo Doanh Thu Với Google Sheets: Mô Hình Forecast Đơn Giản.

Với các mẫu quản lý hóa đơn có nhiều dòng chi tiết sản phẩm, trùng lặp dòng cũng là lỗi thường gặp khi copy-paste dữ liệu giữa các sheet — mẫu Professional Invoice Template for Google Sheets 2027 — Free có sẵn cấu trúc chống trùng dòng bằng validation, đáng tham khảo nếu bạn tự thiết kế template quản lý hóa đơn cho riêng mình.

Câu hỏi thường gặp

Làm sao để xóa dữ liệu trùng lặp trong Google Sheets nhanh nhất?

Chọn vùng dữ liệu, vào menu Data > Data cleanup > Remove duplicates. Google Sheets sẽ tự quét và cho phép chọn cột cần kiểm tra trùng, sau đó xóa các dòng lặp lại, chỉ giữ lại dòng xuất hiện đầu tiên.

Hàm UNIQUE trong Google Sheets dùng để làm gì?

Hàm UNIQUE(range) trích xuất danh sách giá trị duy nhất từ một vùng dữ liệu mà không làm thay đổi dữ liệu gốc. Rất hữu ích khi cần tạo danh sách mới không trùng lặp để đối chiếu hoặc báo cáo.

Làm sao tìm dòng trùng lặp mà không xóa ngay?

Dùng Conditional Formatting với công thức COUNTIF(range, cell)>1 để tô màu các dòng trùng lặp. Cách này giúp xem trước dữ liệu trùng trước khi quyết định xóa, tránh mất dữ liệu quan trọng.

Remove Duplicates có xóa nhầm dữ liệu quan trọng không?

Không, nếu bạn chọn đúng cột cần so sánh. Nên sao lưu bảng tính (File > Make a copy) trước khi xóa, và luôn chọn dòng tiêu đề (header) để Google Sheets không so sánh nhầm hàng tiêu đề với dữ liệu.

Bạn muốn áp dụng ngay mà không phải tự xây từ đầu?

Khám phá các mẫu Google Sheets và phần mềm quản lý dựng sẵn cho doanh nghiệp Việt tại SheetStore Marketplace.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Google SheetsGoogle Apps ScriptCRMAutomationPhần mềm quản lý doanh nghiệp

Google Workspace Certified, 5+ years experience

Bạn thấy bài viết hữu ích?

Đăng ký nhận thông báo khi có bài viết mới.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận