Có thể bạn quan tâm: Excel Conditional Formatting Formula If: Hướng Dẫn Chi Tiết Từ A Đến Z
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:
- Khái niệm cơ bản: COUNTIF là gì? COUNTIF hoạt động như thế nào?
- Công thức đếm ô không rỗng: COUNTIF + “<>”, COUNTA, và các biến thể.
- 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.
- Kỹ thuật nâng cao: Dùng mảng (array formulas), SUMPRODUCT, FILTER, và các hàm mới như LET, LAMBDA.
- Thực hành với Power Query: Đếm ô không rỗng trong môi trường ETL.
- Tự động hoá bằng VBA: Macro đếm ô không rỗng nhanh cho bảng lớn.
- 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.
- 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.
Có thể bạn quan tâm: Excel Concat String With Separator: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
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
COUNTIFchỉ 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 (“”).
Có thể bạn quan tâm: Excel Cho Người Đi Làm: Bí Quyết Thành Thạo, Tăng Năng Suất Và Thăng Tiến Nhanh Chóng
2. Công thức đếm ô không rỗng – COUNTIF + “<>”
2.1. Cú pháp cơ bản
=COUNTIF(A:A,"<>")
A:Alà 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

Có thể bạn quan tâm: Cách Đếm Ô Chứa Văn Bản Trong Excel: Hướng Dẫn Chi Tiết Và Thực Hành
Trong PivotTable, bạn không thể trực tiếp dùng COUNTIF, nhưng có thể tạo Calculated Field:
- Thêm trường “CountNonEmpty” =
IF(LEN(Field)>0,1,0). - Đặ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:
- Import dữ liệu vào Power Query (Data → From Table/Range).
- 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
- Sum cột mới để có tổng số ô không rỗng.
- Đó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 = Sumvà 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ống | Hàm đề xuất | Lý do |
|---|---|---|
Dữ liệu đơn giản, không có công thức trả về "" | COUNTA | Nhanh, 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ỗng | COUNTIF(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) | COUNTIFS | Hỗ trợ đa tiêu chí |
| Dữ liệu lớn (>100k ô) và muốn tối ưu | COUNTIF hoặc VBA CountNonEmptyFast | COUNTIF đượ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 Query | Dễ thao tác, tự động cập nhật |
| Sử dụng Excel 365 và muốn công thức ngắn gọn | COUNTA(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ột | SUMPRODUCT(--(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,TODAYlà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ênINDEX.
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)
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ặcSUMPRODUCT(--(LEN(TRIM(D:D))>0)).Bài 2: Sử dụng Power Query để nhập file
sales_2024.csv, sau đó tạo cộtIsCompleted= 1 nếu cộtStatuskhông rỗng, 0 nếu rỗng. Tổng sốIsCompleted.Bài 3: Viết macro VBA để đếm ô không rỗng trong phạm vi
B2:G1000và trả về kết quả trong ôH1.Bài 4: Dùng hàm
LETđể tạo công thức đếm ô không rỗng trong cộtE, đồ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!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
