#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 đó.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Rep | Sales | Calls | Per call | Per call (checked) |
| 2 | Ana | 1200 | 40 | 30 | 30 |
| 3 | Ben | 900 | 0 | #DIV/0! | |
| 4 | Cy | 600 | #DIV/0! | ||
| 5 | Dee | 750 | 25 | 30 | 30 |
#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ì.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Rep | Sales | Calls | IF(C=0) | IFERROR |
| 2 | Ana | 1200 | 40 | 30 | 30 |
| 3 | Ben | 900 | 0 | 0 | 0 |
| 4 | Cy | 600 | 0 | 0 | |
| 5 | Dee | n/a | 25 | #VALUE! | 0 |
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.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Rep | Sales | Rep | Average | ||
| 2 | Ana | 1200 | Dan | #DIV/0! | ||
| 3 | Ben | 900 | #DIV/0! | |||
| 4 | Ana | 800 | ||||
| 5 | Cy | 600 | ||||
| 6 | Ben | 700 |
#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.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Product | 2025 | 2026 | Change | Change (labelled) |
| 2 | Desk | 200 | 240 | 20% | 20% |
| 3 | Chair | 150 | 120 | -20% | -20% |
| 4 | Lamp | 0 | 80 | #DIV/0! | new |
| 5 | Shelf | 90 | 90 | 0% | 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!
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Rep | Sales | Rep | Average | ||
| 2 | Ana | 1200 | Dan | |||
| 3 | Ben | 900 | ||||
| 4 | Ana | 800 | ||||
| 5 | Cy | 600 | ||||
| 6 | Ben | 700 |
Đế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.