Note: The other languages of the website are Google-translated. Back to English
English English

从文本字符串中去除或去除非数字字符

有时,您可能需要从文本字符串中删除所有非数字字符,并仅保留数字,如下图所示。 本文将介绍一些解决Excel中此任务的公式。


使用公式从文本字符串中删除或删除所有非数字字符

在Excel 2019和Office 365中,新的TEXTJOIN函数与IFERROR,MID,ROW和INDIRECT函数结合使用可以帮助您仅从文本字符串中提取数字,通用语法为:

=TEXTJOIN("",TRUE,IFERROR(MID(text,ROW(INDIRECT("1:100")),1)+0,""))
  • text:您要从中删除所有非数字字符的文本字符串或单元格值。

1。 请将以下公式复制或输入到要输出结果的空白单元格中:

=TEXTJOIN("",TRUE,IFERROR(MID(A2,ROW(INDIRECT("1:100")),1)+0,""))

2。 然后,按 Ctrl + Shift + Enter 键在一起以获得第一个结果,请参见屏幕截图:

3。 然后,选择公式单元格,然后将填充手柄向下拖动到要应用此公式的单元格,仅提取数字,并去除所有其他非数字字符,请参见屏幕截图:


公式说明:

ROW(INDIRECT(“ 1:100”):INDIRECT公式中的数字1:100表示​​MID函数计算文本字符串的100个字符。 该数组将包含100个数字,例如:{1; 2; 3; 4; 5; 6; 7; 8 .... 98; 99; 100}。
备注:如果您的文本字符串更长,则可以根据需要将数字100更改为更大的数字。

MID(A2,ROW(INDIRECT(“ 1:100”)),1:此MID函数用于提取单元格A2中的文本以得到一个字符,它将是这样的数组:
{“ 5”;“ 0”;“ 0”;“”;“ K”;“ u”;“ t”;“ o”;“ o”;“ l”;“ s”;“”;“ f” ;“ o”;“ r”;“”;“ E”;“ x”;“ c”;“ e”;“ l”;“”;“”;“”;“”;“”;“”。 ..}

MID(A2,ROW(INDIRECT("1:100")),1)+0:在使用此数组将文本强制为数字后,添加0值,数字文本值将转换为数字,并且非数字值将显示为#VALUE错误值,如下所示:
{“ 5”;“ 0”;“ 0”;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE! !;#值! !;#值!...}

IFERROR(MID(A2,ROW(INDIRECT("1:100")),1)+0:此IFERROR函数用于将所有错误值替换为一个空字符串,如下所示:
{“ 5”; “ 0”;“ 0”;“”;“”; “”;“”;“”;“”;“”;“”; …}

TEXTJOIN("",TRUE,IFERROR(MID(A2,ROW(INDIRECT("1:100")),1)+0,"")):最后,此TEXTJION函数将合并由IFFERROR函数返回的数组中的所有非空值,并返回结果。


说明:

1.使用以上公式,数字将以文本格式返回,如果您需要一个实数值,请应用此公式,切记按 Ctrl + Shift + Enter 键在一起以获得正确的结果。

=TEXTJOIN("",TRUE,IFERROR(MID(A2,ROW(INDIRECT("1:100")),1)+0,""))+0

2.在早期版本的Excel中,此公式将不起作用,在这种情况下,以下公式可能会对您有所帮助,请将该公式复制或输入到空白单元格中:

=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)) * ROW(INDIRECT("1:"&LEN(A2))), 0), ROW(INDIRECT("1:"&LEN(A2))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(A2)))/10)


使用简单的功能从文本字符串中剥离或删除所有非数字字符

也许记住上面的公式太久了,在这里,我将介绍 Kutools for Excel 对你来说 删除字符 功能,只需单击几下即可从文本字符串中删除数字,字母,不可打印或字母数字字符。 点击下载Kutools for Excel免费试用!


使用的相对功能:

  • TEXTJOIN:
  • TEXTJOIN函数使用特定的分隔符将行,列或单元格区域中的多个值连接在一起。
  • MID:
  • MID函数用于从给定文本字符串的中间查找并返回特定数量的字符。
  • ROW:
  • Excel ROW函数返回引用的行号。
  • INDIRECT:
  • Excel INDIRECT函数将文本字符串转换为有效的引用。
  • IFERROR:
  • IFERROR函数用于在公式计算错误时返回自定义结果,而在没有错误发生时返回正常结果。

更多文章:


最佳办公效率工具

Kutools for Excel-帮助您从人群中脱颖而出

您想快速,完美地完成日常工作吗? Kutools for Excel具有300项强大的高级功能(合并工作簿,按颜色求和,拆分单元格内容,转换日期等),并为您节省80%的时间。

  • 专为1500个工作方案而设计,可帮助您解决80%的Excel问题。
  • 每天减少成千上万的键盘和鼠标点击,减轻您疲倦的眼睛和手部的疲劳。
  • 在3分钟内成为一名Excel专家。 不再需要记住任何痛苦的公式和VBA代码。
  • 30天无限制免费试用。 60天退款保证。 免费升级和支持2年。
Excel功能区(已安装Kutools for Excel)

Office选项卡-在Microsoft Office(包括Excel)中启用选项卡式阅读和编辑

  • 一秒钟即可在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标单击,告别鼠标手。
  • 查看和编辑多个文档时,可将您的工作效率提高50%。
  • 像Chrome,Firefox和新的Internet Explorer一样,为Office(包括Excel)带来高效选项卡。
Excel的屏幕截图(已安装Office选项卡)
按评论排序
注释 (4)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
谢谢你。 不错的公式。我将如何更改它,以便如果单元格仅包含字母,则公式输入 0 结果单元格(而不是目前的空白)?我想我可以通过将公式包装在另一个 IF 声明,但我没有走得太远。
该评论由网站上的主持人最小化
你好,格伦,要将结果显示为空白而不是零,请应用以下公式:=IF(SUM(LEN(A2)-LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2,ROW(INDIRECT("$1:$"&LEN(A2))),1))* ROW(INDIRECT("$1:$"&LEN(A2))),0), ROW(INDIRECT("$1:$"&LEN(A2))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A2)))/10),"")

请尝试,希望对您有所帮助!
该评论由网站上的主持人最小化
哇,这需要一些消化😋感谢您抽出宝贵时间回复👍
该评论由网站上的主持人最小化
这个法国设置的公式是什么?
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点