在Excel中将文本转换为数字格式

6
如何将数字的文本表示转换成 Excel 数字,尤其是负值?例如,字符串 "9,669.34"(不带引号)应变为数字 9,669.34,而字符串 "2,553.57-"(同样不带引号)应变为数字 (2,553.57)
当我使用公式 =SUBSTITUTE(A1,CHAR(160),"")+0 时,它可以正常工作,但只适用于正数。对于所有负数,我收到了结果 #VALUE!
3个回答

7

对于(2,553.57),您可以使用VALUE,例如VALUE("(2,553.57)")

当它是一个字符串时,Excel似乎无法识别2,553.57-作为有效的数字,因此假设您在A1中有一个值为"2,553.57-",则需要做更多的工作:

=VALUE(IF(RIGHT(A2,1)="-","-"&SUBSTITUTE(A2,"-","")))

编辑

=VALUE(IF(RIGHT(A2,1)="-","-"&SUBSTITUTE(A2,"-",""),A2))

来自微软网站的信息:

  • 文本可以采用 Microsoft Excel 所识别的任何常量数字、日期或时间格式。如果文本不属于这些格式之一,VALUE 函数将返回 #VALUE! 错误值。
  • 通常情况下,您不需要在公式中使用 VALUE 函数,因为 Excel 会根据需要自动将文本转换为数字。此函数是为了与其他电子表格程序兼容而提供的。

更多信息可在 Microsoft 的网站上找到:VALUE 函数


=VALUE(IF(RIGHT(A2,1)="-","-"&SUBSTITUTE(A2,"-","")))只接受负数值,而不接受正数值。我应该如何应用公式来转换正负数值?我有数百行需要处理。 - Bob
好的,我找到了。我可以使用=VALUE(IF(RIGHT(A2,1)="-","-"&SUBSTITUTE(A21,"-",""),A2))或者=IF(RIGHT(A2,1)="-",VALUE("-"&LEFT(A2,LEN(A2)-1)),VALUE(A2))。谢谢。 - Bob

3
如果您有一列这些基于文本的数字,请选择该列,使用数据►数据工具►文本分列►固定宽度►完成。尾部的负号将被用来确定结果数字的符号,空格(前导和/或尾随)将被删除,您将留下原始数字,可以应用货币或数字格式。
如果该列最初被格式化为文本,请在应用文本分列命令之前更改为常规格式。

0
另一个选项:选择列。复制。使用“乘法”选项进行特殊粘贴。
然后,如上所述,您可以在下拉列表中选择货币或数字、小数位等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接