Có thể bạn quan tâm: Cách Xóa Cột Trống Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Giới thiệu chung
Microsoft Excel là một trong những công cụ quản lý dữ liệu mạnh mẽ và phổ biến nhất hiện nay. Dù bạn là nhân viên kế toán, nhà phân tích dữ liệu, giáo viên hay một người làm việc tự do, khả năng xử lý và phân tích dữ liệu trong Excel luôn là một kỹ năng quan trọng. Trong quá trình làm việc, bạn thường gặp phải những bảng tính chứa nhiều ô trống—có thể là do dữ liệu chưa được nhập, lỗi nhập liệu hoặc chỉ đơn giản là không cần thiết. Việc đếm ô trống trong Excel giúp bạn:
- Xác định mức độ hoàn thiện của bộ dữ liệu.
- Phát hiện các khoảng trống cần được điền hoặc loại bỏ.
- Tính toán các chỉ số thống kê chính xác hơn (ví dụ: trung bình, tỷ lệ phần trăm).
- Tự động hoá quy trình kiểm tra dữ liệu trong các báo cáo định kỳ.
Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ các cách đơn giản nhất cho người mới bắt đầu, tới các phương pháp nâng cao sử dụng công thức, hàm, bảng PivotTable, VBA và Power Query. Ngoài ra, chúng ta sẽ thảo luận về các trường hợp đặc biệt như đếm ô trống trong các dải dữ liệu không liên tục, trong các ô chứa công thức trả về chuỗi rỗng (""), và cách tích hợp đếm ô trống vào các quy trình tự động hoá.
Lưu ý: Bài viết được chia thành nhiều phần, mỗi phần bao gồm lý thuyết, ví dụ thực tế và các lưu ý thực tiễn. Bạn có thể đọc toàn bộ hoặc chỉ tập trung vào phần mình cần.
Có thể bạn quan tâm: Hướng Dẫn Chi Tiết Vẽ Đường Thẳng Trong Excel: Các Phương Pháp, Mẹo Thủ Và Ứng Dụng Thực Tiễn
1. Khái niệm cơ bản: Ô trống là gì?
Trước khi bắt đầu đếm, chúng ta cần xác định ô trống trong Excel thực sự là gì. Có ba loại ô thường được coi là “trống”:
| Loại ô | Mô tả | Cách xác định trong công thức |
|---|---|---|
| Ô thực sự trống | Không chứa dữ liệu, không có công thức, không có định dạng đặc biệt. | ISBLANK(A1) trả về TRUE. |
| Ô chứa công thức trả về chuỗi rỗng | Công thức như =IF(A1>0, "Có", "") trả về "". | A1="" hoặc LEN(A1)=0 trả về TRUE, nhưng ISBLANK(A1) trả về FALSE. |
| Ô chứa giá trị lỗi | Ví dụ #N/A, #DIV/0!. | Không phải ô trống, nhưng trong một số báo cáo bạn có thể muốn tính chúng là “không có dữ liệu”. |
Việc hiểu rõ sự khác nhau này sẽ giúp bạn lựa chọn hàm và cách tiếp cận phù hợp.
Có thể bạn quan tâm: Tự Động Xuống Dòng Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Đếm ô trống bằng hàm sẵn có trong Excel
2.1. Hàm COUNTBLANK
Đây là hàm đơn giản nhất để đếm ô trống trong một dải ô.
=COUNTBLANK(A1:C10)
- Cú pháp:
COUNTBLANK(range) - Kết quả: Số lượng ô trong
rangemà Excel coi là trống (chỉ tính ô không có dữ liệu và không có công thức trả về chuỗi rỗng).
Ví dụ thực tế
Giả sử bạn có bảng dữ liệu bán hàng trong A1:C5:
| A | B | C |
|---|---|---|
| 100 | 200 | |
| 150 | 300 | |
| 250 | 350 | |
| 120 | ||
Áp dụng =COUNTBLANK(A1:C5) sẽ trả về 7, vì có 7 ô không có bất kỳ giá trị nào.
Lưu ý
- Nếu ô chứa công thức trả về
"",COUNTBLANKkhông tính là ô trống. COUNTBLANKkhông phân biệt giữa ô trống và ô chứa lỗi. Nếu muốn tính lỗi như ô trống, bạn cần kết hợp với các hàm khác (xem phần 3).
2.2. Kết hợp COUNTIF để đếm chuỗi rỗng
Nếu bạn muốn tính cả các ô có công thức trả về "", bạn có thể dùng COUNTIF:
=COUNTIF(A1:C10, "")
- Cú pháp:
COUNTIF(range, criteria) - Kết quả: Số ô trong
rangecó nội dung bằng chuỗi rỗng. Điều này bao gồm ô thực sự trống và ô chứa công thức trả về"".
Ví dụ
Tiếp tục với bảng trên, nếu ô B2 chứa công thức =IF(A2>0, "", "Missing"), COUNTIF(A1:C5, "") sẽ trả về 8 (7 ô trống thực + 1 ô công thức trả về "").
2.3. Đếm ô trống và ô lỗi bằng COUNTBLANK + COUNTIF
Để tính tổng số ô “không có dữ liệu thực” (trống + lỗi), bạn có thể dùng:
=COUNTBLANK(A1:C10) + COUNTIF(A1:C10, "#N/A") + COUNTIF(A1:C10, "#DIV/0!")
Bạn có thể mở rộng danh sách các lỗi bằng cách sử dụng hàm SUMPRODUCT (xem phần 3).
3. Đếm ô trống trong các trường hợp nâng cao
3.1. Đếm ô trống trong dải không liên tục
Nếu dải ô của bạn không liền nhau, bạn có thể dùng COUNTBLANK cho từng dải và cộng lại:
=COUNTBLANK(A1:A10) + COUNTBLANK(C1:C10) + COUNTBLANK(E1:E10)
Hoặc dùng hàm mảng (Excel 365/2026 trở lên) để gộp lại:
=SUM(COUNTBLANK((A1:A10, C1:C10, E1:E10)))
Mở rộng: Với Excel 365, bạn có thể dùng hàm
LETđể giảm lặp lại và tăng tính đọc hiểu.
3.2. Đếm ô trống trong bảng (Table)
Khi dữ liệu được định dạng dưới dạng Table (Insert > Table), bạn có thể tham chiếu đến cột bằng tên:
=COUNTBLANK(Table1DoanhThu)
Nếu muốn tính cả ô công thức trả về "":
=COUNTIF(Table1DoanhThu, "")
3.3. Đếm ô trống trong các ô chứa công thức phức tạp
Có lúc ô chứa công thức trả về giá trị số hoặc chuỗi tùy thuộc vào điều kiện. Để kiểm tra xem ô có thực sự “trống” (không có dữ liệu hữu ích) hay không, bạn có thể dùng hàm IF kết hợp OR:
=SUMPRODUCT(--( (LEN(A1:A100)=0) + (ISERROR(A1:A100)) ))
Giải thích:
LEN(A1:A100)=0trả về TRUE cho ô trống hoặc công thức trả về"".ISERROR(A1:A100)trả về TRUE cho các ô lỗi.--chuyển TRUE/FALSE thành 1/0.SUMPRODUCTcộng lại tổng số ô thỏa mãn ít nhất một điều kiện.
3.4. Đếm ô trống dựa trên nhiều tiêu chí (điều kiện)
Bạn có thể muốn đếm ô trống chỉ trong một cột khi cột khác thỏa mãn điều kiện. Ví dụ: Đếm số ô trống trong cột “Ghi chú” khi “Trạng thái” = “Hoàn thành”.
=SUMPRODUCT(--(B2:B100="Hoàn thành"), --(C2:C100=""))
Trong đó:
B2:B100là cột “Trạng thái”.C2:C100là cột “Ghi chú”.
Nếu bạn sử dụng Excel 365, hàm FILTER cũng rất tiện:
=ROWS(FILTER(C2:C100, (B2:B100="Hoàn thành") (C2:C100="")))
3.5. Đếm ô trống trong các ô hợp nhất (merged cells)
Excel không cho phép đếm trực tiếp trong các ô hợp nhất vì chúng được xem như một ô duy nhất. Tuy nhiên, bạn có thể:
- Tách hợp nhất (Select merged cells → Right-click → Format Cells → Alignment → Unmerge).
- Sử dụng VBA để kiểm tra thuộc tính
MergeCells.
Ví dụ VBA:
Function CountBlankMerged(rng As Range) As Long Dim cell As Range, cnt As Long For Each cell In rng If cell.MergeCells Then If Len(cell.MergeArea.Cells(1, 1).Value) = 0 Then cnt = cnt + cell.MergeArea.Cells.Count Else If Len(cell.Value) = 0 Then cnt = cnt + 1 End If Next cell CountBlankMerged = cnt
End Function
Sau khi thêm hàm vào mô-đun, bạn có thể dùng trong ô:
=CountBlankMerged(A1:D20)
4. Đếm ô trống bằng PivotTable
PivotTable (Bảng tổng hợp) là công cụ mạnh để tóm tắt dữ liệu, nhưng mặc định không tính ô trống. Để đưa ô trống vào PivotTable:

Có thể bạn quan tâm: Cách Bỏ Mật Khẩu Trong Excel 2007: Hướng Dẫn Chi Tiết Từ A Đến Z
- Chọn dữ liệu → Insert → PivotTable.
- Kéo cột bạn muốn đếm vào Values.
- Click vào Value Field Settings → Summarize value field by → Count.
- Để hiển thị “(blank)”, kéo cùng cột vào Rows hoặc Columns. Excel sẽ tự động tạo mục “(blank)”.
- Để lấy số lượng ô trống, bạn chỉ cần đọc giá trị ở hàng “(blank)”.
Nếu bạn muốn đếm ô trống kèm tiêu chí, hãy dùng Filters hoặc Report Filter để lọc.
5. Đếm ô trống bằng Power Query (Get & Transform)
Power Query cho phép xử lý dữ liệu trước khi tải vào bảng tính. Đối với việc đếm ô trống:
- Data → Get Data → From Table/Range (hoặc từ nguồn khác).
- Trong Power Query Editor, chọn cột cần kiểm tra.
- Sử dụng Transform → Replace Values để thay thế
nullbằng một giá trị tạm (ví dụ: “blank”). - Thêm Custom Column với công thức:
= if Cột = null then 1 else 0
- Sử dụng Group By để tổng hợp cột mới, cho ra tổng số ô trống.
Power Query cũng hỗ trợ Advanced Editor để viết mã M tùy chỉnh:
let Source = Excel.CurrentWorkbook(){Name="Table1"}Content, AddBlankFlag = Table.AddColumn(Source, "IsBlank", each if Record.FieldValues(_) = null then 1 else 0, Int64.Type), CountBlank = List.Sum(AddBlankFlagIsBlank)
in CountBlank
Kết quả sẽ là một giá trị số duy nhất, có thể tải lại vào một ô trong Excel.
6. Đếm ô trống bằng VBA – Tự động hoá quy trình
Khi bạn cần đếm ô trống trong nhiều sheet, dải dữ liệu động, hoặc muốn gắn macro vào nút bấm, VBA là giải pháp tốt.
6.1. Macro đơn giản đếm ô trống trong một dải
Sub CountBlankCells() Dim rng As Range Dim cnt As Long Set rng = Application.InputBox("Chọn dải ô cần đếm:", Type:=8) cnt = Application.WorksheetFunction.CountBlank(rng) MsgBox "Số ô trống trong dải đã chọn: " & cnt, vbInformation
End Sub
6.2. Đếm ô trống trên toàn workbook
Sub CountBlankInWorkbook() Dim ws As Worksheet Dim totalBlank As Long Dim rng As Range totalBlank = 0 For Each ws In ThisWorkbook.Worksheets On Error Resume Next Set rng = ws.UsedRange totalBlank = totalBlank + Application.WorksheetFunction.CountBlank(rng) On Error GoTo 0 Next ws MsgBox "Tổng số ô trống trong toàn workbook: " & totalBlank, vbInformation
End Sub
6.3. Đếm ô trống (bao gồm công thức trả về "") trong một dải
Function CountBlankOrEmpty(rng As Range) As Long Dim cell As Range, cnt As Long For Each cell In rng If Len(cell.Value) = 0 Then cnt = cnt + 1 Next cell CountBlankOrEmpty = cnt
End Function
Sử dụng trong ô:
=CountBlankOrEmpty(A1:C10)
6.4. Gắn macro vào nút bấm trên sheet
- Insert → Shapes → Choose shape → Vẽ nút.
- Click chuột phải → Assign Macro… → Chọn macro
CountBlankCells. - Khi người dùng click, hộp thoại sẽ hiện số ô trống.
7. Ứng dụng thực tế của việc đếm ô trống
7.1. Kiểm tra độ đầy đủ của dữ liệu khảo sát
Trong một bảng khảo sát, mỗi câu hỏi là một cột. Khi thu thập dữ liệu, bạn muốn biết câu hỏi nào có tỷ lệ trả lời thấp nhất.
=COUNTBLANK(TableSurveyHỏi1)/ROWS(TableSurvey)
Kết quả là tỷ lệ phần trăm trả lời thiếu.
7.2. Xác định ngày chưa nhập dữ liệu trong báo cáo doanh thu hằng ngày
Giả sử cột A là ngày, cột B là doanh thu. Để biết có bao nhiêu ngày chưa nhập doanh thu:
=COUNTIF(B2:B366, "")
Bạn có thể kết hợp với IFERROR để lọc lỗi.
7.3. Đánh giá chất lượng dữ liệu trong hệ thống ERP
Trong một hệ thống ERP, mỗi bản ghi phải có ít nhất 5 trường bắt buộc. Bạn có thể tạo một cột phụ “MissingCount” dùng công thức:
=SUMPRODUCT(--(LEN(A2:E2)=0))
Sau đó lọc các bản ghi có MissingCount>0 để xử lý.
7.4. Tự động gửi email nhắc nhập dữ liệu
Kết hợp VBA với Outlook, bạn có thể viết macro:
Sub NotifyMissingData() Dim ws As Worksheet, rng As Range, cnt As Long Set ws = ThisWorkbook.Sheets("Báo cáo") Set rng = ws.Range("B2:B100") cnt = Application.WorksheetFunction.CountBlank(rng) If cnt > 0 Then Dim outlook As Object, mail As Object Set outlook = CreateObject("Outlook.Application") Set mail = outlook.CreateItem(0) With mail .To = "manager@example.com" .Subject = "Báo cáo: " & cnt & " ô trống trong doanh thu" .Body = "Vui lòng kiểm tra và nhập dữ liệu cho các ô trống." .Send End With End If
End Sub
8. Các lỗi thường gặp và cách khắc phục
| Lỗi / Vấn đề | Nguyên nhân | Giải pháp |
|---|---|---|
COUNTBLANK không đếm ô có công thức trả về "" | COUNTBLANK chỉ nhận ô thực sự trống. | Dùng COUNTIF(range,"") hoặc SUMPRODUCT(--(LEN(range)=0)). |
Đếm sai khi có ô chứa khoảng trắng (" "). | Khoảng trắng không phải là chuỗi rỗng. | Dùng TRIM trong công thức: COUNTIF(range,TRIM("")) hoặc SUMPRODUCT(--(LEN(TRIM(range))=0)). |
Khi dùng COUNTIF trên dải lớn, Excel trả về #VALUE! | Dải quá lớn (> 8,192 cột) hoặc chứa mảng không hỗ trợ. | Giảm kích thước dải, hoặc dùng SUMPRODUCT. |
| PivotTable không hiển thị “(blank)” | Trường dữ liệu được thiết lập làm “Do not show items with no data”. | Click vào dropdown của trường → “Field Settings” → “Layout & Print” → Tick “Show items with no data”. |
| VBA trả về 0 khi có ô trống | Sử dụng Range.Value thay vì Range.Text cho ô hợp nhất. | Kiểm tra cell.MergeArea.Cells(1,1).Value. |
9. Tối ưu hoá hiệu suất khi đếm ô trống trên dữ liệu lớn
Khi dải dữ liệu lên tới hàng chục hoặc hàng trăm nghìn dòng, một số công thức có thể làm chậm Excel. Dưới đây là một số mẹo:
- Sử dụng hàm mảng động (Dynamic Array) chỉ một lần: Thay vì lặp
COUNTIFcho nhiều cột, dùngLETđể lưu dải và tái sử dụng.excel =LET(rng, A1:Z100000, COUNTBLANK(rng)) - Tính toán trong Power Query: Trước khi tải dữ liệu vào Excel, xử lý trong Power Query để giảm kích thước và tính toán trước.
- Sử dụng VBA với
Application.ScreenUpdating = Falseđể tránh cập nhật màn hình khi chạy vòng lặp. - Giới hạn
UsedRange: Đảm bảoUsedRangekhông bao gồm các ô rỗng vô hạn (đôi khi Excel mở rộng vùng sử dụng do định dạng). DùngCtrl+Endđể kiểm tra, hoặc xóa các hàng/ cột không cần thiết. - Tránh sử dụng
Array Formulastrên toàn cột (ví dụ:=SUMPRODUCT(--(LEN(A:A)=0))). Thay vào đó, chỉ định dải thực tế (A2:A10000).
10. Tổng kết
Việc đếm ô trống trong Excel không chỉ là một thao tác đơn giản mà còn là nền tảng để:
- Đánh giá chất lượng dữ liệu.
- Tự động hoá các quy trình kiểm tra.
- Tạo báo cáo chính xác hơn.
- Phát hiện và khắc phục lỗi nhập liệu nhanh chóng.
Trong bài viết, chúng ta đã:
- Hiểu rõ khái niệm ô trống và các loại ô liên quan.
- Sử dụng hàm sẵn có (
COUNTBLANK,COUNTIF) cho các trường hợp cơ bản. - Áp dụng các công thức nâng cao (
SUMPRODUCT,LET,FILTER) để đáp ứng yêu cầu phức tạp. - Tận dụng PivotTable, Power Query và VBA để xử lý dữ liệu lớn và tự động hoá.
- Xem xét các trường hợp đặc biệt như ô hợp nhất, ô lỗi và ô chứa công thức trả về
"". - Thực hiện các biện pháp tối ưu hoá hiệu suất khi làm việc với dữ liệu quy mô lớn.
Bằng cách nắm vững các kỹ thuật trên, bạn sẽ tự tin hơn trong việc quản lý và phân tích dữ liệu, đồng thời giảm thiểu thời gian và công sức cho các công việc kiểm tra dữ liệu thủ công. Hãy thử áp dụng ngay vào dự án hiện tại của bạn và cảm nhận sự khác biệt!
Chúc bạn thành công!

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