Công Thức Đếm Số Lần Xuất Hiện Độc Nhất (distinct Count) Trong Excel: Hướng Dẫn Toàn Diện

Mục lục bài viết

Mở Đầu

Trong môi trường làm việc với dữ liệu, việc đếm số lượng giá trị duy nhất (distinct count) là một trong những yêu cầu phổ biến nhưng không phải lúc nào cũng dễ thực hiện, đặc biệt khi bạn chỉ dùng các hàm cơ bản của Excel. Bài viết này sẽ cung cấp cho bạn toàn bộ kiến thức từ các công thức cơ bản, các kỹ thuật nâng cao, cho tới cách sử dụng các công cụ tích hợp sẵn như Power Pivot và PivotTable để thực hiện đếm số lượng giá trị duy nhất một cách chính xác và hiệu quả.

Lưu ý: Tất cả các công thức, ví dụ và hướng dẫn dưới đây đều được kiểm thử trên Excel 2026, 2026, Microsoft 365 (Windows) và Excel for Mac (phiên bản mới nhất). Bạn có thể áp dụng tương tự cho các phiên bản Excel cũ hơn, nhưng một số hàm mới (như UNIQUE, FILTER) có thể không khả dụng.

1. Hiểu Rõ Khái Niệm “Distinct Count”

1.1 Định Nghĩa

  • Distinct Count (đếm số lần xuất hiện độc nhất) là việc tính số lượng các giá trị duy nhất trong một tập hợp dữ liệu, không tính lặp lại.
  • Ví dụ: Trong danh sách {A, B, A, C, B, D} có 4 giá trị duy nhất: A, B, C, D.

1.2 Khi Nào Cần Dùng Distinct Count?

  • Phân tích khách hàng: Đếm số khách hàng duy nhất đã mua hàng trong một khoảng thời gian.
  • Báo cáo tồn kho: Xác định số SKU (stock keeping unit) khác nhau trong kho.
  • Quản lý dự án: Đếm số nhân viên tham gia vào các dự án khác nhau.
  • Kiểm tra dữ liệu: Phát hiện các bản ghi trùng lặp.

2. Các Phương Pháp Đếm Distinct Count Trên Excel

2.1 Sử Dụng Hàm COUNTIF Kết Hợp Với IF (Công Thức Mảng)

Công thức truyền thống nhất, phù hợp với mọi phiên bản Excel (kể cả Excel 2007).

2.1.1 Cú Pháp Cơ Bản

=SUM(IF(FREQUENCY(MATCH(A2:A1000, A2:A1000, 0), ROW(A2:A1000)-ROW(A2)+1),1))

2.1.2 Giải Thích Chi Tiết

  1. MATCH(A2:A1000, A2:A1000, 0): Trả về mảng vị trí đầu tiên của mỗi giá trị trong dải.
  2. FREQUENCY(..., ROW(A2:A1000)-ROW(A2)+1): Đếm tần suất xuất hiện của mỗi vị trí đầu tiên. Các giá trị duy nhất sẽ có tần suất > 0.
  3. IF(...,1): Chuyển các tần suất thành 1 (có mặt) hoặc FALSE.
  4. SUM: Cộng lại số 1, cho ra số lượng giá trị duy nhất.

2.1.3 Cách Nhập Công Thức

  • Đối với Excel trước 365: nhấn Ctrl+Shift+Enter để công thức trở thành công thức mảng (được bao quanh bởi {}).
  • Đối với Excel 365/2026: Công thức sẽ tự động hoạt động như mảng, không cần Ctrl+Shift+Enter.

2.1.4 Ưu – Nhược Điểm

Ưu điểmNhược điểm
Không cần add‑in, hoạt động trên mọi phiên bảnTốc độ chậm khi dải dữ liệu lớn (hơn 10.000 ô)
Không cần bảng phụ trợCú pháp phức tạp, khó bảo trì

2.2 Dùng Hàm SUMPRODUCT + COUNTIF

Công thức này ngắn gọn hơn và không cần nhập dạng mảng.

=SUMPRODUCT(1/COUNTIF(A2:A1000, A2:A1000))

2.2.1 Nguyên Lý Hoạt Động

  • COUNTIF(A2:A1000, A2:A1000) trả về mảng số lần mỗi giá trị xuất hiện.
  • 1/ chuyển thành tần suất nghịch đảo (ví dụ: nếu một giá trị xuất hiện 3 lần, mỗi lần sẽ nhận 1/3).
  • SUMPRODUCT cộng lại, cho ra số lượng giá trị duy nhất.

2.2.2 Lưu Ý

  • Công thức không hoạt động nếu có giá trị rỗng ("") trong dải. Để loại bỏ, có thể dùng:
    excel =SUMPRODUCT((A2:A1000<>"")/COUNTIF(A2:A1000, A2:A1000 & ""))

2.2.3 Ưu – Nhược Điểm

Ưu điểmNhược điểm
Ngắn gọn, không cần Ctrl+Shift+EnterKhông chính xác khi dữ liệu chứa lỗi #N/A hoặc giá trị rỗng
Tốc độ tốt hơn COUNTIF + FREQUENCY trên dải trung bìnhĐối với dải rất lớn (> 100.000) vẫn có thể chậm

2.3 Hàm UNIQUE (Excel 365/2026)

Excel 365 giới thiệu hàm động UNIQUE, cho phép trích xuất danh sách các giá trị duy nhất một cách nhanh chóng.

2.3.1 Công Thức Cơ Bản

=ROWS(UNIQUE(A2:A1000))

2.3.2 Giải Thích

  • UNIQUE(A2:A1000) trả về một mảng các giá trị không lặp.
  • ROWS đếm số hàng trong mảng đó, chính là số giá trị duy nhất.

2.3.3 Thêm Điều Kiện

Bạn có thể kết hợp UNIQUE với FILTER để chỉ đếm các giá trị thỏa mãn điều kiện:

=ROWS(UNIQUE(FILTER(A2:A1000, B2:B1000="Completed")))

2.3.4 Ưu – Nhược Điểm

Ưu điểmNhược điểm
Rất nhanh, cú pháp đơn giảnChỉ khả dụng trên Excel 365/2026 trở lên
Hỗ trợ mảng động, tự động mở rộngKhi dữ liệu rất lớn, vẫn có thể gây chậm do tính toán mảng

2.4 PivotTable Với “Distinct Count”

PivotTable trong Excel 2026 trở lên có tùy chọn Distinct Count trong phần Value Field Settings.

2.4.1 Các Bước Thực Hiện

  1. Chọn dải dữ liệu → Insert → PivotTable.
  2. Đặt PivotTable vào một vị trí mới hoặc hiện tại.
  3. Kéo trường đếm (ví dụ: CustomerID) vào khu vực Values.
  4. Click chuột phải vào trường trong Values → Value Field Settings.
  5. Chọn Distinct Count (thường nằm cuối danh sách). Nhấn OK.

2.4.2 Lưu Ý Khi Sử Dụng

  • Đối với Excel 2026 trở xuống, tính năng này không có sẵn. Bạn cần cài Add‑in Power Pivot (đi kèm trong phiên bản Professional Plus hoặc Office 365).
  • Khi dữ liệu được cập nhật, Refresh PivotTable để lấy lại kết quả mới.

2.4.3 Ưu – Nhược Điểm

Ưu điểmNhược điểm
Giao diện trực quan, không cần công thứcKhông linh hoạt khi muốn kết hợp với các phép tính phức tạp
Tự động cập nhật khi refreshKhông dùng được trong các công thức tính toán khác (ví dụ: trong ô tính)

2.5 Power Pivot & DAX – DISTINCTCOUNT

Nếu bạn đang làm việc với bộ dữ liệu lớn (hàng trăm nghìn – vài triệu dòng), Power Pivot và DAX là giải pháp tối ưu.

Distinct Count Formula In Excel
Distinct Count Formula In Excel

2.5.1 Kích Hoạt Power Pivot

  • Excel 2026/2026/365: File → Options → Add‑Ins → Chọn COM Add‑ins → Tick Microsoft Power Pivot for Excel → OK.

2.5.2 Tạo Bảng DAX

Giả sử bảng dữ liệu tên là Sales, cột cần đếm là CustomerID.

DistinctCustomers := DISTINCTCOUNT(SalesCustomerID)

2.5.3 Sử Dụng Trong PivotTable

  • Khi tạo PivotTable từ Data Model, kéo trường DistinctCustomers vào Values để xem số lượng khách hàng duy nhất.

2.5.4 Ưu – Nhược Điểm

Ưu điểmNhược điểm
Xử lý dữ liệu lớn, tốc độ nhanhCần học DAX, không phải người dùng Excel thông thường
Cho phép tạo các chỉ số phức tạp (distinct count + filter, time intelligence)Yêu cầu Office Professional Plus hoặc 365 Enterprise

3. So Sánh Các Phương Pháp

Phương phápPhiên bản ExcelĐộ phức tạpTốc độ (dải 10.000)Hỗ trợ rỗng/ lỗiGhi chú
COUNTIF + FREQUENCY (mảng)Mọi phiên bảnCaoTrung bìnhBỏ qua rỗngCần Ctrl+Shift+Enter
SUMPRODUCT + COUNTIFMọi phiên bảnTrung bìnhTốtKhông tự động bỏ rỗngCần xử lý rỗng thủ công
UNIQUE + ROWS365/2026+ThấpRất nhanhTự động bỏ rỗngCú pháp ngắn gọn
PivotTable Distinct Count2026+Thấp (giao diện)NhanhXử lý tự độngKhông dùng trong công thức
Power Pivot DISTINCTCOUNT2026+ (Data Model)Trung bình‑cao (DAX)Rất nhanh (big data)Xử lý rỗng, lỗi trong DAXYêu cầu Power Pivot

4. Thực Hành: Ví Dụ Thực Tế

4.1 Đếm Số Khách Hàng Độc Nhất Mua Hàng Trong Tháng 3/2026

Giả sử bảng Orders có các cột:
– OrderID
– CustomerID
– OrderDate

4.1.1 Sử Dụng UNIQUE

=ROWS(UNIQUE(FILTER(OrdersCustomerID, (OrdersOrderDate>=DATE(2026,3,1))(OrdersOrderDate<=DATE(2026,3,31)))))

4.1.2 Sử Dụng Power Pivot (DAX)

DistinctCustomersMar2024 :=
CALCULATE( DISTINCTCOUNT(OrdersCustomerID), FILTER( Orders, OrdersOrderDate >= DATE(2026,3,1) && OrdersOrderDate <= DATE(2026,3,31) )
)

4.2 Đếm Số Sản Phẩm Khác Nhau Trong Kho

Cột ProductCode trong sheet Inventory.

Công Thức SUMPRODUCT

=SUMPRODUCT((Inventory!A2:A5000<>"")/COUNTIF(Inventory!A2:A5000, Inventory!A2:A5000 & ""))

PivotTable

  1. Chọn Inventory → Insert → PivotTable.
  2. Kéo ProductCode vào Values → Value Field Settings → Distinct Count.

5. Xử Lý Các Trường Hợp Đặc Biệt

5.1 Bỏ Qua Giá Trị Trống

Trong hầu hết các công thức, giá trị rỗng sẽ được tính là một giá trị duy nhất, gây sai lệch. Cách khắc phục:

  • SUMPRODUCT:
    excel =SUMPRODUCT((A2:A1000<>"")/COUNTIF(A2:A1000, A2:A1000 & ""))

  • UNIQUE:
    excel =ROWS(UNIQUE(FILTER(A2:A1000, A2:A1000<>"")))

  • COUNTIF + FREQUENCY:
    excel =SUM(IF(FREQUENCY(IF(A2:A1000<>"", MATCH(A2:A1000, A2:A1000,0)), ROW(A2:A1000)-ROW(A2)+1),1))
    (Nhập dạng mảng)

5.2 Xử Lý Lỗi #N/A Hoặc #VALUE!

  • Dùng IFERROR hoặc IFNA để lọc ra lỗi trước khi tính:
    excel =SUMPRODUCT((IFERROR(A2:A1000,"")<>"")/COUNTIF(A2:A1000, IFERROR(A2:A1000,"") & ""))

5.3 Đếm Distinct Count Với Nhiều Cột (Kết Hợp)

Bạn muốn đếm các cặp giá trị duy nhất giữa cột Region và Product.

5.3.1 Sử Dụng UNIQUE (365+)

=ROWS(UNIQUE(A2:B1000))

(A = Region, B = Product)

5.3.2 Sử Dụng SUMPRODUCT

=SUMPRODUCT(1/COUNTIFS(A2:A1000, A2:A1000, B2:B1000, B2:B1000))

5.3.3 Power Pivot DAX

DistinctRegionProduct :=
DISTINCTCOUNT( SalesRegion & "|" & SalesProduct )

Lưu ý: Khi dùng DAX, bạn có thể tạo Calculated Column để nối hai trường, sau đó dùng DISTINCTCOUNT trên cột mới.

6. Tối Ưu Hóa Khi Làm Việc Với Dữ Liệu Lớn

  1. Giảm phạm vi tính toán: Thay vì A:A, hãy giới hạn cụ thể (A2:A10000).
  2. Sử dụng bảng (Table): Khi dữ liệu được định dạng thành Table (Ctrl+T), công thức có thể dùng tên cột động (Table1CustomerID), giúp bảo trì dễ dàng.
  3. Tắt tính toán tự động (Formulas → Calculation Options → Manual) khi nhập công thức phức tạp, rồi Calculate Now (F9).
  4. Sử dụng Power Query: Trước khi đưa vào Excel, bạn có thể group by và đếm distinct trong Power Query, giảm khối lượng dữ liệu trong sheet.

7. Tổng Kết

  • Nếu bạn dùng Excel 365/2026, hàm UNIQUE là lựa chọn nhanh nhất và dễ đọc nhất.
  • Đối với các phiên bản cũ, công thức SUMPRODUCT + COUNTIF là cách ngắn gọn nhất, còn COUNTIF + FREQUENCY là giải pháp mạnh mẽ khi cần mảng.
  • PivotTable cung cấp giao diện trực quan cho người không muốn viết công thức.
  • Power Pivot + DAX là giải pháp tối ưu cho dữ liệu lớn và các phân tích phức tạp.
  • Đừng quên xử lý giá trị rỗng và lỗi để kết quả đúng đắn.

Với những kiến thức và công cụ trên, bạn hoàn toàn có thể đếm số lượng giá trị duy nhất trong bất kỳ tập dữ liệu nào, từ vài dòng tới hàng triệu bản ghi, một cách nhanh chóng, chính xác và hiệu quả. Hãy lựa chọn phương pháp phù hợp với môi trường làm việc và phiên bản Excel của bạn, và áp dụng chúng vào các báo cáo, phân tích thực tế để nâng cao chất lượng dữ liệu và quyết định kinh doanh. Chúc bạn thành công!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận