Excel Countif Not Empty – Hướng Dẫn Chi Tiết Đếm Ô Không Rỗng Trong Bảng Tính

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

Mở Đầu

Trong công việc xử lý dữ liệu bằng Microsoft Excel, việc đếm số ô không rỗng (non‑empty cells) là một nhu cầu thường gặp. Dù bạn đang tổng hợp danh sách khách hàng, kiểm tra số lượng mục đã hoàn thành trong dự án, hay phân tích dữ liệu khảo sát, việc biết nhanh chóng có bao nhiêu ô chứa dữ liệu thực sự giúp bạn đưa ra quyết định nhanh và chính xác.

Trong bài viết này, chúng ta sẽ đi sâu vào hàm COUNTIF, cách sử dụng nó để đếm ô không rỗng, đồng thời giới thiệu một số cách thay thế như COUNTA, COUNTBLANK, SUMPRODUCT, và các kỹ thuật nâng cao như dùng định dạng có điều kiện, bảng động (dynamic arrays), Power Query và VBA. Bài viết sẽ được chia thành các phần:

  1. Khái niệm cơ bản: COUNTIF là gì? COUNTIF hoạt động như thế nào?
  2. Công thức đếm ô không rỗng: COUNTIF + “<>”, COUNTA, và các biến thể.
  3. Các trường hợp thực tế: Đếm ô không rỗng trong một cột, trong nhiều cột, theo tiêu chí ngày tháng, số liệu, văn bản, hoặc kết hợp.
  4. Kỹ thuật nâng cao: Dùng mảng (array formulas), SUMPRODUCT, FILTER, và các hàm mới như LET, LAMBDA.
  5. Thực hành với Power Query: Đếm ô không rỗng trong môi trường ETL.
  6. Tự động hoá bằng VBA: Macro đếm ô không rỗng nhanh cho bảng lớn.
  7. Mẹo tối ưu hiệu suất: Khi nào nên dùng COUNTIF vs COUNTA, khi nào tránh volatile functions.
  8. Kết luận: Tổng hợp lại các phương pháp và gợi ý lựa chọn phù hợp.

Lưu ý: Tất cả các ví dụ trong bài viết đều dùng Excel 365/2026 (có hỗ trợ dynamic arrays), nhưng hầu hết công thức cũng tương thích với Excel 2026, 2026 và thậm chí Excel 2007.

1. COUNTIF là gì? Cách hoạt động cơ bản

1.1. Định nghĩa hàm COUNTIF

COUNTIF(range, criteria) là một hàm đếm số ô trong một phạm vi (range) thỏa mãn điều kiện (criteria) được chỉ định. Cú pháp:

COUNTIF(range, criteria)
  • range: Vùng dữ liệu bạn muốn kiểm tra (có thể là một cột, một hàng, hoặc một vùng đa chiều).
  • criteria: Điều kiện, có thể là một giá trị cố định, một biểu thức, hoặc một chuỗi ký tự (ví dụ: “>10”, “=Apple”, “<>” – ký hiệu “<>” nghĩa là không bằng).

1.2. COUNTIF vs COUNTIFS

  • COUNTIF chỉ chấp nhận một tiêu chí.
  • COUNTIFS (với S ở cuối) cho phép nhiều tiêu chí đồng thời, ví dụ: COUNTIFS(A:A,">0",B:B,"<>").

1.3. Khi nào dùng COUNTIF để đếm ô không rỗng?

  • Khi bạn muốn loại trừ các ô trống và đếm tất cả các ô có chứa bất kỳ dữ liệu nào (số, văn bản, lỗi, ngày tháng).
  • Khi dữ liệu được phân bố trong một cột duy nhất và bạn không muốn tính cả các ô chứa công thức trả về chuỗi rỗng (“”).

2. Công thức đếm ô không rỗng – COUNTIF + “<>”

2.1. Cú pháp cơ bản

=COUNTIF(A:A,"<>")
  • A:A là cột cần đếm.
  • "<>" là ký hiệu không bằng; khi không có gì phía sau, Excel hiểu là không bằng chuỗi rỗng, tức là không rỗng.

2.2. Ví dụ thực tế

Giả sử cột A chứa danh sách tên khách hàng, trong đó có một số ô trống:

A
Nguyễn Văn A
(trống)
Trần Thị B
Lê C
(trống)

Công thức =COUNTIF(A:A,"<>") sẽ trả về 3, vì chỉ có ba ô chứa dữ liệu.

2.3. Đếm ô không rỗng trong một vùng đa chiều

Nếu muốn đếm trong một vùng A1:C10:

=COUNTIF(A1:C10,"<>")

2.4. Kết hợp với các tiêu chí khác

Bạn có thể kết hợp với các hàm khác để lọc dữ liệu trước khi đếm:

  • Đếm ô không rỗng và lớn hơn 100 trong cột B:
=COUNTIFS(B:B,">100",B:B,"<>")
  • Đếm ô không rỗng và chứa chữ “Excel” trong cột C:
=COUNTIFS(C:C,"Excel",C:C,"<>")

3. Các cách thay thế: COUNTA và COUNTBLANK

3.1. COUNTA

COUNTA(range) đếm số ô không rỗng trong một phạm vi, không cần chỉ định tiêu chí. Đây là cách ngắn gọn nhất khi không có công thức trả về chuỗi rỗng.

=COUNTA(A:A)
  • Ưu điểm: Đơn giản, nhanh.
  • Nhược điểm: Đếm cả các ô chứa công thức trả về "". Nếu muốn loại bỏ chúng, cần dùng công thức phức tạp hơn.

3.2. COUNTBLANK

COUNTBLANK(range) trả về số ô trống. Khi bạn muốn biết tổng số ô và số ô không rỗng, bạn có thể dùng:

=ROWS(A:A)COLUMNS(A:A) - COUNTBLANK(A:A)

Hoặc đơn giản hơn:

=COUNTA(A:A) + COUNTBLANK(A:A) = TOTAL_CELLS

3.3. Khi nào chọn COUNTA vs COUNTIF

  • COUNTIF với “<>”: Thích hợp khi muốn bỏ qua các công thức trả về "".
  • COUNTA: Thích hợp khi dữ liệu được nhập thủ công hoặc không có công thức trả về chuỗi rỗng.
  • COUNTBLANK: Khi bạn cần đếm số ô trống để tính tỷ lệ, ví dụ: “% hoàn thành”.

4. Các trường hợp thực tế

4.1. Đếm ô không rỗng trong một danh sách khách hàng

Giả sử bảng Customers có các cột: A: CustomerID, B: Name, C: Email. Bạn muốn biết có bao nhiêu khách hàng đã cung cấp email.

=COUNTIF(C:C,"<>")

Nếu muốn loại bỏ các ô chứa công thức IFERROR(...,""), dùng:

=SUMPRODUCT(--(LEN(TRIM(C:C))>0))

4.2. Đếm ô không rỗng trong nhiều cột (hàng)

Bạn có bảng chấm công, mỗi ngày trong tuần là một cột (B‑H). Muốn tính tổng số ngày làm việc (cột không rỗng) cho một nhân viên (hàng 2).

=COUNTIF(B2:H2,"<>")

4.3. Đếm ô không rỗng theo điều kiện ngày tháng

Bạn có cột A chứa ngày giao hàng, cột B chứa số lượng. Muốn đếm số giao hàng đã nhập (cột B không rỗng) trong tháng tháng 5/2026:

=COUNTIFS(A:A,">=2026-05-01",A:A,"<=2026-05-31",B:B,"<>")

4.4. Đếm ô không rỗng chứa số nguyên dương

=COUNTIFS(B:B,">0",B:B,"<>")

4.5. Đếm ô không rỗng trong một bảng động (Dynamic Array)

Với Excel 365, bạn có thể dùng hàm FILTER để tạo mảng tạm thời, rồi dùng COUNTA:

=COUNTA(FILTER(A:A, A:A<>""))

4.6. Đếm ô không rỗng trong một bảng pivot

Excel Count If Not Empty
Excel Count If Not Empty

Trong PivotTable, bạn không thể trực tiếp dùng COUNTIF, nhưng có thể tạo Calculated Field:

  1. Thêm trường “CountNonEmpty” = IF(LEN(Field)>0,1,0).
  2. Đặt Sum cho trường này trong Pivot.

4.7. Đếm ô không rỗng trong file CSV được nhập vào

Khi dùng Power Query để nhập CSV, bạn có thể thêm cột tùy chỉnh:

= Table.AddColumn(Source, "IsNotEmpty", each if Text.Trim(Column) <> "" then 1 else 0)

Sau đó, tổng cột “IsNotEmpty” để có số lượng ô không rỗng.

5. Kỹ thuật nâng cao – Dùng mảng, SUMPRODUCT, LET, LAMBDA

5.1. SUMPRODUCT + LEN

Công thức sau sẽ đếm số ô có độ dài >0 (bỏ qua công thức trả về “”) :

=SUMPRODUCT(--(LEN(TRIM(A1:A100))>0))

Giải thích:
– TRIM loại bỏ khoảng trắng đầu/cuối.
– LEN trả về độ dài chuỗi.
– -- chuyển TRUE/FALSE thành 1/0.

5.2. Dùng hàm LET (Excel 365)

Giúp đọc công thức dễ hơn và tối ưu tính toán:

=LET( rng, A1:A1000, nonEmpty, LEN(TRIM(rng))>0, SUM(--nonEmpty)
)

5.3. Dùng hàm LAMBDA để tạo hàm tùy chỉnh

Bạn có thể tạo một hàm COUNTNONEMPTY để tái sử dụng:

=LAMBDA(rng, SUMPRODUCT(--(LEN(TRIM(rng))>0))
)

Sau khi lưu vào Name Manager với tên COUNTNONEMPTY, sử dụng:

=COUNTNONEMPTY(B2:B500)

5.4. Đếm ô không rỗng trong một bảng 2‑chiều (ma trận)

Nếu muốn đếm tổng số ô không rỗng trong một bảng A1:D10, có thể dùng:

=SUMPRODUCT(--(LEN(TRIM(A1:D10))>0))

Hoặc dùng hàm mới MAP (Excel 365):

=REDUCE(0, A1:D10, LAMBDA(acc, cell, acc + (LEN(TRIM(cell))>0)))

5.5. Đếm ô không rỗng trong một range được đặt tên (named range)

Nếu bạn đã đặt tên cho vùng DataRange, công thức:

=COUNTIF(DataRange,"<>")

Hoặc:

=COUNTA(DataRange)

6. Power Query – Đếm ô không rỗng trong môi trường ETL

Power Query là công cụ mạnh mẽ để truy xuất, làm sạch, và chuyển đổi dữ liệu trước khi đưa vào Excel. Khi làm việc với dữ liệu lớn, việc đếm ô không rỗng trong Power Query có thể thực hiện như sau:

  1. Import dữ liệu vào Power Query (Data → From Table/Range).
  2. Chọn cột cần đếm, sau đó Add Column → Custom Column và nhập công thức:
= if Text.Trim(ColumnName) = "" then 0 else 1
  1. Sum cột mới để có tổng số ô không rỗng.
  2. Đóng và tải lại dữ liệu vào Excel.

6.1. Sử dụng Group By để đếm theo nhóm

Nếu bạn có bảng bán hàng với cột Region và Salesperson, muốn đếm số bản ghi có giá trị trong cột OrderID cho mỗi vùng:

  • Chọn Group By → Advanced.
  • Thêm aggregation: CountNonEmpty = Sum và công thức: if OrderID = null then 0 else 1.

Kết quả sẽ hiển thị số lượng đơn hàng không rỗng cho mỗi vùng.

7. VBA – Tự động hoá việc đếm ô không rỗng trong bảng lớn

Khi làm việc với hàng triệu dữ liệu, các hàm worksheet có thể chậm. Một macro VBA đơn giản có thể thực hiện nhanh hơn:

Function CountNonEmpty(rng As Range) As Long Dim cell As Range Dim cnt As Long For Each cell In rng If Len(Trim(cell.Value)) > 0 Then cnt = cnt + 1 Next cell CountNonEmpty = cnt
End Function

Sử dụng trong worksheet:

=CountNonEmpty(A1:A1000000)

7.1. Tối ưu với Array trong VBA

Function CountNonEmptyFast(rng As Range) As Long Dim arr As Variant Dim i As Long, j As Long, cnt As Long arr = rng.Value2 'Lấy toàn bộ dữ liệu vào mảng For i = LBound(arr, 1) To UBound(arr, 1) For j = LBound(arr, 2) To UBound(arr, 2) If Len(Trim(CStr(arr(i, j)))) > 0 Then cnt = cnt + 1 Next j Next i CountNonEmptyFast = cnt
End Function

Đây là cách nhanh nhất khi cần đếm trong khu vực đa chiều.

8. Mẹo tối ưu hiệu suất – Khi nào nên dùng hàm nào?

Tình huốngHàm đề xuấtLý do
Dữ liệu đơn giản, không có công thức trả về ""COUNTANhanh, không tính toán tiêu chí
Cần loại bỏ các công thức trả về chuỗi rỗngCOUNTIF(range,"<>") hoặc SUMPRODUCT(--(LEN(TRIM(range))>0))Đảm bảo chỉ đếm ô thực sự chứa dữ liệu
Đếm nhiều tiêu chí (ví dụ: không rỗng + >0)COUNTIFSHỗ trợ đa tiêu chí
Dữ liệu lớn (>100k ô) và muốn tối ưuCOUNTIF hoặc VBA CountNonEmptyFastCOUNTIF được tính bằng engine C nhanh, VBA array còn nhanh hơn khi cần tùy biến
Cần đếm theo nhóm (region, category)PivotTable với calculated field hoặc Power QueryDễ thao tác, tự động cập nhật
Sử dụng Excel 365 và muốn công thức ngắn gọnCOUNTA(FILTER(range, range<>""))Lợi dụng dynamic arrays, dễ đọc
Khi muốn đếm ô không rỗng trong một bảng có nhiều cộtSUMPRODUCT(--(LEN(TRIM(range))>0))Đếm toàn bộ vùng đa chiều

8.1. Tránh các hàm volatile

  • Các hàm như OFFSET, INDIRECT, NOW, TODAY làm tái tính toàn bộ workbook mỗi khi có thay đổi, gây chậm. Khi có thể, thay thế bằng công thức tĩnh hoặc định danh tên (named range) dựa trên INDEX.

8.2. Sử dụng Table (structured reference)

Khi dữ liệu được định dạng thành Table (Ctrl+T), công thức có thể viết ngắn gọn:

=COUNTIF(Table1Email,"<>")

Bảng tự động mở rộng khi thêm dòng mới, vì vậy công thức luôn cập nhật.

9. Tổng Kết – Lựa chọn công cụ phù hợp

  • COUNTIF + “<>”: Đếm ô không rỗng, bảo vệ trước các công thức trả về "".
  • COUNTA: Đếm nhanh khi dữ liệu được nhập thủ công và không có chuỗi rỗng.
  • SUMPRODUCT + LEN: Khi cần điều kiện phức tạp (bỏ khoảng trắng, lọc ký tự).
  • Dynamic arrays (FILTER + COUNTA): Giải pháp hiện đại, ngắn gọn, thích hợp cho Excel 365.
  • Power Query: Khi dữ liệu được tải từ nguồn ngoài, hoặc cần xử lý trước.
  • VBA: Khi làm việc với dữ liệu khổng lồ và muốn tối ưu thời gian tính toán.

Cuối cùng, hiểu rõ dữ liệu và định dạng (công thức, lỗi, chuỗi rỗng) là chìa khóa để chọn hàm đếm phù hợp. Khi áp dụng đúng, bạn sẽ giảm thiểu lỗi, tăng tốc độ xử lý và có được những báo cáo chính xác, nhanh chóng.

10. Bài tập thực hành (Tự kiểm tra)

  1. Bài 1: Trong cột D có 5000 ô, trong đó 1200 ô chứa công thức =IF(A2="","",A2). Viết công thức đếm số ô thực sự chứa dữ liệu (bỏ qua "").
    Gợi ý: COUNTIF(D:D,"<>") hoặc SUMPRODUCT(--(LEN(TRIM(D:D))>0)).

  2. Bài 2: Sử dụng Power Query để nhập file sales_2024.csv, sau đó tạo cột IsCompleted = 1 nếu cột Status không rỗng, 0 nếu rỗng. Tổng số IsCompleted.

  3. Bài 3: Viết macro VBA để đếm ô không rỗng trong phạm vi B2:G1000 và trả về kết quả trong ô H1.

  4. Bài 4: Dùng hàm LET để tạo công thức đếm ô không rỗng trong cột E, đồng thời trả về tỷ lệ % so với tổng số ô trong cột (giả sử cột có 1000 ô).

11. Kết Luận

Đếm ô không rỗng trong Excel không chỉ là một thao tác đơn giản mà còn là cốt lõi của việc phân tích dữ liệu, kiểm soát chất lượng và tạo báo cáo. Bằng việc hiểu rõ cách hoạt động của COUNTIF, COUNTA, SUMPRODUCT, Power Query, và VBA, bạn có thể lựa chọn giải pháp nhanh nhất, chính xác nhất cho từng tình huống.

Hy vọng bài viết này đã cung cấp cho bạn hướng dẫn chi tiết, công thức thực tế, và một loạt mẹo tối ưu để làm chủ việc đếm ô không rỗng trong mọi môi trường làm việc với Excel. Chúc bạn thành công và luôn đạt được kết quả phân tích dữ liệu tối ưu!

⚠️
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