#VALUE! 表示公式得到了类型不对的值,几乎都是需要数字的地方出现了文本。只要有一个单元格是 n/a,=B2+C2+D2 就会返回 #VALUE!,而 =SUM(B2:D2) 会跳过文本,把数字相加。
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Rep | Jan | Feb | Mar | Total with + | Total with SUM |
| 2 | Ana | 120 | 95 | 110 | 325 | 325 |
| 3 | Ben | 80 | n/a | 105 | #VALUE! | 185 |
| 4 | Cy | 140 | 130 | 125 | 395 | 395 |
| 5 | Dee | 90 | 100 | 85 | 275 | 275 |
#VALUE! 某个参数类型不对,比如该填数字的地方填了文本。E3 显示 #VALUE!,因为 C3 中是文本 n/a。F3 显示 185:SUM 把 80 和 105 相加,忽略了文本。在 C3 中输入一个数字,两个合计就一致了。单击 E3,可以在表格下方看到错误说明。
+、-、*、/ 和 ^ 运算符会尝试把每个操作数都转换成数字。对于看起来像数字的文本("5")或 Excel 能识别的日期,转换会成功,其他内容则会失败。而 SUM、AVERAGE、MIN、MAX 和 PRODUCT 这些函数会跳过区域中的文本。
看起来是空的单元格里有一个空格
这是最难发现的 #VALUE!:单元格看起来是空的,但有人在里面输入了一个空格,或者从其他系统导入时带了一个空格。真正的空单元格在算术运算中算作 0,而空格是文本。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Item | Price | Discount | Net price | Characters in C |
| 2 | Desk | 240 | 20 | 220 | 2 |
| 3 | Chair | 85 | #VALUE! | 1 | |
| 4 | Lamp | 40 | 40 | 0 |
#VALUE! 某个参数类型不对,比如该填数字的地方填了文本。C3 和 C4 看起来都是空的,但 D3 显示 #VALUE!,D4 显示 40。LEN 列暴露了问题:C3 中有一个字符,是空格。单击 C3,把它删除,D3 就会显示 85。
要在 Excel 中清理整列,选中这一列,按 Ctrl+H(Mac 上也是 Control+H),在 查找内容 中输入一个空格,替换为 留空,然后单击 全部替换。这样也会删除文本内部的空格,所以只对数字列这样做。文本请用 TRIM 处理。
以文本存储的日期导致 #VALUE!
以文本形式输入的日期,只要符合你的区域日期格式,Excel 就能识别,所以 "2026-03-15"+30 在任何地方都能用。但对于设置为美国英语的 Excel,15.03.2026 这样的日期并不是日期,而是文本,给它加上天数就会得到 #VALUE!。
| A | B | C | |
|---|---|---|---|
| 1 | Delivered | Due (+30 days) | Fixed |
| 2 | 2026-03-15 | 2026-04-14 | |
| 3 | 15.03.2026 | #VALUE! | 2026-04-14 |
#VALUE! 某个参数类型不对,比如该填数字的地方填了文本。B2 显示 2026-04-14:ISO 格式的文本被识别成了日期。B3 显示 #VALUE!。C3 用 RIGHT、MID 和 LEFT 从文本中取出年、月、日,用 DATE 构造一个真正的日期,再加上 30 天:同样得到 2026-04-14。
处理整列时,数据 > 分列 更快:单击两次 下一步,在第 3 步中选择 日期 和 DMY,然后单击 完成。文本日期通常来自 CSV 文件,或者从网页复制粘贴而来。更多构造日期的方法,请看 DATE 函数一文。
函数得到了无法使用的参数
当函数收到的参数类型正确但取值不可能,或者参数类型不对时,也会出现 #VALUE!。
| A | B | C | |
|---|---|---|---|
| 1 | Code | Result | What is wrong |
| 2 | AB-1042 | #VALUE! | negative length |
| 3 | AB-1042 | #VALUE! | start position 0 |
| 4 | AB-1042 | #VALUE! | column number 0 |
| 5 | 5 | #VALUE! | text typed as an argument |
#VALUE! 某个参数类型不对,比如该填数字的地方填了文本。每个公式都违反了一条规则:LEFT 不能取负数个字符,MID 从 1 开始计数,VLOOKUP 的列号从 1 开始,AVERAGE 会跳过区域中的文本,但不会跳过直接写在公式里的文本。把 B2 中的 -1 改成 2,它就会返回 AB。
还有两个原因,都和 Excel 版本或其他文件有关:
- 旧版 Excel 中的数组公式。 在 Excel 2019 及更早版本中,作用于整个区域的公式,例如
=SUM(IF(A2:A10="North",B2:B10)),必须按 Ctrl+Shift+Enter(Mac 上按 Cmd+Shift+Enter)确认。只按 Enter 可能会返回#VALUE!。Excel 2021 和 Microsoft 365 不需要这样做。 - SUMIF 或 COUNTIF 引用了已关闭的工作簿。 这些函数只能在其他工作簿打开时读取它们。打开源文件,或者改用 SUMPRODUCT,它在文件关闭时也能工作。
找到导致 #VALUE! 的单元格
一个引用了多个单元格的长公式,可能因为其中任何一个而出错。在 Excel 中:
- 选中公式所在的单元格,选择 公式 > 公式求值。反复单击 求值:Excel 会一步一步地计算公式,并显示
#VALUE!最先出现的位置。 - 或者选择 公式 > 错误检查 > 追踪错误,箭头会指向相关的单元格。
- 用
=ISTEXT(C3)或=LEN(C3)检查可疑的单元格。在单元格中靠左对齐的数字通常是文本;转换方法请看 文本转数字。
修正公式,而不是隐藏错误
=IFERROR(B2+C2+D2,0) 会把 #VALUE! 变成 0,但对 Ben 来说这个 0 是错的:在有数据的月份里,他卖出了 185。应该写一个会跳过文本的合计公式。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Rep | Jan | Feb | Mar | Total |
| 2 | Ana | 120 | 95 | 110 | |
| 3 | Ben | 80 | n/a | 105 | 185 |
| 4 | Cy | 140 | 130 | 125 | 395 |
轮到你了: C3 中的 n/a 会让 + 相加出错。在 E2 中写一个公式,把 Ana 三个月的数据相加,并且在其中某个月是文本时也能正常计算。
“检查”还会在表格的副本上测试你的公式,这些副本中 n/a 位于 Ana 这一行,所以用 + 的公式在那里会出错。当一个文本单元格在非求和的计算中应该算作 0 时,可以把它包起来:=N(C3) 对文本返回 0,对数字返回数字本身;=IFERROR(C3*1,0) 还能把看起来像数字的文本(例如 '5)变成 5。
常见问题
Excel 中 #VALUE! 是什么意思?
公式收到了类型不对的值:通常是本该是数字的地方出现了文本,例如 C2 中是 n/a 或一个空格时的 =B2+C2。函数得到一个无法使用的参数时也会出现,例如 =LEFT(A2,-1)。
为什么用加号相加会出现 #VALUE!,而 SUM 却正常?
+ 运算符会尝试把每个操作数都转换成数字,遇到文本就会失败,所以只要有一个单元格是文本,=B2+C2+D2 就返回 #VALUE!。=SUM(B2:D2) 会跳过区域中的文本,把其中的数字相加。
Excel 中日期出现 #VALUE! 怎么解决?
这个日期是文本,而 Excel 按你的区域设置无法把它识别为日期,例如在设置为美国日期格式的 Excel 中输入 15.03.2026。用 =DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2)) 重新构造日期,或者用 数据 > 分列 转换整列,并在第 3 步中选择 DMY 日期格式。
怎么找到导致 #VALUE! 的单元格?
选中公式,使用 公式 > 公式求值 逐步计算;或者选择 公式 > 错误检查 > 追踪错误,画出指向相关单元格的箭头。一个看起来是空的单元格,如果 =LEN(C2) 返回 1,说明里面有一个空格。
Excel 中怎么隐藏 #VALUE!?
=IFERROR(B2+C2,0) 会用 0 代替任何错误。更好的做法是修正原因,或者使用会跳过文本的公式,例如 =SUM(B2:C2),因为 IFERROR 也会把你本该看到的错误一起隐藏。