Note: The other languages of the website are Google-translated. Back to English
Registo de cliente  \/ 
x
or
x
Registe-se  \/ 
x

or

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.

Importante: 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.

Importante: 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
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    B. Sambamoorthy · 7 months ago
    Find formula1 is imperfect. It will be a great help if it is removed. I have lost lot of time trying for 4th occurance of "a" in "vedanarayanan" Thanks. 
  • To post as a guest, your comment is unpublished.
    Rizvi Kareem · 8 months ago
    To handle the exception of the formula, you can use same with if and iserro

    =IF(ISERR(FIND("c",A1,FIND("c",A1)+2)),FIND("c",A1,FIND("c",A1)+0),FIND("c",A1,FIND("c",A1)+2))
  • To post as a guest, your comment is unpublished.
    Roo Payne · 3 years ago
    "Substitute" lets you find the Nth occurrence of a term, so combine it with "find" as follows (where 5=5th occurrence):

    =FIND(CHAR(1),SUBSTITUTE(A1,"c",CHAR(1),5))
    • To post as a guest, your comment is unpublished.
      SysAdminBen · 2 years ago
      This is the correct answer! please replace this whole article with this one line of code.....
  • To post as a guest, your comment is unpublished.
    AnnihilatorDJ · 3 years ago
    The first formula is completely useless and wrong but it works just correct for this example as the first and second "c"s are adjacent. The correct formula is:


    For 2nd occurence -
    =FIND("c",A1,FIND("c",A1)+1)

    For 3rd occurence -
    =FIND("c",A1,FIND("c",A1,FIND("c",A1)+1)+1) and so on...
    • To post as a guest, your comment is unpublished.
      nmcfarland5@gmail.com · 3 years ago
      Absolutely agree. The +2, or +3 etc.....entirely depends on the spacing between the n and (n+1) occurences of "c". Thus you would have to manually adjust for every cell if you were trying to copy this formula down a column for instance. Essentially the same as manually counting.


      Ex. Let's try to find the 4th occurrence of "c" in cell A1 using the provided formula. Per the article we should use +3 in our nested FIND function to find the 4th occurrence.


      Text in Cell A1:

      "cab car abc cole cube"

      Manually counting, the 4th occurrence is the "c" in cole in the character position of 13.


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

      The nested function, FIND("c",A1) will find the first occurrence of "c" in position 1.

      Therefore,

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

      Plugging that back into our formula,

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

      This new formula will look for the first occurrence of "c" beginning from character position 4. The 4th character in the string is the space just after cab.

      Therefore, the formula will find the "c" in car and return the value of 5 for our formula. As we know from manually counting we are looking for 13 as the output.
    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      The firs formula works correct in my version, in the note, it has explained how to find the third or forth or nth "c".

      Note: You can change the 2 in the formula based on your needs. For example, if you want to find the fourth position of "c", you can change the 2 to 3. And if you want to find the first position of "c", you shuold change 2 to 0.
      • To post as a guest, your comment is unpublished.
        AnnihilatorDJ · 3 years ago
        Try to find out the position of the second c with the first sentence of my above comment as the string using the first formula. You'll get to know how correct it is!
  • To post as a guest, your comment is unpublished.
    n.k.mandadapu@gmail.com · 3 years ago
    Hello all,

    I have a text in an Excel cell " BY TRANSFER-NEFT*HDFC0000001*N08745987123546*J0032331*KUMAR--"

    I need a function to extract just "N08745987123546"

    Thanks
    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      Hello, do you want to extract the numbers after No and the number of numbers are fixed? If so, you can use Kutools for Exccel's Extract text function, type No????to extract.
  • To post as a guest, your comment is unpublished.
    KUMAR · 3 years ago
    HI ALL,
    I have a text in an Excel cell " BY TRANSFER-NEFT*HDHC0065431*N053112345624801*K0038331*krishna--"
    I need a function to extract just "N053112345624801"
  • To post as a guest, your comment is unpublished.
    kamil · 4 years ago
    Formula 1 doesn't work on fourth, fifth, sixth etc. so (+3,4,5) will always show third position of letter "c" which is 19 second formula is working though.
  • To post as a guest, your comment is unpublished.
    Philip Oyetunde · 5 years ago
    Hello all,

    I have a text in an Excel cell "23 floyd lane, longville,KN 14564"

    I need a function to extract just "longville"

    Thanks
    • To post as a guest, your comment is unpublished.
      Rukt · 5 years ago
      If you must use a function, try: =TRIM(MID(A1,SEARCH(",",A1)+1,SEARCH("!@#",SUBSTITUTE(A1,",","!@#",2))-SEARCH(",",A1)-1))

      Otherwise, you might consider Data > Text to Columns > Delimited (using a comma as the separator).
  • To post as a guest, your comment is unpublished.
    jr · 7 years ago
    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)),[b]2[/b])
    where "c" is the character required and [b]2[/b] is the position. Note this is an array formula.
    • To post as a guest, your comment is unpublished.
      jr · 6 years ago
      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)
  • To post as a guest, your comment is unpublished.
    Geep · 7 years ago
    After some playing around I got the following to find the third instance of X and return the position number.

    =FIND("X",A1,(FIND("X",A1,FIND("X",A1,1)+1))+1)

    The VBA module gets my vote though. Much easier to remember
    • To post as a guest, your comment is unpublished.
      Matthew · 7 years ago
      Sure, but you could nest formulae in the "instance number" parameter indefinitely. Formula 2 obviates VBA, making it the best all-round solution.
  • To post as a guest, your comment is unpublished.
    Mohit Sharma · 8 years ago
    Dear All,

    I want to select a particulate string form a cell
    Example:-

    My Name is Mohit

    i want to return any value Like mohit, is, Name, My using a function.
    is there any Function or not
    • To post as a guest, your comment is unpublished.
      DdW · 8 years ago
      I think there is no specific function for that, since Excel is not built to handle lists of values in one cell. You can build the function yourself by combining the functions mentioned above with LEFT() and RIGHT(). Or you could use VBscripting of course.
  • To post as a guest, your comment is unpublished.
    DdW · 8 years ago
    Find Formula 1 won't work. The third parameter of the Find function is the index where the search should begin (as in: the first x characters of the string are ignored). i.e. if a string contains the letter c at indices 1, 5 and 10 the results are as follows:
    =FIND("c",A1,1) will find the first c
    =FIND("c",A1,2) through =FIND("c",A1,5) will find the second c
    =FIND("c",A1,6) through =FIND("c",A1,10) will find the third c.
    anything above won't find anything.
    • To post as a guest, your comment is unpublished.
      skyyang · 8 years ago
      Thank you for finding out this mistake, i'm sorry the formula1 is wrong, the correct formula should be [b]=FIND("c",A1,FIND("c",A1)+2)[/b] ,and if you want to find the first letter "c", you just need to change the 2 to 0.
      • To post as a guest, your comment is unpublished.
        sanjeev · 6 years ago
        I am able to find second instance but what about 3rd, 4th and 'n'th. I am not able to get 3rd instance (as well as 4th). I have data which contains 50 to 60 instances. so what should I do?
        • To post as a guest, your comment is unpublished.
          Matthew · 6 years ago
          sanjeev, as I said two years ago, use Formula 2:

          =FIND(CHAR(1),SUBSTITUTE("LOOK_IN","LOOK_FOR",CHAR(1),INST_NUM))

          Where LOOK_IN is the string (or cell) you're searching in;
          LOOK_FOR is the string you're searching for; and
          INST_NUM is the integer instance of LOOK_FOR that you want to identify.

          Hence, =FIND(CHAR(1),SUBSTITUTE("HELLO WORLD","L",CHAR(1),3) will return 10 (the position of the third "L").
      • To post as a guest, your comment is unpublished.
        Matthew · 8 years ago
        As DdW indicates, the '+2' or '+0' or what-have-you is a 'hard-coded' character position; you'd have to already know where the "c" was, in order to find it.

        Formula 2 is spot-on, though: SUBSTITUTE the nth instance of your target string for a unique character that won't otherwise appear in the rest of the text, then FIND that unique character.