KutoolsforOffice — 一套方案,五大工具。事半功倍。

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

作者Xiaoyang修改日期

有时,您可能需要从文本字符串中移除所有非数字字符,仅保留数字,如下图所示。本文将为您介绍在 Excel 中实现此操作的几种公式方法。

doc-strip-non-numeric-1


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

在 Excel 2019 和 Office 365,可以使用新文本 JOIN 函数结合 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 组合键,即可获得第一个结果,如下图所示:

doc-strip-non-numeric-2

3. 接下来,选中该公式单元格,拖动填充柄至其他需要应用此公式的单元格,即可提取所有数字,去除所有非数字字符,如下图所示:

doc-strip-non-numeric-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 的提取文本中,每次获取 1 个字符,将返回如下数组:
{"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! !;#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,"")):最后,TEXTJOIN 函数会将 IFERROR 返回的数组中所有非空值合并为最终结果。

doc-strip-non-numeric-4


注意

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)

doc-strip-non-numeric-5


用便捷功能从文本字符串中去除或删除所有非数字字符

如果您觉得上述公式难以记忆,不妨试试 Kutools for Excel。通过其删除特定字符功能,您只需几次点击,即可轻松剔除文本字符串中的数字、字母、不可打印字符或字母数字字符。点击免费下载 Kutools for Excel 试用版!


相关函数:

  • TEXTJOIN
  • TEXTJOIN 函数可使用指定的分隔符,将一行、一列或某个区域内的多个值连接为一个字符串。
  • MID
  • MID 函数可用于从指定文本字符串的中间位置提取并返回所需数量的字符。
  • ROW
  • Excel 的 ROW 函数可返回所引用单元格的行号。
  • INDIRECT
  • Excel 的 INDIRECT 函数能够将文本字符串转换为有效的引用。
  • IFERROR
  • IFERROR 函数可在公式发生错误时返回自定义结果,无错误时则返回正常值。

更多相关文章:


最强最佳办公效率工具

Kutools for Excel —— 助您脱颖而出

🤖KUTOOLS AI 助手:基于数据分析的革命性升级智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项  |  删除空白行  |  合并列或单元格且不丢失数据  |  不使用公式的四舍五入……
超级 VLookup多条件查找  |  多值返回  |  跨多表查找  |  模糊查找……
高级下拉列表便捷下拉列表  |  联动下拉列表  |  多选下拉列表……
列管理器添加指定数量的列  |  移动列  |  切换隐藏列可见状态  |对比列与选择相同/不同单元格……
精选功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿和表管理器|资源库(自动文本)|  日期提取  |  汇总工作表  |  加密/解密单元格  |  按列表批量发送邮件  |  超级筛选  |  特殊筛选(筛选粗体单元格/斜体/删除线等) ......
顶级 15 工具集12 文本工具添加文本删除特定字符……)|  50+ 图表 类型甘特图……)|  40+ 实用公式基于生日计算年龄……)|  19 插入工具插入二维码按路径插入图片……)|  12 转换工具小写金额转大写汇率转换……)|  7 合并和拆分工具高级合并行拆分 Excel 单元格……)|…… 以及更多
在您的首选语言使用 Kutools —— 支持英语、西班牙语、德语、法语、中文及 40+ 种语言!

Kutools for Excel 拥有超过 300 项功能,让您一键直达所需……


Office Tab —— 让 Microsoft Office(包括 Excel)支持标签式阅读与编辑

  • 一秒即可切换数十个已打开的文档!
  • 每天为您减少数百次鼠标点击,轻松告别鼠标手困扰。
  • 在同时查看和编辑多个文档时,让您的工作效率提升高达 50%。
  • 为 Office(包括 Excel)带来高效标签页体验,畅享如同 Chrome、Edge 和 Firefox 般的便捷操作。