Eu tenho uma planilha contendo 98 linhas de strings diferentes que são sequências de visitas masculinas/femininas registradas usando apenas "M" e "F". Estou tentando encontrar a frequência de visitas masculinas seguidas de visitas masculinas nessas sequências que apareceriam nas strings como "MM". No entanto, usando os métodos que conheço no Excel, atualmente ele perde algumas ocorrências porque depois de encontrar caracteres correspondentes, ele os ignora e passa para o próximo, enquanto eu preciso que ele sempre considere o último caractere. Por exemplo, MMM seria primeiro um macho seguido por um macho, mas é novamente um macho seguido por outro macho. Por exemplo, uma célula inclui "MMMMMMMMM", usando os métodos que conheço no Excel, ela conta apenas como 3 ocorrências porque, ao encontrar "MM", ela passa para o restante da string. Mas no meu cenário seriam na verdade 6 ocorrências de um macho seguidas de um macho, já para a sequência eu sempre considero o último visitante. Existe alguma maneira de automatizar isso usando uma fórmula ou mesmo VBA ou macro etc no Excel? Veja o exemplo abaixo de alguns registros das minhas colunas A e B que possuo atualmente e da coluna C que gostaria de adicionar para a frequência de visitas MM em cada sequência:
Dia | Seqüência | Contagem de MM |
---|---|---|
1 | MFFFM | 0 |
2 | FMMM | 2 |
3 | FF | 0 |
4 | MMMMM | 4 |
5 | M | 0 |
6 | MFMMMFF | 2 |
Até agora eu tentei:
Para todas as células:
=SUM(LEN(B2:B7)-LEN(SUBSTITUTE(B2:B7,"MM","")))/LEN("MM")
=SUMPRODUCT(--(ISNUMBER(FIND("MM", B2:B7))))
=COUNTIF(B2:B7, "*MM*")
Para cada célula:
=LEN(B2)-LEN(SUBSTITUTE(B2,"MM",""))
=MATCH(2,1/(MID(B2,SEQUENCE(LEN(B2)),2)="MM"))
No entanto, quase todas essas abordagens contam apenas cada ocorrência de MM e depois passam para os próximos caracteres. Alguns deles também contam apenas as células que contêm uma ocorrência de MM. Existe um método no Excel que pode contar as ocorrências de MM na string de cada célula, considerando também o caractere anterior na string? Muito obrigado por qualquer entrada!
Boa pergunta. Uma opção pode ser:
Fórmula em
C2
:Ou, se você sabe que as strings não têm mais de 99 caracteres, evite
LAMBDA()
e talvez use algo como:Se acontecer de você ser forçado a usar funções legadas, talvez:
E confirme atravésCtrlShiftEnter
Outra opção pesada: