如何证明一个函数连续(Excel提取连续特定规则的字符)

 2025-08-08 22:18:01  阅读 350  评论 0

摘要:有同学经常会问:我要提取一个单元格里连续的特定的数字怎么办?提取连续的汉字怎么办?提取连续的字母怎么办?提取特定规则连续字符怎么办?如果我们用传统的公式做法,就一个提取数字就很麻烦了,开头和结尾数字是一个提取办法,中间的又一个办法,连续的一个办法,还得开火

有同学经常会问:我要提取一个单元格里连续的特定的数字怎么办?

提取连续的汉字怎么办?提取连续的字母怎么办?提取特定规则连续字符怎么办?

如果我们用传统的公式做法,就一个提取数字就很麻烦了,开头和结尾数字是一个提取办法,中间的又一个办法,连续的一个办法,还得开火车,呜呜呜

能不能就来一个函数,给几个参数搞定这所以要求呢?

大鹅自己写一个函数解决这个问题

简单介绍下这个函数的属性,然后通过几个案例,来介绍下怎么样。

01.属性

strTQ(单元格地址,提取规则,[第几个连续],[正序找还是倒叙找])

四个属性,分别是:

1,单元格地址:选单元格地址就好,只支持1个单元格

2,提取规则:"一-隝"表示全部汉字

"0-9"表示全部数字

"A-Za-z"表示全部字母

可以根据自己要找的内容定制写比如带小数点的数字"0-9.",带括号的数字"(0-9)"

3,[第几个连续]:可选参数,默认是1,可以自己写,表示你要提取第几个连续的

4,[正序找还是倒叙找]:可选参数,默认1表示正序找,0表示倒叙找

看不懂没关系,接着看下面几个案例,就明白了

02.看几个案例,学习下用法

1)提取规格

我要找B列单元格的规格,提取出第一组数组和字母组合的规格

C3单元格写公式:=strTQ(B3,"0-9A-Za-z")

解释下,第二参数:"0-9A-Za-z",表示找连续数字,大字字母和小写字母

三参数忽略默认是第一个,四参数忽略默认是正序查找

就提取出了想要的规格

2)提取数量

这里我多用几个方法

看例子都是第二组连续数字

D3第一个写公式:=strTQ(B3,"0-9",2)

提取第二组连续的数字

但是,如果数据多了,不一定是第二组呢?但是可以确认的是,一定是倒数第一个连续数字表示数量

E3单元格写公式:=strTQ(B3,"0-9",,0)

第三参数,没写,默认找第一组连续数字

第四参数,写0,表示倒叙找

这里的数字是整数,如果小数点怎么写呢?

就是简单把第二参数加了一个小数点 =strTQ(B3,"0-9.",,0)

3)提取单位

观察数据,最后一组汉字就是的单位

G3单元格写公式:=strTQ(B3,"一-隝",,0)

第二参数改为了:"一-隝"

三参数,省略默认第一组数据

四参数0表示倒叙查找

03.这个东西怎么用呢?

我录制一个动态图,你照着做就可以了

复制代码:

'1参数:单元格地址,2参数:规则,3参数:默认提取第一个连续(第几个连续)

'4参数:默认是1表示正序提取,0表示倒序提取

'默认最多提取256组连续数据

Function strTQ(rng As Range, _

strGuize As String, _

Optional n As Long = 1, _

Optional daoxu As Long = 1)

Dim num&, i&, arr(255) As String, k&, strTemp$

num = Len(rng.Value)

If daoxu = 1 Then '正序走

For i = 1 To num

If Mid(rng.Value, i, 1) Like "[" & strGuize & "]" Then

strTemp = strTemp & Mid(rng.Value, i, 1)

Else

If strTemp <> "" Then arr(k) = strTemp

If arr(k) <> "" Then k = k + 1

strTemp = ""

End If

If i = num And strTemp <> "" Then arr(k) = strTemp

Next

ElseIf daoxu = 0 Then '倒叙走

For i = num To 1 Step -1

If Mid(rng.Value, i, 1) Like "[" & strGuize & "]" Then

strTemp = Mid(rng.Value, i, 1) & strTemp

Else

If strTemp <> "" Then arr(k) = strTemp

If arr(k) <> "" Then k = k + 1

strTemp = ""

End If

If i = num And strTemp <> "" Then arr(k) = strTemp

Next

End If

If arr(0) = "" Then

strTQ = "#N/A" '一个都没找到

Else

strTQ = arr(n - 1)

End If

End Function

只要复制进去,新建的模块里就可以了

然后就是正常公式怎么用,它就怎么用,快点动手试试吧!

喜欢就关注我吧,每天分享职场知识,办公技巧!

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【如何证明一个函数连续(Excel提取连续特定规则的字符)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/zhishi/2029560.html

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0368秒, 内存占用1.93 MB, 访问数据库24次

陕ICP备14005772号-15