You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中如何统计字符串中重叠出现的特定文本(如MM)次数?

重叠"MM"次数统计解决方案

针对你需要统计Excel字符串中重叠连续"MM"次数(如"MMM"计2次、"MMMM"计3次)的需求,以下是可行的实现方案:

一、Excel公式方案

1. 适用于Excel 365/2021(支持动态数组)

单个单元格统计公式:

=SUM(--(MID(B2,SEQUENCE(LEN(B2)-1),2)="MM"))
  • 逻辑:生成从1到字符串长度-1的位置序列,逐个提取连续2个字符判断是否为"MM",将布尔结果转为1/0后求和,直接得到重叠次数。
  • 批量总统计:若要计算B2:B99区域的总重叠次数:
=SUM(--(MID(B2:B99,SEQUENCE(LEN(B2:B99)-1),2)="MM"))

2. 适用于旧版Excel(无动态数组)

单个单元格数组公式(输入后需按Ctrl+Shift+Enter确认):

=SUM(IF(MID(B2,ROW(INDIRECT("1:"&LEN(B2)-1)),2)="MM",1,0))
  • 逻辑:通过ROW(INDIRECT)生成位置序列,逐个判断连续2字符是否为"MM",求和符合条件的次数。

3. 连续M段统计思路(Excel 365)

=SUM(MAX(0,LEN(TEXTSPLIT(B2,"F",,TRUE))-1))
  • 逻辑:按"F"拆分字符串得到所有连续M的子串,每个子串长度减1即为该段的MM重叠次数,求和后得到总次数。

二、VBA自定义函数方案

若需更灵活的批量复用,可创建自定义函数:

  1. 按下Alt+F11打开VBA编辑器;
  2. 右键工作簿→插入→模块,粘贴以下代码:
Function CountOverlapMM(inputStr As String) As Integer
    Dim count As Integer
    count = 0
    Dim i As Integer
    ' 遍历字符串每个位置,检查连续两字符是否为MM
    For i = 1 To Len(inputStr) - 1
        If Mid(inputStr, i, 2) = "MM" Then
            count = count + 1
        End If
    Next i
    CountOverlapMM = count
End Function
  1. 返回Excel,在单元格输入=CountOverlapMM(B2)即可得到对应结果,下拉填充可批量处理98行数据。

验证结果

用你提供的测试数据验证,结果完全符合预期:

DaySequenceMM Count
1MFFFM0
2FMMM2
3FF0
4MMMMM4
5M0
6MFMMMFF2

内容的提问来源于stack exchange,提问作者Ellka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 05:13:33