=VALUE(A2) 把 A2 中以文本形式存储的数字转换成真正的数字。文本数字看起来很正常,但 SUM、AVERAGE 和 COUNT 都会跳过它们,所以合计可能会是 0:
| A | B | C | |
|---|---|---|---|
| 1 | Imported | VALUE | |
| 2 | 120 | 120 | |
| 3 | 85 | 85 | |
| 4 | 240 | 240 | |
| 5 | 15 | 15 | |
| 6 | 0 | 460 |
A6 的合计是 0,因为 A 列中的四个单元格都是文本(输入时带了撇号,从 CSV 或网页导入的数据也常常这样)。C 列逐个转换它们,C6 给出真正的合计 460。
怎样判断数字是以文本形式存储的
在 Excel 中,以文本形式存储的数字:
- 靠单元格左侧显示,而数字靠右侧显示(除非改过对齐方式);
- 单元格左上角有一个绿色小三角,选中时会出现一个警告图标,提示“以文本形式存储的数字”;
- 会被 COUNTA 计入,但不会被 COUNT 计入。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Value | ISNUMBER | ISTEXT | Text numbers | |
| 2 | 120 | TRUE | FALSE | 2 | |
| 3 | 85 | FALSE | TRUE | ||
| 4 | 240 | TRUE | FALSE | ||
| 5 | 15 | FALSE | TRUE |
E2 统计区域中有多少个单元格非空但不是数字:这里是带撇号输入的两个。对一列干净的数字,它返回 0。
四个能转换的公式
| A | B | C | |
|---|---|---|---|
| 1 | Text | Result | How |
| 2 | 1250 | 1250 | VALUE |
| 3 | 1250 | double minus | |
| 4 | 1250 | multiply by 1 | |
| 5 | 1250 | add 0 |
任何算术运算都会迫使 Excel 把文本读成数字,VALUE 则是明确的写法。--(两个负号:取负,再取负)因为简短,常被用在其他公式中:=SUMPRODUCT(--A2:A5) 不需要辅助列就能把一列文本数字加起来。VALUE 也能读取带货币符号、千位分隔符或百分号的文本:VALUE("$1,250") 是 1250,VALUE("12%") 是 0.12。
| A | B | |
|---|---|---|
| 1 | Quantity (text) | Quantity |
| 2 | 125 |
轮到你了: A2 中的数量是以文本形式导入的。在 B2 中把它转换为数字。
带单位或其他分隔符的文本
文本中只要有它无法读成数字的内容,VALUE 就返回 #VALUE!。两种常见情况:
| A | B | C | |
|---|---|---|---|
| 1 | Text | Fixed | Without the fix |
| 2 | 120 kg | 120 | #VALUE! |
| 3 | 1.234,5 | 1234.5 | #VALUE! |
- 带单位或文字:像 B2 那样,先用 SUBSTITUTE 去掉它。
- 用逗号作小数点,比如德国或巴西系统中的
1.234,5:NUMBERVALUE(Excel 2013 及更高版本)的第二个和第三个参数分别是小数分隔符和千位分隔符。VALUE 只认识你自己的 Excel 中的分隔符,所以 C3 失败了。
数字前后的空格不会妨碍 VALUE,但网页中的不间断空格会;先用 SUBSTITUTE(A2,CHAR(160),"") 去掉它们。这种错误的一般原因见 #VALUE!。
| A | B | |
|---|---|---|
| 1 | Amount | Total |
| 2 | 120 | |
| 3 | 45 | |
| 4 | 80 |
轮到你了: A2:A4 中的金额是以文本形式存储的数字。在 B2 中用一个公式返回它们的合计。
不用公式就地转换
公式会把数字放在新的一列中。要修正单元格本身:
- 转换为数字。 选中这些单元格(选中的第一个单元格必须带有绿色三角),点击所选区域旁边的警告图标,选择“转换为数字”。这是最快的方法。
- 分列。 选中这一列,选择“数据 > 分列”,直接点击“完成”。Excel 会重新输入每个单元格,把文本数字变成数字。
- 选择性粘贴,乘。 在一个空单元格中输入 1 并复制它。选中这些文本数字,选择“开始 > 粘贴 > 选择性粘贴”,选择“乘”,点击“确定”。
如果单元格的格式是文本(“开始 > 数字格式”显示“文本”),要先把它们设为“常规”;否则你在其中输入的任何内容都会再次以文本形式存储。
常见错误:在文本和数字之间查找
查找值 101 与文本 101 不匹配:VLOOKUP、XLOOKUP 和 MATCH 返回 #N/A,=A2=101 为 FALSE,尽管两个单元格看起来一样。转换其中一方,让两者类型相同。如果查找列是文本,就转换要查找的值:
=VLOOKUP(TEXT(E2,"0"), A2:C6, 3, FALSE) E2 is a number, column A holds text numbers
=VLOOKUP(--E2, A2:C6, 3, FALSE) E2 holds a text number, column A holds numbers
ISNUMBER 和 ISTEXT 页面 介绍了怎样检查每一方。
常见问题
Excel 中怎样把文本转换为数字?
用公式的话,写 =VALUE(A2) 或 =--A2。不用公式的话,选中这些单元格,点击旁边出现的警告图标,选择“转换为数字”。
Excel 中的 SUM 为什么返回 0?
数字以文本形式存储,而 SUM 会跳过文本。这些数字通常靠左对齐,并带有一个绿色小三角。用 =VALUE(A2) 转换它们,或者直接用 =SUMPRODUCT(--A2:A10) 把它们加起来。
为什么“转换为数字”不起作用或者不出现?
Excel 只对它能读成数字的文本提供这个选项。网页中的不间断空格、kg 这样的单位,或者你的 Excel 不使用的小数逗号,都会让绿色三角消失。先清理文本:=VALUE(SUBSTITUTE(A2,CHAR(160),"")) 或 =NUMBERVALUE(A2,",",".")。
怎样转换用逗号作小数点的数字?
使用 NUMBERVALUE 并指定分隔符:=NUMBERVALUE(A2,",",".") 把 1.234,5 变成 1234.5。VALUE 只认识你自己的 Excel 设置中的分隔符。