我有一个电子表格,其中包含 98 行不同的字符串,这些字符串是仅使用“M”和“F”记录的男性/女性访问序列。我试图找到这些序列中男性访问的频率,这些序列将在字符串中显示为“MM”。然而,使用我在 Excel 中知道的方法,它目前会错过一些出现的情况,因为在找到匹配的字符后,它会忽略这些字符并移至下一个字符,而我需要它始终考虑最后一个字符。例如,MMM 首先是一个雄性,然后是一个雄性,但又是一个雄性,然后是另一个雄性。例如,一个单元格包含“MMMFMMMMM”,使用我所知道的 Excel 中的方法,它仅将其计为 3 次出现,因为一旦找到“MM”,它就会移至字符串的其余部分。但在我的场景中,这实际上会出现 6 次,先是一个男性,然后是一个男性,至于顺序,我总是考虑最后一个访客。有没有办法在 Excel 中使用公式甚至 VBA 或宏等来自动执行此操作?请参阅下面的示例,其中包含我当前拥有的 A 列和 B 列以及我想要添加的 C 列,以了解每个序列中 MM 访问的频率:
天 | 顺序 | 毫米数 |
---|---|---|
1 | 多功能FFFM | 0 |
2 | FMMM | 2 |
3 | FF | 0 |
4 | MMMMMM | 4 |
5 | 中号 | 0 |
6 | 多频多频多频多频 | 2 |
到目前为止我已经尝试过:
对于所有单元格:
=SUM(LEN(B2:B7)-LEN(SUBSTITUTE(B2:B7,"MM","")))/LEN("MM")
=SUMPRODUCT(--(ISNUMBER(FIND("MM", B2:B7))))
=COUNTIF(B2:B7, "*MM*")
对于每个单元格:
=LEN(B2)-LEN(SUBSTITUTE(B2,"MM",""))
=MATCH(2,1/(MID(B2,SEQUENCE(LEN(B2)),2)="MM"))
然而,几乎所有这些方法都只计算每个 MM 的出现,然后移动到下一个字符。其中一些还只对包含 MM 的细胞进行计数。Excel 中是否有一种方法可以计算每个单元格字符串中 MM 的出现次数,同时还考虑字符串中的前一个字符?非常感谢您的任何意见!