首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel -需要提取包含单元格中一个数字的机器ID,而不管它在句子中的位置如何。

Excel -需要提取包含单元格中一个数字的机器ID,而不管它在句子中的位置如何。
EN

Stack Overflow用户
提问于 2019-05-05 22:08:20
回答 1查看 80关注 0票数 0

这是我第一次在这里发问:)

从我们的企业票务系统导出数据时,不幸的是,我们没有针对机器ID的特定列,而是有“问题描述”列,该列既包括对问题的简短描述,也包括机器ID。机器ID总是有数字,但在数字之前可能只包含数字或2-4个字母,没有空格,示例如下:

XK2065

2092

BOZK10625

数字的数目可以是不同的,但从来没有超过六个。

问题描述的两个例子:

1) XK2065 -问题未被发现,请进行调查。

2)请调查未发现问题的原因,机器ID为XK2065,票号为1425778。

因此,问题是单位ID可以定位在句子中的任何地方,并且可以在数字之前只包含数字或2到4个字母。

是否有一个函数可以提取机器ID,而不管位置如何,如果有数字,还有与数字相邻的起始字母?我想要的附加条件是数位数不超过6,因为有时票号可能包括7位数。

函数比VBA宏更可取。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-06 11:19:06

这个函数应该使用正则表达式(如@RonRosenfeld建议的那样)来做您需要的事情:

代码语言:javascript
复制
Function RegExID(str As String) As String

Dim rgx As Object
Set rgx = CreateObject("VBScript.RegExp")
Dim allMatches As Object
With rgx
    .Pattern = "\b[A-Z]{0,4}[\d]{4,6}\b"
    .Global = True
    .ignoreCase = True
    .MultiLine = True
End With

Set allMatches = rgx.Execute(str)

For Each Item In allMatches
    RegExID = Item.Value
Next

End Function

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55996832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档