ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 综合应用 > 一个字符串中包含另一个字符串的个数

一个字符串中包含另一个字符串的个数

作者:绿色风 分类: 时间:2022-08-18 浏览:148
楼主
xyh9999
一、用VBA法求一个字符串中包含另一个字符串的个数:
  1. Function LqcOccu(cChar1, cSS)
  2. 'cSS中包含几个cChar1,区分大小写.当您需要不区分大小写时可将输入的2个参数都用Ucase()转成全大写输入即可.
  3. '例:? LqcOccu("lqc", "1234lqc456lqc789") 返回2
  4. Char1Len = Len(cChar1)
  5. If Char1Len = 0 Then
  6.   LqcOccu = 0
  7.   Exit Function
  8. End If
  9. Temp1 = Replace(cSS, cChar1, "")
  10. SsLen = Len(cSS)
  11. Temp1Len = Len(Temp1)
  12. LqcOccu = Round((SsLen - Temp1Len) / Char1Len, 0)
  13. End Function

二、用工作表函数法求一个字符串中包含另一个字符串的个数:
  1. =IF(LEN(B6)=0,0,(LEN(C6)-LEN(SUBSTITUTE(C6,B6,"")))/LEN(B6))  
'即求C6中包含B6的个数


ET发贴20100802B.rar
2楼
xyh9999
辛苦版主了,我不太会用后,以后要有什么不规范的还请您多多包函.
3楼
gouweicao78
公式的:
  1. =IF(B6="",0,(LEN(C6)-LEN(SUBSTITUTE(C6,B6,"")))/LEN(B6))
4楼
liuguansky
两种方法得到的结果对重复文本默认设置是一样的:
比如查找aa在"?*aaaa*?"这样的文本中,两种方法的结果均只为2.
如果这个自定义函数能增加一个变量来设置是否对重复值的运算采用逐文本<即此例结果为3>还是舍文本<即例结果为2>判断就好了。
5楼
xyh9999
哈哈,没看太明白.
6楼
xyh9999


那个逐文本的要求是不是附件中的这个意思?
Lqc20100802B逐文本与否.rar
7楼
xyh9999
哈哈,在VBA中用Range("B6")=""来判断B6是否为空比用Len(Range("B6"))=0来判断B6是否为空所用的时间更长,在工作表函数中还不知道
=IF(B6="",0,(LEN(C6)-LEN(SUBSTITUTE(C6,B6,"")))/LEN(B6)) 与 =IF(LEN(B6)=0,0,(LEN(C6)-LEN(SUBSTITUTE(C6,B6,"")))/LEN(B6)) 哪个运行时间更长,我还没学会怎么来测试。
8楼
hyl_2010
Public Function 计数(r As Range, rr As Range)  '
    m = r.Value
    i = rr.Value
    For c = 1 To Len(i)
        If InStr(m, Mid(i, c, 1)) Then
            c1 = c1 + 1
        End If
    Next
    计数 = c1
End Function

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap