Note: The other languages of the website are Google-translated. Back to English
Se connecter  \/ 
x
or
x
INSCRIPTION  \/ 
x

or

Comment trouver la nième occurrence (position) d'un caractère dans une chaîne de texte dans Excel?

Par exemple, il y a une longue phrase dans la cellule A1, voir la capture d'écran suivante. Et maintenant, vous devez trouver la 3ème occurrence ou position du caractère «c» à partir de la chaîne de texte dans la cellule A1. Bien sûr, vous pouvez compter les caractères un par un et obtenir le résultat de la position exacte. Cependant, nous allons ici présenter quelques astuces simples pour trouver la nième occurrence ou la position d'un caractère spécifique à partir d'une chaîne de texte dans une cellule.


Rechercher la nième occurrence (position) d'un caractère dans une cellule avec la formule Rechercher

Il existe deux formules de recherche qui peuvent vous aider à trouver rapidement la nième occurrence ou la position d'un caractère spécifique à partir d'une chaîne de texte dans une cellule.

La formule suivante vous montrera comment trouver la troisième occurrence de «c» dans la cellule A3.

Trouver la Formule 1

Dans une cellule vide, entrez la formule = TROUVER ("c", A1, TROUVER ("c", A1) +2).

doc-trouver-nième-position-de-chaîne-texte2

Et puis appuyez sur le Entrer clé. La position de la troisième lettre «c» a été affichée.

Notes: Vous pouvez modifier le 2 dans la formule en fonction de vos besoins. Par exemple, si vous voulez trouver la quatrième position de "c", vous pouvez changer le 2 en 3. Et si vous voulez trouver la première position de "c", vous devez changer 2 en 0.

Trouver la formule 2

Dans une cellule vide, entrez la formule = TROUVER (CHAR (1), SUBSTITUT (A1, "c", CHAR (1), 3))et appuyez sur Entrer clé.

Notes: Le "3" dans la formule signifie le troisième "c", vous pouvez le modifier en fonction de vos besoins.


Compter le nombre de fois qu'un mot apparaît dans une cellule Excel

Si un mot apparaît plusieurs fois dans une cellule qui devait être compté, vous pouvez généralement les compter un par un. Mais si le mot apparaît des centaines de fois, le comptage manuel est gênant. le Compter les fois qu'un mot apparaît fonctionner dans Kutools pour Excel's Aide à la formule groupe peut calculer rapidement le nombre d'apparitions d'un mot dans une cellule. Essai gratuit avec toutes les fonctionnalités en 30 jours !
 
Kutools for Excel: avec plus de 300 compléments Excel pratiques, essayez gratuitement sans limitation en 30 jours.

> Trouver la nième occurrence (position) d'un caractère dans une cellule avec VBA

En fait, vous pouvez appliquer la macro VB pour trouver facilement la nième occurrence ou la position d'un caractère spécifique dans une cellule.

Étape 1: maintenez la touche ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.

Étape 2: cliquez sur insérer > Moduleet collez la macro suivante dans la fenêtre Module.

VBA: Trouvez la nième position d'un personnage.

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

Étape 3: Maintenant, si vous voulez trouver l'occurrence exacte de la position du troisième "c" dans la cellule A1, veuillez entrer la formule de = FindN ("c", A1,3)et appuyez sur Entrer clé. Ensuite, il retournera la position exacte dans la cellule spécifique à la fois.


Trouver la nième occurrence (position) d'un caractère dans une cellule avec Kutools for Excel

Si vous n'aimez ni la formule ni le VBA, vous pouvez essayer un outil pratique - Kutools pour Excel, Avec son Laits en poudre groupes, vous pouvez trouver un utilitaire - Trouver la nième occurrence d'un caractère pour renvoyer rapidement la nième position d'un caractère dans une cellule.

Kutools pour Excel, avec plus de 300 fonctions pratiques, rend vos travaux plus faciles. 

Après installation gratuite Kutools for Excel, procédez comme suit:

1. Sélectionnez une cellule dont vous souhaitez renvoyer le résultat et cliquez sur Kutools > Aide à la formule > Aide à la formule . Voir la capture d'écran:

2. Puis dans le popping Aide à la formule boîte de dialogue, procédez comme suit:

1) Sélectionnez Lookup dans la liste déroulante de Type de formule section;

2) Choisissez Trouvez où le caractère apparaît Nième dans une chaîne in Choisissez une formule section;

3) Sélectionnez la cellule contenant la chaîne que vous utilisez, puis saisissez le caractère spécifié et la nième occurrence dans les zones de texte du Entrée d'arguments .

3. Cliquez Ok. Et vous obtenez la position de la nième occurrence d'un caractère dans une chaîne.


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtrée...
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammes...
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellules...
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
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 · 6 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 · 6 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 · 6 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 · 5 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 · 5 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.