Linda的一列包含字母和数字字符。她需要保留数字字符并删除字母字符。例如,一个单元格可能包含10003E111,而她希望以10003111结尾。

有几种方法可以解决此问题。但是,在继续执行任何解决方案之前,您应确保您未尝试更改未真正损坏的内容。例如,您需要确保出现在数字中的“ E”不是数字格式的一部分,换句话说,是幂运算的代号。如果是这样,则您实际上并不想删除该字符,因为它将最终更改基础数字的性质。

如果确定字符不是数字格式的一部分,则可以首先尝试使用公式来删除字母字符。

如果要更改的值在A列中,则可以在B列中输入以下公式:

=SUM(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1, ROW($1:$99),1))ROW($1:$99),),ROW($1:$99))+1, 1)10^ROW($1:$99)/10)

确保通过按Ctrl + Shift + Enter将此输入为数组公式。结果是B列包含A列中的值,没有字母字符。您可以使用“选择性粘贴”将信息从B列复制到另一列,以便最终获得实际值而不是公式结果。

这种方法对于短期在单个工作簿上使用可能会非常有用,但是如果您需要更频繁地进行这种数据处理,那么您将需要创建一个用户定义的函数来进行处理。这是一个示例:

Function OnlyNums(sWord As String)

Dim sChar As String     Dim x As Integer     Dim sTemp As String

sTemp = ""

For x = 1 To Len(sWord)

sChar = Mid(sWord, x, 1)

If Asc(sChar) >= 48 And _           Asc(sChar) <= 57 Then             sTemp = sTemp & sChar         End If     Next     OnlyNums = Val(sTemp)

End Function

您可以通过在工作表单元格中调用此函数来使用此函数:

=OnlyNums(A1)

该函数返回一个数值。如果要创建更短的宏来进行处理,请考虑以下事项:

Function StripChar(aText As String)

Dim I As Integer

StripChar = ""

For I = 1 To Len(aText)

aChar = Mid(aText, I, 1)

Select Case aChar             Case "0" To "9"

StripChar = StripChar & aChar         End Select     Next End Function

要使用此功能,请在工作表中使用以下任一方法:

=STRIPCHAR(A1)

=VALUE(STRIPCHAR(A1))

第一个返回由数字组成的文本字符串,第二个返回该字符串的数字版本。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(11750)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:

链接:/ excel-Getting_Rid_of_Everything_Except_Numbers [摆脱数字以外的所有事物]。