1、使用VBA正则表达式函数可精准提取混合字符串中所有数字;2、通过MID、ROW等函数组合数组公式实现无VBA环境下逐字符判断提取;3、嵌套SUBSTITUTE清除已知文本字符适用于格式固定数据;4、利用Power Query批量清洗整列数据,图形化操作稳定高效。

如果您在处理Excel表格时需要从包含文本和数字的混合字符串中提取纯数字,可能会遇到无法直接参与计算的问题。以下是几种有效的提取方法。
本文运行环境:Dell XPS 13,Windows 11
通过编写VBA代码创建自定义函数,利用正则表达式精准匹配字符串中的所有数字部分,适用于复杂文本场景。
1、按下Alt + F11打开VBA编辑器,插入新模块。
2、输入以下代码:Function ExtractNumber(txt As String) As String\n Dim regExp As Object\n Set regExp = CreateObject("VBScript.RegExp")\n regExp.Global = True\n regExp.Pattern = "[^0-9]" \n ExtractNumber = regExp.Replace(txt, "")\nEnd Function
3、关闭编辑器返回Excel,在单元格中输入公式=ExtractNumber(A1),即可提取A1中的数字。
该方法利用字符逐个判断是否为数字,再拼接结果,适合无VBA权限环境下的数字提取任务。
1、选中目标单元格,输入以下数组公式:=TEXTJOIN("",TRUE,IF(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))
2、输入完成后按Ctrl+Shift+Enter确认,实现从A1中提取连续或非连续数字字符。
3、若未启用动态数组功能,需确保公式以数组形式运行,否则会返回错误值。
通过将所有已知非数字字符逐一替换为空,最终保留仅含数字的结果,适用于文本格式较固定的情况。
1、针对字母类干扰项,使用多层SUBSTITUTE嵌套,例如:=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"元",""),"件",""),"个","")
2、结合VALUE函数尝试转换结果为数值类型,验证是否成功剥离文本。
3、重复添加更多SUBSTITUTE层级以覆盖其他可能存在的单位符号或空格。
适用于批量处理多个单元格或整列数据,通过图形化界面操作实现稳定提取。
1、选择数据区域,点击“数据”选项卡中的“从表格/区域”加载至Power Query编辑器。
2、在查询编辑器中右键列标题,选择“替换值”,依次将a-z、A-Z字母替换为空。
3、完成替换后点击“关闭并上载”,原始工作表将生成清洗后的纯数字列。
以上就是excel怎么提取文本中数字 excel函数提取技巧的详细内容,更多请关注php中文网其它相关文章!
全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号