Giá trị thiếu là chỗ lẽ ra phải có thông tin nhưng không có, và một ô trống trong bảng có thể mang ít nhất bốn nghĩa khác nhau: chưa biết, không áp dụng, bằng không, hoặc chưa xảy ra. Máy tính không phân biệt được bốn nghĩa đó; nó chỉ thấy ô trống và xử lý theo quy tắc riêng của từng hàm. Nếu người lập bảng cũng không phân biệt, các con số tính ra sẽ sai theo những cách rất khó nhận ra.
Trong cơ sở dữ liệu, giá trị thiếu có tên riêng là NULL; trong bảng tính, nó thường là ô trống, hoặc tệ hơn là những ký hiệu tự chế như dấu gạch, chữ "x", số 0 hay số 99. Bài này giải thích từng nghĩa của ô trống, các hàm bảng tính đối xử với ô trống ra sao, cách ghi giá trị thiếu nhất quán và cách dặn AI để nó không tự điền vào chỗ trống bằng phỏng đoán.
Bốn nghĩa của một ô trống
Ví dụ giả định lấy từ bảng hồ sơ khách hàng và bảng doanh số của một cửa hàng điện máy nhỏ ở Thanh Hoá. Cùng là ô trống nhưng cách xử lý đúng khác hẳn nhau.
| Nghĩa | Ví dụ | Nếu điền nhầm thành 0 | Cách ghi nên dùng |
|---|---|---|---|
| Chưa biết | Khách không cho ngày sinh; phiếu khảo sát bỏ trống câu thu nhập | Tuổi trung bình, thu nhập trung bình bị kéo xuống sai | Để trống, hoặc thêm cột trạng thái "chưa thu thập" |
| Không áp dụng | Ô "tên công ty" của khách lẻ; ô "ngày bảo hành hết hạn" của hàng không bảo hành | Đếm "khách có công ty" ra sai, lọc theo ngày ra kết quả lạ | Ghi rõ ở cột loại khách hoặc cột trạng thái, không dùng ô trống để ngầm hiểu |
| Bằng không thật | Chi nhánh không bán được chiếc nào trong ngày | Không sai, nhưng nếu để trống thì trung bình lại bị đẩy lên | Ghi số 0 |
| Chưa xảy ra | Đơn hàng chưa giao nên chưa có ngày giao | Thời gian giao trung bình sai | Để trống kèm cột trạng thái đơn |
Dòng thứ ba đáng chú ý nhất: không phải lúc nào ô trống cũng đúng hơn số 0. Doanh số bằng không là một con số thật và phải được ghi. Để trống ở đây khiến hàm trung bình bỏ qua ngày đó, và chi nhánh trông như bán tốt hơn thực tế.
Bảng tính đối xử với ô trống ra sao
SUM coi ô trống như không có. Với phép cộng, trống hay 0 cho cùng kết quả, nên lỗi không lộ ra. Đây là lý do nhiều người tưởng ô trống vô hại.
AVERAGE bỏ qua ô trống nhưng tính số 0. Cột có năm ô 10, 20, trống, 0, 30: AVERAGE chia tổng 60 cho 4 ô có giá trị, ra 15. Nếu ô trống thật ra là 0, trung bình đúng là 12; nếu số 0 thật ra là chưa biết, trung bình đúng là 20. Ba con số khác nhau chỉ vì cách ghi.
COUNT, COUNTA, COUNTBLANK đếm khác nhau. COUNT chỉ đếm ô số, COUNTA đếm mọi ô có nội dung, COUNTBLANK đếm ô trống. Ô chứa công thức trả về chuỗi rỗng là trường hợp đặc biệt: trông trống, COUNTBLANK vẫn đếm là trống, nhưng COUNTA cũng đếm là có nội dung. Khi số đếm không khớp, hãy nghi tới loại ô này.
Hàm dò tìm trả 0 khi ô đích trống. Dò giá của một mặt hàng mà ô giá đang trống, VLOOKUP và XLOOKUP trả về 0 chứ không báo lỗi. Đơn hàng được tính tiền bằng không mà không ai hay. Đây là một trong những lỗi tốn tiền nhất.
Sắp xếp đẩy ô trống xuống cuối. Cả khi sắp tăng lẫn giảm, ô trống thường bị dồn xuống dưới cùng, dễ bị bỏ quên khi bạn chỉ nhìn phần đầu danh sách.
Những ký hiệu tự chế nên bỏ
Để phân biệt các nghĩa của ô trống, nhiều người tự đặt ký hiệu. Ý tốt, nhưng phần lớn ký hiệu dưới đây gây hại nhiều hơn lợi.
- Dấu gạch ngang hoặc chữ "x" trong cột số. Biến cả cột thành lẫn số lẫn chữ; các hàm số bỏ qua, các phép so sánh cho kết quả khó đoán.
- Số 0 thay cho "chưa biết". Như đã thấy, làm sai mọi phép trung bình, tỷ lệ, nhỏ nhất.
- Số giả như 99, 999, -1. Kiểu ghi cũ của một số phần mềm khảo sát. Ai không biết quy ước sẽ cộng chúng vào như số thật; một khách "99 tuổi" kéo tuổi trung bình lên đáng kể.
- Ngày giả như 01/01/1900. Hay xuất hiện khi dữ liệu xuất từ hệ thống cũ. Tính tuổi, tính thời hạn ra kết quả vô lý.
- Chữ "N/A", "chưa có", "không rõ" xen lẫn. Ba người ba cách viết, không đếm gộp được.
- Màu ô. Tô vàng ô "chưa xác minh" không phải dữ liệu, mất khi xuất CSV hoặc khi đưa vào AI.
Nguyên tắc thay thế: trong cột dữ liệu, chỉ để giá trị thật hoặc ô trống; còn lý do vì sao trống thì ghi ở một cột trạng thái riêng với danh sách giá trị cố định, chọn từ danh sách thả xuống.
Đo mức thiếu của một bảng trong mười phút
Trước khi dùng một bảng để tính hay nhờ AI xử lý, nên biết cột nào thiếu nhiều. Trình tự dưới đây áp dụng cho bảng vài trăm đến vài chục nghìn dòng.
- Thêm một dòng đo phía trên hoặc ở trang riêng. Mỗi cột một ô công thức COUNTBLANK cho vùng dữ liệu của cột đó.
- Đổi ra tỷ lệ. Chia số ô trống cho tổng số dòng. Cột thiếu vài phần trăm và cột thiếu một nửa cần cách nhìn rất khác nhau.
- Dò ký hiệu tự chế. Dùng bộ lọc từng cột, xem danh sách giá trị khác nhau: dấu gạch, số 0, số 99, ngày 1900 sẽ hiện ngay ở đầu hoặc cuối danh sách.
- Hỏi vì sao thiếu. Với mỗi cột thiếu nhiều, tìm hiểu nguyên nhân: biểu mẫu không có ô đó, nhân viên bỏ qua, hệ thống cũ không xuất, hay đúng là không áp dụng.
- Ghi kết quả vào phần mô tả bảng. Ví dụ: "cột Ngày sinh thiếu 38%, do khách không bắt buộc khai; không dùng để tính tuổi trung bình toàn bộ khách."
Phần sửa thật sự, như điền lại từ nguồn khác hay quy đổi ký hiệu về ô trống, thuộc danh mục làm sạch dữ liệu. Ở bước này mục tiêu chỉ là biết rõ mình đang có gì, để không kết luận vượt quá dữ liệu.
Dặn AI về giá trị thiếu: đừng để nó tự đoán
Mô hình ngôn ngữ có xu hướng điền vào chỗ trống. Khi bạn nhờ trích thông tin từ ba mươi email đặt hàng vào bảng, gặp email không ghi số lượng, AI có thể điền "1" vì thấy hợp lý. Gặp phiếu không ghi ngày, nó có thể lấy ngày của phiếu bên cạnh. Kết quả trông đầy đủ và gọn gàng hơn thực tế, và đó chính là vấn đề.
Câu lệnh nên nói rõ: "Nếu thông tin không có trong nguồn, để trống ô đó và ghi lý do ở cột Ghi chú, tuyệt đối không suy đoán. Cuối bảng, liệt kê các dòng có ô trống." Sau khi nhận kết quả, đếm số ô trống AI trả về; nếu bằng không trong khi nguồn rõ ràng có chỗ thiếu, hãy kiểm kỹ hơn.
Khi gửi bảng có sẵn ô trống cho AI để nhờ gợi công thức hay phân tích cấu trúc, cũng nên mô tả nghĩa của ô trống ở từng cột. Câu như "cột Ngày giao trống nghĩa là đơn chưa giao, không phải thiếu dữ liệu" giúp AI không coi đó là lỗi cần sửa. Phần đọc ý nghĩa số liệu khi có nhiều giá trị thiếu, như có nên loại dòng hay ước lượng, là chuyện của phân tích, có trên trang AI Phân Tích.
Ô trống sinh ra khi gộp nhiều nguồn
Có một loại giá trị thiếu không do ai quên nhập, mà sinh ra trong lúc ghép dữ liệu. Ví dụ giả định: bạn gộp danh sách khách của cửa hàng ở Huế với danh sách khách mua online. Bảng cửa hàng có cột Ngày sinh để tặng quà, bảng online không có. Sau khi gộp, toàn bộ khách online trống cột Ngày sinh. Nhìn tỷ lệ thiếu của cả bảng, bạn tưởng khách không chịu khai, trong khi thật ra kênh online chưa bao giờ hỏi.
Tương tự khi nối bảng: dò tên hàng từ bảng danh mục sang bảng đơn, những mã hàng mới chưa kịp thêm vào danh mục sẽ trả về trống hoặc lỗi. Ô trống ở đây không phải "chưa biết tên hàng" mà là "danh mục chưa cập nhật", và cách sửa nằm ở bảng danh mục chứ không ở bảng đơn.
Vì vậy, mỗi khi gộp hay nối, nên thêm một cột Nguồn ghi bản ghi đến từ đâu, và đo tỷ lệ thiếu tách theo từng nguồn. Một cột thiếu 40% nhìn chung có thể là thiếu 0% ở nguồn này và 100% ở nguồn kia, và hai tình huống đó cần hai cách xử lý khác nhau.
Phòng thiếu từ khâu nhập: rẻ hơn mọi cách sửa
Phần lớn giá trị thiếu trong bảng văn phòng không phải do khách hàng giấu thông tin, mà do khâu nhập không bắt buộc. Một ô trên biểu mẫu không có dấu bắt buộc, nhân viên bận thì bỏ qua. Một cột trong bảng tính không có quy tắc, người nhập quên. Sau sáu tháng, cột đó thiếu một nửa và không ai điền lại được.
Ba biện pháp đơn giản giảm thiếu đáng kể. Một, phân loại trường bắt buộc và tự chọn ngay khi thiết kế biểu mẫu; chỉ bắt buộc những gì thật sự dùng, vì bắt buộc quá nhiều thì người nhập sẽ điền bừa cho qua. Hai, với trường hay không áp dụng, cho sẵn lựa chọn "không áp dụng" thay vì để người nhập bỏ trống. Ba, kiểm định kỳ tỷ lệ thiếu của vài cột quan trọng, báo cho người nhập khi tỷ lệ tăng.
Biện pháp thứ ba thường bị bỏ qua nhưng hiệu quả nhất: khi người nhập biết có người xem, tỷ lệ bỏ trống giảm rõ rệt mà không cần thêm quy định nào.
Câu hỏi thường gặp
NULL trong cơ sở dữ liệu có giống ô trống trong Excel không?
Gần giống về ý nghĩa: cả hai đều là không có giá trị. Nhưng NULL được xử lý chặt hơn, ví dụ so sánh NULL với bất kỳ giá trị nào đều không cho kết quả đúng, phải dùng phép kiểm riêng. Khi chuyển bảng tính sang cơ sở dữ liệu, ô trống thường thành NULL, còn chuỗi rỗng thì có thể không.
Có nên xoá hẳn những dòng có ô trống không?
Không nên xoá hàng loạt. Một dòng thiếu ngày sinh vẫn có thông tin đơn hàng, doanh số hoàn toàn hợp lệ. Xoá đi làm mất dữ liệu và có thể làm lệch kết quả nếu những dòng thiếu có điểm chung. Chỉ loại dòng khi tính chỉ số cụ thể cần cột đó, và ghi rõ đã loại bao nhiêu.
Ô có dấu cách có được tính là ô trống không?
Không. Ô chứa một hay vài dấu cách trông trống nhưng là ô có nội dung chữ, COUNTBLANK không đếm, ISBLANK trả về FALSE. Đây là nguồn gây lệch số đếm khá phổ biến khi dữ liệu dán từ hệ thống khác. Hàm TRIM kết hợp với kiểm độ dài giúp phát hiện.
AI có điền giá trị thiếu một cách hợp lý được không?
AI có thể gợi ý giá trị dựa trên dữ liệu khác, ví dụ đoán tỉnh từ tên phường. Với thông tin suy ra được chắc chắn, đó là trợ giúp tốt nếu bạn kiểm lại. Với thông tin không suy ra được như số lượng, ngày, số tiền, không nên để AI điền.
Bao nhiêu phần trăm ô trống thì một cột không còn dùng được?
Không có ngưỡng chung. Cột thiếu ít nhưng thiếu toàn ở một chi nhánh có thể nguy hiểm hơn cột thiếu nhiều nhưng rải đều. Điều quan trọng là biết vì sao thiếu và thiếu ở đâu, rồi nói rõ giới hạn đó khi dùng số liệu từ cột này.
Có nên điền chữ "không" vào ô trống của cột trạng thái không?
Nếu cột trạng thái có danh sách giá trị cố định và "không" là một giá trị hợp lệ trong danh sách đó, thì nên điền để phân biệt với chưa nhập. Nếu không, thêm một giá trị rõ nghĩa hơn như "chưa xác minh" vào danh sách chọn.