无法使用Excel将带有文本的单元格转换为数字

时间:2019-02-25 12:45:28

标签: excel vba excel-formula

我在excel中有一个表,其中有一个包含文本的列,其中包含货币和一些尾随空格。

我有类似

"
Extra Charges  37,95 €  
    + 1,50 € Shipping
    + 2,50 € COD
41,95 €  "

我愿意

=TRIM(RIGHT(TRIM(Table[@PRICES]);9)) 

获得41,95€ 和

=VALUE(IF(LEN(Table[@PRICES])>9;MID(Table[@PRICES];20;8);Table[@PRICES]))

获得37,95€

但是对于第一个(41,95€),如果我尝试添加value(..)函数,则会出现#VALUE错误

如何将其转换为数字?

  • 我试图复制以在另一个单元格中进行修整和值转换,只是复制表中的值但结果相同
  • NUMBERVALUE()无法正常工作,我得到#NAME吗?错误

2 个答案:

答案 0 :(得分:2)

您可以使用TEXT()函数将数字字符串转换为数字:

= TEXT(REPLACE(LEFT(“ 41,95€”,FIND(“”,“ 41,95€”)),FIND(“,”,“ 41,95€”),1,“。” ),“ 0.00”)

FIND()函数返回搜索字符串在现有字符串中的位置。这对于动态检测在LEFT()函数中使用的终点很有帮助。另外,它用于查找数字中“,”字符的位置,以便我们可以将其替换为“。”。 -以便Excel将其识别为数字。 TEXT()函数接受带有两位小数位的数字的格式“ 0.00”。

不幸的是,此方法删除了“欧元”符号-因此您可能希望使用单元格格式作为自己的参考。

答案 1 :(得分:0)

我尝试了以下插入CLEAN的方法,

= TRIM(RIGHT(TRIM(CLEAN(Table [@PRICES])); 9))