Menu

Excel #DIV/0! 错误:除数为零的解决方法

公式除以零或空单元格时会出现 #DIV/0!,例如 C2 为空时的 =B2/C2。=IF(C2=0,"",B2/C2) 会改为显示空白单元格;对没有数字的区域求 AVERAGE 也会返回这个错误。

本页的每张表格都是实时的:修改数字或公式,就会重新计算。

公式除以零或除以空单元格时(空单元格算作 0),就会出现 #DIV/0!。只要 C2 是 0 或空白,=B2/C2 就返回 #DIV/0!。=IF(C2=0,"",B2/C2) 会先检查除数,改为让单元格保持空白。

每通电话的销售额
D3
ABCDE
1RepSalesCallsPer callPer call (checked)
2Ana1200403030
3Ben9000#DIV/0!
4Cy600#DIV/0!
5Dee750253030
#DIV/0! 公式除以了零或空单元格。

D3 和 D4 显示 #DIV/0!:Ben 的电话数是 0,Cy 的单元格是空的。E 列中 Ana 和 Dee 都显示 30,另外两人什么都不显示。在 C4 中输入一个数字,两列都会算出结果。

这个错误往往是对的:除以零本来就没有答案,在这里它表示数据还没填进来。显示空白或 0 能让表格更整洁,但要想清楚哪一种更真实:AVERAGE 会把 0 算进去,却会跳过空白 ""。

用 IF 还是 IFERROR 解决 #DIV/0!

两个公式都能消除这个错误,区别在于它们还会掩盖什么。

检查除数与捕获所有错误
E5
ABCDE
1RepSalesCallsIF(C=0)IFERROR
2Ana1200403030
3Ben900000
4Cy60000
5Deen/a25#VALUE!0
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

Ben 和 Cy 这两行都显示 0。Dee 的销售额是文本 n/a,这是数据错误:IF 版本显示 #VALUE!,把问题指给你看;IFERROR 版本则显示 0,好像 Dee 什么都没卖出。如果你预计唯一的问题就是除数为零,用 IF(C2=0,...);如果任何错误都应该得到同一个备用值,用 IFERROR。IFERROR 一文对这个选择有更多说明。

检查也可以写成 =IF(C2,B2/C2,0):非 0 的数字都算作 TRUE。这样更短,但更难读懂。

AVERAGE 和 AVERAGEIF 中的 #DIV/0!

AVERAGE 是用总和除以个数。没有数字可数时,就成了除以零。

某位销售员的平均值
F2
ABCDEF
1RepSalesRepAverage
2Ana1200Dan#DIV/0!
3Ben900#DIV/0!
4Ana800
5Cy600
6Ben700
#DIV/0! 公式除以了零或空单元格。

Dan 没有任何销售记录,所以 F2 中的 AVERAGEIF 没有可以求平均的值。F3 对空的 C 列求平均,结果相同。把 E2 改成 Ana,F2 会显示 1000,即 1200 和 800 的平均值。在 Excel 中处理这种空的情况有两种方法:

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

第二种会说明结果为什么缺失。AVERAGEIFS 以及普通的 =SUM(B2:B6)/COUNT(B2:B6) 也是同样的表现。条件的写法见 AVERAGEIF。

百分比变化中的 #DIV/0!

百分比变化要除以旧值。旧值为 0 时,没有任何百分比能描述这个变化。

与去年相比的变化
D4
ABCDE
1Product20252026ChangeChange (labelled)
2Desk20024020%20%
3Chair150120-20%-20%
4Lamp080#DIV/0!new
5Shelf90900%0%
#DIV/0! 公式除以了零或空单元格。

书桌增长了 20%,椅子下降了 20%。台灯在 2025 年一件都没卖出,所以 D4 是 #DIV/0!,E4 显示 new。百分比列中的文本仍然是文本,SUM 和 AVERAGE 会跳过它。公式本身的讲解见百分比变化。

修正显示 #DIV/0! 的平均值

没有匹配行时的平均值
F2
ABCDEF
1RepSalesRepAverage
2Ana1200Dan
3Ben900
4Ana800
5Cy600
6Ben700
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: E2 中的销售员没有任何销售记录,所以 =AVERAGEIF(A2:A6,E2,B2:B6) 返回 #DIV/0!。在 F2 中写一个公式,返回 E2 中销售员的平均销售额,没有销售记录时返回 0。

“检查”还会把 E2 换成 Ana 再运行你的公式,所以不求平均、直接返回 0 的公式无法通过。=IF(COUNTIF(A2:A6,E2)=0,0,AVERAGEIF(A2:A6,E2,B2:B6)) 也能通过。

常见问题

Excel 中的 #DIV/0! 是什么意思?

公式用一个数除以了零,或者除以了空单元格,而 Excel 把空单元格当作零。只要 C2 是 0 或空白,=B2/C2 就返回 #DIV/0!。AVERAGE、AVERAGEIF 和 MOD 最终除以零时也会返回它。

怎样让 Excel 显示 0 而不是 #DIV/0!?

先检查除数:=IF(C2=0,0,B2/C2)。如果想显示空白而不是 0,用 =IF(C2=0,"",B2/C2)。=IFERROR(B2/C2,0) 更短,但也会把公式中其他所有错误都变成 0。

为什么我的合计显示 #DIV/0!?

它加总的某个单元格里有 #DIV/0!,而 SUM 会把错误传递下去。用 =IF(C2=0,"",B2/C2) 修正那个单元格的除法,或者用 =AGGREGATE(9,6,D2:D10) 绕开错误求和,它会对 D2:D10 求和并跳过错误值。

空单元格会导致 Excel 出现 #DIV/0! 吗?

会。空单元格在计算中算作 0,所以 C2 为空时 =B2/C2 返回 #DIV/0!。=IF(C2=0,"",B2/C2) 能同时处理 0 和空白,因为在比较中空单元格等于 0。

Coddy 编程语言插图

和 Coddy 一起学编程

开始