登录
首页 >  文章 >  软件教程

Excel提取数字的实用技巧分享

时间:2025-12-29 16:36:41 257浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《Excel提取混合文本中数字的技巧》,以下内容主要包含等知识点,如果你正在学习或准备学习文章,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

Excel中提取混合字符串纯数字有五种方法:一、SUBSTITUTE嵌套+TEXTJOIN提取首个数字序列;二、SUMPRODUCT+MID兼容旧版但结构受限;三、LAMBDA自定义函数提升复用性;四、Power Query图形化批量清洗;五、VBA函数支持高度定制。

Excel如何从文本中提取数字 Excel快速提取混合字符串中数字【公式】

如果您在Excel中处理包含数字和文字的混合字符串,需要从中提取纯数字部分,则可能是由于文本格式导致常规方法无法直接识别数值。以下是解决此问题的步骤:

一、使用SUBSTITUTE嵌套+TEXTJOIN(适用于Microsoft 365或Excel 2019及以上)

该方法通过逐个替换所有非数字字符为空,再合并剩余字符,从而提取连续数字。它支持字符串中存在多个数字段时仅提取首个连续数字序列。

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组合键(若为动态数组版本Excel可直接回车)

3、将公式向下填充至其他行对应数据区域

二、使用SUMPRODUCT+MID构造数组(兼容Excel 2007起所有版本)

该方法利用MID逐字拆解字符串,结合ASCII码判断是否为数字字符(0–9对应ASCII 48–57),再用SUMPRODUCT拼接有效数字。适用于仅需提取首个数字串且不依赖高版本函数的场景。

1、在目标单元格输入公式:=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1)))))

2、按Enter确认输入

3、若结果为0但原字符串含数字,说明该公式仅适配纯数字前置或中间无干扰符号的简单结构,需检查原始文本格式

三、借助自定义名称+LAMBDA(仅限Microsoft 365订阅用户)

通过定义可复用的LAMBDA函数,实现一键调用数字提取逻辑,避免重复编写长公式。该方式支持嵌套调用与参数化控制,提升维护性。

1、点击【公式】→【名称管理器】→【新建】

2、在“名称”栏输入:ExtractNumbers;在“引用位置”栏粘贴:=LAMBDA(str,LET(seq,SEQUENCE(LEN(str)),chars,MID(str,seq,1),nums,FILTER(chars,ISNUMBER(--chars),""),TEXTJOIN("",TRUE,nums)))

3、在单元格中调用:=ExtractNumbers(A1)

四、配合Power Query(无需公式,图形化操作)

利用Power Query编辑器对列进行批量清洗,自动识别并保留数字字符,适合处理大批量数据或需后续追加清洗步骤的场景。

1、选中数据列 → 【数据】选项卡 → 【从表格/区域】→ 勾选“表包含标题” → 确定

2、在Power Query编辑器中右键目标列 → 【转换】→ 【提取】→ 【只保留数字】

3、点击【主页】→ 【关闭并上载】→ 数据将写入新工作表或现有位置

五、VBA自定义函数(适用于频繁使用且需高度定制)

通过编写VBA函数,可实现灵活匹配规则(如提取全部数字、首位数字、带小数点数字等),并支持跨工作簿调用,适合有编程基础的用户。

1、按Alt+F11打开VBA编辑器 → 插入模块

2、粘贴以下代码:Function GetNumbers(txt As String) As String: Dim i As Integer: For i = 1 To Len(txt): If IsNumeric(Mid(txt, i, 1)) Then GetNumbers = GetNumbers & Mid(txt, i, 1): Next i: End Function

3、返回Excel,在单元格中输入:=GetNumbers(A1)

今天关于《Excel提取数字的实用技巧分享》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>