Passer au contenu principal

Trouver la nième occurrence d'un caractère dans Excel – 3 méthodes rapides

Trouver la nième occurrence d'un caractère spécifique dans une chaîne de texte dans Excel peut être particulièrement utile dans l'analyse de données, où vous devrez peut-être analyser des chaînes ou extraire des informations en fonction de certains délimiteurs ou modèles. Par exemple, recherchons la 2ème ou la 3ème occurrence du caractère "-" dans une chaîne de texte. Je vais démontrer des techniques simples pour accomplir efficacement cette tâche.


Rechercher la nième occurrence d'un caractère dans une chaîne de texte avec une formule

Vous pouvez créer une formule pour trouver la nième occurrence d’un caractère. Veuillez faire comme ceci :

1. Saisissez ou copiez la formule suivante dans une cellule où vous souhaitez obtenir le résultat :

=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),2))
Notes: Dans la formule ci-dessus:
  • A2: La cellule qui contient la chaîne.
  • -: Le personnage que vous recherchez.
  • 2: La 2ème occurrence que vous souhaitez trouver, vous pouvez la changer en 3,4…selon vos besoins.

2. Ensuite, faites glisser la formule de remplissage vers le bas pour remplir la formule dans d'autres cellules, et la 2ème position du caractère s'affiche en même temps, voir capture d'écran :

Explication de la formule:
  • REMPLACER remplace la nième occurrence du caractère par un caractère non imprimable (CHAR(1)).
  • IDENTIFIER recherche ce caractère non imprimable, donnant la position de la nième occurrence.

Trouver la nième occurrence d'un caractère dans une chaîne de texte avec Kutools for Excel

Si vous n'êtes pas fan de l'utilisation de formules ou de VBA, vous pourriez envisager une alternative pratique : Kutools for Excel. Au sein de ses groupes de formules, vous trouverez un utilitaire utile : Trouvez où le caractère apparaît Nième dans une chaîne qui identifie et renvoie rapidement la nième position de n'importe quel caractère dans une cellule.

Après avoir installé Kutools pour Excelcliquez Kutools > Aide à la formule > Aide à la formule ouvrir le Aide à la formule boite de dialogue. Cliquez sur une cellule où vous souhaitez placer le résultat. Ensuite, procédez comme suit :

  1. Sélectionnez Lookup dans la liste déroulante de Type de formule section;
  2. Selectionnez Trouvez où le caractère apparaît Nième dans une chaîne in Choisissez une formule section;
  3. Sélectionnez la cellule qui contient la chaîne que vous utilisez, puis tapez le caractère spécifié et la nième occurrence dans les zones de texte du Entrée d'arguments section;
  4. Enfin, cliquez OK bouton pour obtenir le résultat.
Pourboires: Intéressé par cette fonctionnalité, s'il vous plaît cliquez pour télécharger pour obtenir un essai gratuit pendant 30 jours.

Rechercher la nième occurrence d'un caractère dans une chaîne de texte avec la fonction définie par l'utilisateur

Dans cette section, nous explorerons comment créer et utiliser une UDF pour trouver la nième occurrence d'un caractère dans Excel, en vous fournissant un guide étape par étape pour vous aider à optimiser votre traitement des données.

  1. Maintenez la touche ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.
  2. Cliquez insérer > Moduleet collez la macro suivante dans la fenêtre Module.
     Function FindN(sFindWhat As String, _
    sInputString As String, N As Integer) As Integer
    'Updateby Extendoffice
    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
  3. Ensuite, fermez la fenêtre VBA. Revenez à la feuille de calcul, entrez la formule suivante dans une cellule, puis faites glisser la poignée de remplissage vers le bas pour remplir la formule dans d'autres cellules, voir capture d'écran :
    =FindN("-",A2,3)

  4. Articles connexes:

    • Compter le nombre d'occurrences d'un mot dans une colonne
    • Si vous avez une colonne de données qui comprend des valeurs en double comme illustré ci-dessous, et que vous voulez maintenant compter le nombre d'occurrences d'un mot spécifique dans cette colonne. Maintenant, avec ce tutoriel, je présente quelques astuces pour le résoudre rapidement dans Excel.
    • Extraire un nième caractère d'une chaîne
    • En général, vous souhaiterez peut-être extraire la chaîne après un caractère spécifique, mais dans ce cas, je souhaite extraire le nième caractère d'une chaîne comme illustré ci-dessous.
    • Extraire les n premiers/derniers caractères de la chaîne
    • Par exemple, il existe une liste avec de longues chaînes dans chaque cellule et vous souhaitez extraire les n premiers caractères de chaque chaîne uniquement, comme les 3 premiers caractères de chaque chaîne, et vous pouvez maintenant utiliser les méthodes suivantes pour le résoudre dans Excel .

Meilleurs outils de productivité bureautique

🤖 Aide à l'IA Kutools: Révolutionner l'analyse des données en s'appuyant sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les fonctions Kutools...
Caractéristiques populaires: Rechercher, mettre en évidence ou identifier les doublons   |  Supprimer les lignes vides   |  Combinez des colonnes ou des cellules sans perdre de données   |   Tour sans formule 
Super recherche: VSearchup à critères multiples    VSearch à valeurs multiples  |   Recherche virtuelle sur plusieurs feuilles   |   Recherche floue ....
Liste déroulante avancée: Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple ....
Gestionnaire de colonnes: Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages et les colonnes 
Caractéristiques en vedette: Mise au point de la grille   |  Voir Design   |   Grande barre de formule    Gestionnaire de classeurs et de feuilles   |  Centre de ressources (Texte automatique)   |  Sélecteur de date   |  Combiner des feuilles de travail   |  Crypter/déchiffrer les cellules    Envoyer des e-mails par liste   |  Super filtre   |   Filtre spécial (filtre gras/italique/barré...) ...
Les 15 meilleurs ensembles d'outils12 Texte Outils (Ajouter du texte, Supprimer les caractères, ...)   |   50+ Graphique Types (Diagramme de Gantt, ...)   |   40+ Pratique Formules (Calculer l'âge en fonction de l'anniversaire, ...)   |   19 Insertion Outils (Insérer le code QR, Insérer une image à partir du chemin, ...)   |   12 Conversion Outils (Nombres en mots, Conversion des devises, ...)   |   7 Fusionner et fractionner Outils (Lignes de combinaison avancées, Cellules divisés, ...)   |   ... et plus

Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...

Description


Office Tab apporte une interface à onglets à Office et facilite grandement 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!
Comments (28)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Your formula to find the Nth occurrence of a character in a string does not work. Using your example, adding 2 to the results of the imbedded find ensures a starting position for the initial find of a position beyond the 1st two c's but changing the +2 to +3 does not yield the position of the 4th "c", it simply starts the search one character deeper into the string and the result is still the 3rd "c". To find the 4th "c" the search must begin beyond the position of the 3rd "c". I look forward to your new solution.
This comment was minimized by the moderator on the site
Hello, David

Yes, as you said, the first formula does not work correctly, you can apply the second formula:
=FIND(CHAR(1),SUBSTITUTE(A2,"c",CHAR(1),2))

Note: The number "2" in the formula means the second "c", if you want to get the third, fourth "c", just change the number 2 to 3,4 as you need.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
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.
This comment was minimized by the moderator on the site
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))
This comment was minimized by the moderator on the site
"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))
This comment was minimized by the moderator on the site
Excellent! I am glad I scrolled up to review other comments after posting my own.
This comment was minimized by the moderator on the site
This is the correct answer! please replace this whole article with this one line of code.....
This comment was minimized by the moderator on the site
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...
This comment was minimized by the moderator on the site
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.
This comment was minimized by the moderator on the site
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.
This comment was minimized by the moderator on the site
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!
This comment was minimized by the moderator on the site
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
This comment was minimized by the moderator on the site
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.
This comment was minimized by the moderator on the site
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"
This comment was minimized by the moderator on the site
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.
This comment was minimized by the moderator on the site
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
This comment was minimized by the moderator on the site
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).
This comment was minimized by the moderator on the 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) where "c" is the character required and 2 is the position. Note this is an array formula.
This comment was minimized by the moderator on the 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)
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations