将导入的信息转换为数值(Microsoft Excel)
Garrett问是否有一种方法可以将文本数据快速转换为数字数据。他正在导入一个文本文件,该文件在千位(1 256)中使用空格而不是逗号(1,256)。
有几种方法可以解决此问题。首先是了解问题的根源。该文本文件可能是在遵循度量标准的系统上创建的。某些国家/地区采用公制标准后,使用千位分隔符而不是逗号。因此,如果在启动Excel和执行导入之前在Windows中更改了区域设置,则可以将文件正确导入到Excel中。您可以使用控制面板更改区域设置。
如果您不想更改系统上的区域设置,则可以采用其他方法。 Excel导入信息后,您可以选择包含数字的单元格范围,然后简单地进行搜索和替换。您正在搜索一个空格,什么也不替换。这将完全消除空间,然后Excel将把单元格的内容视为数字。
如果需要,还可以使用公式来修改导入的数据。例如,如果导入的数字(包含空格)在单元格A3中,则可以使用以下公式来去除空格:
=1*SUBSTITUTE(A3," ","")
请注意,第一组引号之间没有空格,而第二组引号之间没有空格。
如果您要转换的数据很多,或者文本中插入了“仅数字”单元格,则可以决定使用宏进行转换。以下宏适用于您在调用之前所做的选择。它还会检查以确保删除空格后的单元格包含数字值。如果不是,则不进行任何转换。
Sub ClearSpacesIfNumeric() Dim c As Range 'Cell under examination Dim tmpText As String 'Cell contents without spaces Dim i As Integer 'Simple counter For Each c In Selection tmpText = "" 'Initialize 'Check each character to see if it's a space 'If it isn't, add it to tmpText For i = 1 To Len(c.Text) If Mid(c.Text, i, 1) <> " " Then tmpText = tmpText & Mid(c.Text, i, 1) End If Next i 'tmpText is now the cell contents without spaces 'If tmpText is a number, assign its value to 'the current cell If IsNumeric(tmpText) Then c.Value = tmpText End If Next c End Sub
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(12058)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处找到适用于Excel的较早菜单界面的本技巧的版本: