Menu

Lỗi #DIV/0! trong Excel: cách sửa lỗi chia cho 0

#DIV/0! xuất hiện khi một công thức chia cho 0 hoặc cho một ô trống, như =B2/C2 khi C2 trống. =IF(C2=0,"",B2/C2) hiển thị ô trống thay vào đó, và AVERAGE của một vùng không có số nào cũng trả về lỗi này.

Mọi bảng tính trên trang này đều trực tiếp: đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

#DIV/0! xuất hiện khi một công thức chia cho 0 hoặc cho một ô trống (ô trống được tính là 0). =B2/C2 trả về #DIV/0! khi C2 bằng 0 hoặc trống. =IF(C2=0,"",B2/C2) kiểm tra số chia trước và để ô trống thay vào đó.

Doanh số mỗi cuộc gọi
D3
ABCDE
1RepSalesCallsPer callPer call (checked)
2Ana1200403030
3Ben9000#DIV/0!
4Cy600#DIV/0!
5Dee750253030
#DIV/0! Công thức chia cho 0 hoặc cho một ô trống.

D3 và D4 hiện #DIV/0!: Ben có 0 cuộc gọi, còn ô của Cy thì trống. Cột E hiện 30 và 30 cho Ana và Dee và không hiện gì cho hai người còn lại. Nhập một số vào C4 thì cả hai cột đều có kết quả.

Lỗi này thường là đúng: phép chia cho 0 không có đáp án, và ở đây nó cho biết dữ liệu chưa có. Ô trống hay số 0 làm trang tính gọn gàng hơn, nhưng hãy chọn cách phản ánh đúng sự thật: AVERAGE tính cả số 0 và bỏ qua ô trống "".

Dùng IF hay IFERROR để sửa #DIV/0!

Cả hai công thức đều loại bỏ lỗi. Chúng khác nhau ở chỗ còn che giấu thêm những gì.

Kiểm tra số chia và bắt mọi lỗi
E5
ABCDE
1RepSalesCallsIF(C=0)IFERROR
2Ana1200403030
3Ben900000
4Cy60000
5Deen/a25#VALUE!0
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Với Ben và Cy, cả hai đều hiện 0. Doanh số của Dee chứa văn bản n/a, một lỗi dữ liệu: phiên bản IF hiện #VALUE! và chỉ cho bạn thấy chỗ sai, còn phiên bản IFERROR hiện 0 như thể Dee chưa bán được gì. Dùng IF(C2=0,...) khi số 0 là vấn đề duy nhất bạn dự tính, và IFERROR khi mọi lỗi đều nên cho ra cùng một giá trị thay thế. Trang IFERROR nói thêm về lựa chọn này.

Phép kiểm tra cũng có thể viết là =IF(C2,B2/C2,0): một số khác 0 được coi là TRUE. Cách này ngắn hơn nhưng khó đọc hơn.

#DIV/0! với AVERAGE và AVERAGEIF

AVERAGE lấy tổng chia cho số lượng. Khi không có số nào để đếm, nó chia cho 0.

Trung bình của một nhân viên
F2
ABCDEF
1RepSalesRepAverage
2Ana1200Dan#DIV/0!
3Ben900#DIV/0!
4Ana800
5Cy600
6Ben700
#DIV/0! Công thức chia cho 0 hoặc cho một ô trống.

Dan không có hàng doanh số nào, nên AVERAGEIF trong F2 không có gì để tính trung bình. F3 tính trung bình cột C đang trống, với cùng kết quả. Đổi E2 thành Ana thì F2 hiện 1000, trung bình của 1200 và 800. Có hai cách xử lý trường hợp rỗng trong Excel:

=IFERROR(AVERAGEIF(A2:A6,E2,B2:B6),0)
=IF(COUNTIF(A2:A6,E2)=0,"no sales",AVERAGEIF(A2:A6,E2,B2:B6))

Cách thứ hai nói rõ vì sao không có kết quả. AVERAGEIFS và công thức đơn giản =SUM(B2:B6)/COUNT(B2:B6) cũng hoạt động như vậy. Xem AVERAGEIF để biết về điều kiện của hàm.

#DIV/0! khi tính phần trăm thay đổi

Phần trăm thay đổi chia cho giá trị cũ. Khi giá trị cũ là 0, không có tỷ lệ phần trăm nào mô tả được sự thay đổi.

Thay đổi so với năm trước
D4
ABCDE
1Product20252026ChangeChange (labelled)
2Desk20024020%20%
3Chair150120-20%-20%
4Lamp080#DIV/0!new
5Shelf90900%0%
#DIV/0! Công thức chia cho 0 hoặc cho một ô trống.

Bàn tăng 20% và ghế giảm 20%. Đèn không bán được chiếc nào trong năm 2025, nên D4 là #DIV/0! còn E4 ghi new. Văn bản trong một cột phần trăm vẫn là văn bản, nên SUM và AVERAGE bỏ qua nó. Trang phần trăm thay đổi trình bày chính công thức này.

Sửa một giá trị trung bình đang hiện #DIV/0!

Trung bình khi không có hàng nào khớp
F2
ABCDEF
1RepSalesRepAverage
2Ana1200Dan
3Ben900
4Ana800
5Cy600
6Ben700
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đến lượt bạn: E2 chứa một nhân viên không có doanh số, nên =AVERAGEIF(A2:A6,E2,B2:B6) trả về #DIV/0!. Viết một công thức trong F2 trả về doanh số trung bình của nhân viên trong E2, hoặc 0 khi nhân viên đó không có doanh số.

Nút Kiểm tra còn chạy công thức của bạn với Ana trong E2, nên một công thức trả về 0 mà không tính trung bình sẽ không đạt. =IF(COUNTIF(A2:A6,E2)=0,0,AVERAGEIF(A2:A6,E2,B2:B6)) cũng đạt.

Câu hỏi thường gặp

#DIV/0! trong Excel nghĩa là gì?

Công thức đã chia một số cho 0, hoặc cho một ô trống, mà Excel coi là 0. =B2/C2 trả về #DIV/0! khi C2 bằng 0 hoặc trống. AVERAGE, AVERAGEIF và MOD cũng trả về lỗi này khi cuối cùng chúng phải chia cho 0.

Làm sao để Excel hiện 0 thay vì #DIV/0!?

Kiểm tra số chia trước: =IF(C2=0,0,B2/C2). Để có ô trống thay vì 0, dùng =IF(C2=0,"",B2/C2). =IFERROR(B2/C2,0) ngắn hơn nhưng cũng biến mọi lỗi khác trong công thức thành 0.

Vì sao ô tổng hiện #DIV/0!?

Một trong các ô được cộng chứa #DIV/0!, và SUM truyền lỗi ra ngoài. Hãy sửa phép chia trong ô đó bằng =IF(C2=0,"",B2/C2), hoặc cộng bỏ qua lỗi bằng =AGGREGATE(9,6,D2:D10), công thức này cộng D2:D10 và bỏ qua các giá trị lỗi.

Ô trống có gây ra #DIV/0! trong Excel không?

Có. Ô trống được tính là 0 trong phép tính, nên =B2/C2 trả về #DIV/0! khi C2 trống. =IF(C2=0,"",B2/C2) bắt được cả số 0 lẫn ô trống, vì trong phép so sánh, ô trống bằng 0.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu