ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
123
返回列表 发新帖
楼主: Anny2021

[已解决] 提取连续数字

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-3-21 15:50 | 显示全部楼层
B1  

  1. =niko(A1)
复制代码

  1. Function niko(ByVal inputStr As String) As String
  2.     Dim i As Integer, temp As String, maxNumStr As String
  3.     Dim maxLen As Integer, tempLen As Integer
  4.     maxNumStr = ""
  5.     temp = ""
  6.     maxLen = 0
  7.     tempLen = 0
  8.     For i = 1 To Len(inputStr)
  9.         Dim ch As String
  10.         ch = Mid(inputStr, i, 1)
  11.         If ch Like "#" Then
  12.             temp = temp & ch
  13.             tempLen = tempLen + 1
  14.         Else
  15.             If tempLen > maxLen Then
  16.                 maxLen = tempLen
  17.                 maxNumStr = temp
  18.             End If
  19.             temp = ""
  20.             tempLen = 0
  21.         End If
  22.     Next i
  23.     If tempLen > maxLen Then
  24.         maxNumStr = temp
  25.     End If
  26.     niko = maxNumStr
  27. End Function
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-3-22 11:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
升级用正则函数

TA的精华主题

TA的得分主题

发表于 2025-3-22 12:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
沈默00 发表于 2025-3-21 11:11
=REGEXP(A2,"\d{9}")
自然正则最好,,,就像提取11位的手机号码一样,,

REGEXP?office高版本?

TA的精华主题

TA的得分主题

发表于 2025-3-22 12:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2025-3-22 12:21 | 显示全部楼层
军生 发表于 2025-3-22 12:01
REGEXP?office高版本?

微软 OFFICE 是没有这 REGEXP 函数的,仅专属于 WPS 函数功能

TA的精华主题

TA的得分主题

发表于 2025-3-22 12:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
军生 发表于 2025-3-22 12:01
REGEXP?office高版本?

这是WPS的新版  正则

TA的精华主题

TA的得分主题

发表于 2025-3-22 14:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2025-3-22 15:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2025-3-22 15:39 | 显示全部楼层
本帖最后由 niko88819 于 2025-3-22 15:56 编辑
伊可赛二 发表于 2025-3-22 15:26
365已经正是发布REGEXEXTRACT和REGEXREPLACE函数。

00030205444050BVV202501DD    当然9位数好说,超过9位数难说了 . 超过9位数,建议还是采用  21楼  自定义函数

TA的精华主题

TA的得分主题

发表于 2025-3-22 16:46 | 显示全部楼层
按楼主的举例,模拟AI的分析方法:
目标字符串长度固定为9位,那么位置应当是不固定的,否则用mid,left或right函数之一就搞定了,没有必要求助;
目标字符是连续数字,结合已知的固定长度,那它应当是恰好9位数字,其前后均非数字。
所以,可估计:提取的是源字符串中间位置的恰好连续9位数,它的前面必定是非数字字符,用WPS或EXCEL,正则表达式都可以写成:
\D\K\d{9}(?!\d)
最终公式:
=REGEXP(A1,"\D\K\d{9}(?!\d)")

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-12-15 03:19 , Processed in 1.030511 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表