Contagem de ocorrências de substring dentro de uma célula

2

Como posso contar o número de ocorrências de uma substring dentro de uma célula?

Por exemplo:

|   |         A         |
| 1 |John,John,Tom,David|

Qual fórmula eu usaria se eu quisesse retornar o número de ocorrências de "John" na célula A1 (= 2)?

    
por johnL 24.07.2010 / 05:26

5 respostas

4

Uau, depois de procurar por um mês sobre este problema, me deparei com a resposta depois de postar esta pergunta. Aqui está o que eu criei caso alguém tenha esse problema.

=SUM(IF(ISNUMBER(FIND("John"; SPLIT(A1; ",")));1;0))

Esta é uma fórmula de matriz, portanto será necessário digitar Ctrl + Deslocar + Inserir .

Se alguém pensar em uma maneira melhor de resolver esse problema, avise-nos!

    
por 24.07.2010 / 06:04
2

Acho que você provavelmente encontrou o melhor caminho.

Uma alternativa:

=(LEN(A1)-LEN(SUBSTITUTE(A1,"John",)))/LEN("John")
    
por 24.07.2010 / 16:16
2

Veja uma abordagem que funciona nas planilhas do Google:

=COUNTIF(SPLIT(A1,","),"John")
    
por 06.02.2015 / 07:56
1

Apenas para o Planilhas Google

Eu criei o seguinte caminho alternativo:

=LEN(REGEXREPLACE(SUBSTITUTE(SUBSTITUTE(A1;"@";"");"John";"@");"[^@]";""))

Explicação:

  • Escolhemos um caractere especial (pode ser qualquer caractere que não esteja na subcadeia de caracteres de destino) e removê-lo da string
  • Substituímos a subcadeia que estamos procurando por esse caractere
  • Substituímos qualquer caractere que não seja nosso personagem especial por nada
  • Contamos o comprimento da string resultante e esse é o número de ocorrências da subcadeia.
por 27.06.2018 / 11:01
0

Eu não tenho a reputação de comentar o tópico acima, mas consegui estender a resposta do JohnL para que ele funcionasse em várias células:

=ArrayFormula(SUM(IF(ISNUMBER(find ("search text", split(Concatenate(A1:A3), ","))),1,0)))

em que A1:A3 são as células e "texto de pesquisa" é o texto a pesquisar.

    
por 05.02.2016 / 20:04