摆脱数字以外的所有事物(Microsoft Excel)
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 [摆脱数字以外的所有事物]。