Note: The other languages of the website are Google-translated. Back to English

Como encontrar a enésima ocorrência (posição) de um caractere em uma string de texto no Excel?

Por exemplo, há uma frase longa na Célula A1, veja a imagem a seguir. E agora você precisa encontrar a 3ª ocorrência ou posição do caractere "c" da string de texto na célula A1. Claro, você pode contar os caracteres um por um e obter o resultado da posição exata. No entanto, aqui vamos apresentar algumas dicas fáceis para encontrar a enésima ocorrência ou posição de caractere específico de uma string de texto em uma célula.


Encontre a enésima ocorrência (posição) de um caractere em uma célula com a fórmula Encontrar

Existem duas fórmulas de localização que podem ajudá-lo a encontrar a enésima ocorrência ou posição de um caractere específico de uma string de texto em uma célula rapidamente.

A fórmula a seguir mostrará como encontrar a 3ª ocorrência de "c" na célula A1.

Encontre a Fórmula 1

Em uma célula em branco, insira a fórmula = FIND ("c", A1, FIND ("c", A1) +2).

doc-find-enésima posição-da-string de texto2

E então pressione o Entrar chave. A posição da terceira letra “c” foi exibida.

Nota: Você pode alterar o 2 na fórmula com base em suas necessidades. Por exemplo, se você quiser encontrar a quarta posição de "c", pode alterar 2 para 3. E se quiser encontrar a primeira posição de "c", deve alterar 2 para 0.

Encontre a fórmula 2

Em uma célula em branco, insira a fórmula = ENCONTRAR (CARREG (1), SUBSTITUIR (A1, "c", CARREG (1), 3))e pressione Entrar chave.

Nota: O "3" na fórmula significa o terceiro "c", você pode alterá-lo de acordo com suas necessidades.


Contar vezes que uma palavra aparece em uma célula do Excel

Se uma palavra aparecer várias vezes em uma célula que precisava ser contada, normalmente, você pode contá-las uma por uma. Mas se a palavra aparecer centenas de vezes, a contagem manual é problemática. o Contar vezes que uma palavra aparece funcionam em Kutools for Excel's Fórmula Helper O grupo pode calcular rapidamente a contagem de vezes que uma palavra aparece em uma célula. Teste grátis com recursos completos em 30 dias!
 
Kutools para Excel: com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias.

> Encontre a enésima ocorrência (posição) de um personagem em uma célula com VBA

Na verdade, você pode aplicar a macro VB para encontrar facilmente a enésima ocorrência ou posição de um caractere específico em uma célula.

Etapa 1: Mantenha pressionado o botão ALT + F11 chaves, e abre o Microsoft Visual Basic para Aplicações janela.

Etapa 2: clique inserção > Móduloe cole a macro a seguir na janela do módulo.

VBA: Encontre a enésima posição de um caractere.

Function FindN(sFindWhat As String, _
sInputString As String, N As Integer) As Integer
Dim J As Integer
Application.Volatile
FindN = 0
For J = 1 To N
FindN = InStr(FindN + 1, sInputString, sFindWhat)
If FindN = 0 Then Exit For
Next
End Function

Etapa 3: agora, se você deseja encontrar a ocorrência exata da posição do terceiro "c" na célula A1, insira a fórmula de = FindN ("c", A1,3)e pressione o botão Entrar chave. Em seguida, ele retornará a posição exata na célula específica de uma vez.


Encontre a enésima ocorrência (posição) de um caractere em uma célula com o Kutools para Excel

Se você não gosta de fórmulas e VBA, pode tentar uma ferramenta útil - Kutools for Excel, Com o seu Fórmula grupos, você pode encontrar um utilitário - Encontre a enésima ocorrência de um caractere para retornar rapidamente a enésima posição de um caractere em uma célula.

Kutools for Excel, com mais de 300 funções úteis, tornam seus trabalhos mais fáceis. 

Depois de instalação grátis Kutools para Excel, faça o seguinte:

1. Selecione uma célula da qual deseja retornar o resultado e clique Kutools > Fórmula Helper > Fórmula Helper . Veja a imagem:

2. Em seguida, no popping Fórmula Helper caixa de diálogo, faça como abaixo:

1) Selecione Lookup na lista suspensa de Tipo de Fórmula seção;

2) Escolha Descubra onde o caractere aparece enésimo em uma string in Escolha uma fórmula seção;

3) Selecione a célula que contém a string que você usa, em seguida, digite o caractere especificado e a enésima ocorrência nas caixas de texto no Entrada de argumentos seção.

3. Clique Ok. E você obtém a posição da enésima ocorrência de um caractere em uma string.

 


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório

 

Comentários (28)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Encontrar Fórmula 1 não funcionará. O terceiro parâmetro da função Find é o índice onde a busca deve começar (como em: os primeiros x caracteres da string são ignorados). ou seja, se uma string contém a letra c nos índices 1, 5 e 10 os resultados são os seguintes: =FIND("c",A1,1) encontrará o primeiro c =FIND("c",A1,2) até = FIND("c",A1,5) encontrará o segundo c =FIND("c",A1,6) a =FIND("c",A1,10) encontrará o terceiro c. qualquer coisa acima não vai encontrar nada.
Este comentário foi feito pelo moderador no site
Obrigado por descobrir este erro, desculpe a fórmula1 está errada, a fórmula correta deve ser = FIND ("c", A1, FIND ("c", A1) +2) , e se você quiser encontrar a primeira letra "c", basta alterar o 2 para 0.
Este comentário foi feito pelo moderador no site
Como DdW indica, o '+2' ou '+0' ou o que você tem é uma posição de caractere 'codificada'; você já teria que saber onde estava o "c", para encontrá-lo. No entanto, a Fórmula 2 é perfeita: SUBSTITUA a enésima instância de sua string de destino por um caractere exclusivo que não aparecerá de outra forma no restante do texto e, em seguida, ENCONTRE esse caractere exclusivo.
Este comentário foi feito pelo moderador no site
Eu sou capaz de encontrar a segunda instância, mas e a 3ª, 4ª e 'n'th. Não consigo obter a 3ª instância (assim como a 4ª). Eu tenho dados que contém 50 a 60 instâncias. então, o que eu deveria fazer?
Este comentário foi feito pelo moderador no site
sanjeev, como eu disse há dois anos, use a Fórmula 2: =FIND(CHAR(1),SUBSTITUTE("LOOK_IN","LOOK_FOR",CHAR(1),INST_NUM)) Onde LOOK_IN é a string (ou célula) que você está pesquisando; LOOK_FOR é a string que você está procurando; e INST_NUM é a instância inteira de LOOK_FOR que você deseja identificar. Portanto, =FIND(CHAR(1), SUBSTITUTE("HELLO WORLD","L",CHAR(1),3) retornará 10 (a posição do terceiro "L").
Este comentário foi feito pelo moderador no site
Prezados Todos, Eu quero selecionar uma string particulada de uma célula Exemplo: - Meu nome é Mohit eu quero retornar qualquer valor Como mohit, is, Name, My usando uma função. existe alguma função ou não
Este comentário foi feito pelo moderador no site
Acho que não existe uma função específica para isso, já que o Excel não foi construído para lidar com listas de valores em uma célula. Você mesmo pode construir a função combinando as funções mencionadas acima com LEFT() e RIGHT(). Ou você pode usar VBscripting, é claro.
Este comentário foi feito pelo moderador no site
Depois de algumas brincadeiras, consegui o seguinte para encontrar a terceira instância de X e retornar o número da posição. =FIND("X",A1,(FIND("X",A1,FIND("X",A1,1)+1))+1) O módulo VBA recebe meu voto. Muito mais fácil de lembrar
Este comentário foi feito pelo moderador no site
Claro, mas você pode aninhar fórmulas no parâmetro "número da instância" indefinidamente. A Fórmula 2 elimina o VBA, tornando-o a melhor solução completa.
Este comentário foi feito pelo moderador no site
Try this: =INDEX(SMALL(IF(MID(A1,MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),1)="c",MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),""),MATCH(ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),0)),2) onde "c" é o caractere necessário e 2 é a posição. Observe que esta é uma fórmula de matriz.
Este comentário foi feito pelo moderador no site
this is simpler: =INDEX(SMALL(IF(MID(A1,ROW(INDIRECT(1&":"&LEN(A1))),1)="c",ROW(INDIRECT(1&":"&LEN(A1))),""),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c",""))))),2)
Este comentário foi feito pelo moderador no site
Olá a todos, tenho um texto em uma célula do Excel "23 floyd lane, longville,KN 14564" preciso de uma função para extrair apenas "longville" Obrigado
Este comentário foi feito pelo moderador no site
Se você precisar usar uma função, tente: =TRIM(MID(A1,SEARCH(",",A1)+1,SEARCH("!@#",SUBSTITUTE(A1,",""!@#",2 ))-SEARCH(",",A1)-1)) Caso contrário, você pode considerar Dados > Texto para Colunas > Delimitado (usando uma vírgula como separador).
Este comentário foi feito pelo moderador no site
A fórmula 1 não funciona na quarta, quinta, sexta etc., então (+3,4,5) sempre mostrará a terceira posição da letra "c", que é a fórmula de 19 segundos que está funcionando.
Este comentário foi feito pelo moderador no site
Olá a todos,
Eu tenho um texto em uma célula do Excel "BY TRANSFER-NEFT*HDHC0065431*N053112345624801*K0038331*krishna--"
Eu preciso de uma função para extrair apenas "N053112345624801"
Este comentário foi feito pelo moderador no site
Olá a todos,

Eu tenho um texto em uma célula do Excel "BY TRANSFER-NEFT*HDFC0000001*N08745987123546*J0032331*KUMAR--"

Eu preciso de uma função para extrair apenas "N08745987123546"

obrigado
Este comentário foi feito pelo moderador no site
Olá, você deseja extrair os números após Não e o número de números é fixo? Em caso afirmativo, você pode usar Kutools para a função Extrair texto do Excel, digite Não????para extrair.
Este comentário foi feito pelo moderador no site
A primeira fórmula é completamente inútil e errada, mas funciona corretamente para este exemplo, pois o primeiro e o segundo "c" são adjacentes. A fórmula correta é:


Para 2ª ocorrência -
= FIND ("c", A1, FIND ("c", A1) +1)

Para 3ª ocorrência -
=FIND("c",A1,FIND("c",A1,FIND("c",A1)+1)+1) e assim por diante...
Este comentário foi feito pelo moderador no site
A primeira fórmula funciona corretamente na minha versão, na nota, explica como encontrar o terceiro ou quarto ou enésimo "c".

Observação: você pode alterar o 2 na fórmula com base em suas necessidades. Por exemplo, se você deseja encontrar a quarta posição de "c", pode alterar o 2 para 3. E se deseja encontrar a primeira posição de "c", deve alterar 2 para 0.
Este comentário foi feito pelo moderador no site
Tente descobrir a posição do segundo c com a primeira frase do meu comentário acima como a string usando a primeira fórmula. Você vai saber o quão correto é!
Este comentário foi feito pelo moderador no site
Absolutamente concordo. O +2, ou +3 etc... depende inteiramente do espaçamento entre as ocorrências n e (n+1) de "c". Assim, você teria que ajustar manualmente para cada célula se estivesse tentando copiar essa fórmula em uma coluna, por exemplo. Essencialmente o mesmo que contar manualmente.


Ex. Vamos tentar encontrar a 4ª ocorrência de "c" na célula A1 usando a fórmula fornecida. De acordo com o artigo, devemos usar +3 em nossa função FIND aninhada para encontrar a 4ª ocorrência.


Texto na célula A1:

"carro de táxi abc cole cube"

Contando manualmente, a 4ª ocorrência é o "c" em cole na posição do caractere 13.


= FIND ("c", A1, FIND ("c", A1) +3)

A função aninhada, FIND("c",A1) encontrará a primeira ocorrência de "c" na posição 1.

Portanto,

FIND("c",A1)+3 = 1+3 = 4

Conectando isso de volta à nossa fórmula,

= ENCONTRAR("c",A1,FIND("c",A1)+3) = ENCONTRAR("c",A1,1+3) = ENCONTRAR("c",A1,4)

Essa nova fórmula procurará a primeira ocorrência de "c" começando na posição 4 do caractere. O quarto caractere na string é o espaço logo após o cab.

Portanto, a fórmula encontrará o "c" em car e retornará o valor de 5 para nossa fórmula. Como sabemos da contagem manual, estamos procurando 13 como saída.
Este comentário foi feito pelo moderador no site
"Substituir" permite que você encontre a enésima ocorrência de um termo, então combine-o com "localizar" da seguinte forma (onde 5 = 5ª ocorrência):

= ENCONTRAR (CARREG (1), SUBSTITUIR (A1, "c", CARREG (1), 5))
Este comentário foi feito pelo moderador no site
Essa é a resposta correta! por favor, substitua todo este artigo por esta linha de código .....
Este comentário foi feito pelo moderador no site
Excelente! Estou feliz por ter rolado para cima para revisar outros comentários depois de postar o meu.
Este comentário foi feito pelo moderador no site
Para lidar com a exceção da fórmula, você pode usar o mesmo com if e iserro
=IF(ISERR(FIND("c",A1,FIND("c",A1)+2)),FIND("c",A1,FIND("c",A1)+0),FIND("c",A1,FIND("c",A1)+2))
Este comentário foi feito pelo moderador no site
Encontre fórmula1 é imperfeita. Será uma grande ajuda se for removido. Perdi muito tempo tentando a quarta ocorrência de "a" em "vedanarayanan" Obrigado.
Este comentário foi feito pelo moderador no site
Sua fórmula para encontrar a enésima ocorrência de um caractere em uma string não funciona. Usando seu exemplo, adicionar 2 aos resultados da busca embutida garante uma posição inicial para a busca inicial de uma posição além dos primeiros dois cs, mas alterar o +1 para +2 não produz a posição do 3º "c", é simplesmente inicia a pesquisa um caractere mais profundo na string e o resultado ainda é o 4º "c". Para encontrar o 3º “c” a busca deve começar além da posição do 4º “c”. Aguardo sua nova solução.
Este comentário foi feito pelo moderador no site
Olá, David

Sim, como você disse, a primeira fórmula não funciona corretamente, você pode aplicar a segunda fórmula:
=FIND(CHAR(1),SUBSTITUTE(A2,"c",CHAR(1),2))

Nota: O número "2" na fórmula significa o segundo "c", se você quiser obter o terceiro, quarto "c", basta alterar o número 2 para 3,4 conforme necessário.
Por favor, tente, espero que possa ajudá-lo!
Não há comentários postados aqui ainda
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos