ARTICLE · 1005085
Excel#NUM! 报错是什么意思? 四种排查及解决办法
蹦出一个 #NUM!,整张表查半天?
#NUM! 到底在说什么
四种成因一次说清
表格报错不求人 · 系列 01 · 参数/求解/上限/日期
土拉 · Excel 效率指南
📦 3 Parts + Conclusion
👉 滑动
PART 01
先认识 #NUM!
它和其他错误值
PART 02
四种常见成因
逐个拆开看
PART 03
三步定位收尾
从查到修
PART ///
写在最后
报错不求人
EXCEL 效率指南
看懂错误值,比多背几个公式有用
公式检查了三遍,括号一个不差,回车之后还是蹦出一个 #NUM!。盯着屏幕,不知道从哪一格开始查。
这是「表格报错不求人」系列的第 1 篇。我们不背函数,只做一件事:把每个错误值到底在说什么讲清楚。今天先拆最常见也最容易被误判的 #NUM!。
01
PART
先搞懂 #NUM! 在说什么
READ THE ERROR · 先读懂再动手
#NUM! 里那个 NUM 就是 number。它想说的是:公式里关于「数字」的环节出问题了——不是引用的单元格坏了,也不是函数名写错了,而是数字本身不在 Excel 能接受的范围内。
先把几个长得像的错误值分清楚,能省掉一大半排查时间:
| #NUM! | ||
一句话记住:看到 #NUM! 先别改公式结构,去看数字本身——参数是不是超范围、结果是不是太大、日期是不是算出了负数。往下四种成因,覆盖了日常九成以上的情况。
02
PART
四种最常见的成因,逐个拆
FOUR CAUSES · 对号入座
下面四种场景,基本覆盖了日常办公里能遇到的 #NUM!。看到报错时先对号入座,比从头检查公式快得多。
参数超出了函数允许的范围
开方、对数这类函数对参数有硬性要求。负数、零一旦填进去,Excel 不会替你猜,直接回一个 #NUM!。
=SQRT(-4) 负数没有实数平方根 → #NUM!
=LN(-1) 对数要求参数大于 0 → #NUM!
=COMBIN(5,10) 取的数比总数还多 → #NUM!
✦ 怎么解决:先回头看数据源里有没有不该出现的负数或零。确实要处理负数,可以改用 =SQRT(ABS(A2)) 取绝对值再开方,或者加一层判断 =IF(A2<0,"跳过",SQRT(A2))。
迭代函数试到最后也没找到答案
IRR、RATE 这类函数不是“算”出来的,是一遍遍试出来的。如果现金流全是收入、或者全是支出,数学上根本不存在一个能让结果归零的利率,它试到最后只能认输,回一个 #NUM!。
=IRR(B2:B10) 现金流全同号 → #NUM!
=IRR(B2:B10,0.1) 给个初值,成功率大增
=RATE(60,2000,100000) 参数不自洽 → #NUM!
✦ 怎么解决:给函数一个合理的猜测初值——等于告诉 Excel「往这个方向找」。同时确认现金流里确实有正有负,没有一正一负,公式再换写法也没用。
结果太大,超了 Excel 的数值天花板
Excel 单个数值最大只能到 10 的 308 次方左右。一旦计算结果冲破这条线,它不会给你一个“无穷大”,而是直接判为 #NUM!。
=POWER(10,400) 10 的 400 次方 → #NUM!
=FACT(1000) 1000 的阶乘 → #NUM!
=A2*B2*C2 连乘撞上天花板 → #NUM!
✦ 怎么解决:八成是单位搞重了——比如数值本身已经是「万元」,公式里又乘了一次 10000。回头核对一遍单位,比查函数快。真要处理大数,可以用对数先压缩再算。
日期算出了范围外的结果
Excel 的日期本质是一串序列号,只覆盖 1900 年 1 月 1 日到 9999 年 12 月 31 日。减法把结果算成负数,或者加法冲过了 9999 年,日期类函数就只能回一个 #NUM!。
=A2-B2 结果是负日期 → #NUM!
=EDATE(A2,-30000) 退到 1900 年之前 → #NUM!
=YEAR(-1) 传入负数序列号 → #NUM!
✦ 怎么解决:先用 =ISNUMBER(A2) 确认单元格里是真日期、不是文本;再检查相减的两个单元格顺序有没有弄反。只是要比早晚,写成 =IF(A2>B2,"逾期","未到期") 就行,根本不用做加法减法。
03
PART
三步定位,把问题揪出来
LOCATE & FIX · 从查到修
成因认完了,还得落到具体那一格。下面三步是通用的排查动作,任何错误值都用得上。
点中报错单元格,看编辑栏
选中那一格,看编辑栏里的完整公式,先弄明白它到底在算什么;再顺着公式去看它引用的区域——数据源里有没有负数和零。
✦ 一个好用的手感:在编辑栏里用鼠标选中公式的一小段(比如 SQRT(B2) 这一小段),按 F9,Excel 会就地算出这一段的结果。看完按 Esc 退出——千万别按回车。
把嵌套的那层拆出来单算
公式里套了好几层函数时,把最里面那一层单独拎出来,放到一个空白单元格里算一遍。哪一层先报 #NUM!,问题就在哪一层,不用再从头猜。
修好根因,再考虑兜底
原因解决了,如果这张表还要发给同事看,可以再套一层 IFERROR,让报错位置显示得更友好:
=IFERROR(原公式,"待核对")
!踩坑提示 🕳
IFERROR 是兜底展示,不是修复手段。原因没查清就套上去,报错是被藏起来了,数字照样是错的——先定位,再决定要不要包这一层。
看懂 #NUM!,一秒知道该查哪里
参数 · 求解 · 上限 · 日期,四个方向挨个对
///
LAST
写在最后
SUMMARY · 报错不求人 01
错误值不是 Excel 在刁难你,它是在提醒你「这一步的数字不对」。#NUM! 记住四个关键词就够了:参数、求解、上限、日期——挨个对一遍,基本都能自己修好,不用再截图发群里等人回答。
这是「表格报错不求人」的第 1 篇,后面还会继续拆 #VALUE!、#REF!、#N/A、#DIV/0!,想看哪个可以先留言告诉我。
是不是很简单?
我是土拉,专注工作提效的公众号。精选Windows软件工具,Excel函数公式、Word排版技巧教程,每篇一个能立刻上手的小技巧。
既然看到这里了,如果觉得有用,随手点个赞、在看、转发三连吧。
THANKS FOR READING