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

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éeplus
  • 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 gammesplus
  • 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 cellulesplus
  • 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 PDFplus
  • 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

 

Commentaires (28)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Trouver la Formule 1 ne fonctionnera pas. Le troisième paramètre de la fonction Find est l'index où la recherche doit commencer (comme dans : les x premiers caractères de la chaîne sont ignorés). c'est-à-dire que si une chaîne contient la lettre c aux indices 1, 5 et 10, les résultats sont les suivants : =FIND("c",A1,1) trouvera le premier c =FIND("c",A1,2) à = FIND("c",A1,5) trouvera le deuxième c =FIND("c",A1,6) à =FIND("c",A1,10) trouvera le troisième c. tout ce qui précède ne trouvera rien.
Ce commentaire a été minimisé par le modérateur sur le site
Merci d'avoir découvert cette erreur, je suis désolé que la formule1 soit fausse, la bonne formule devrait être = TROUVER ("c", A1, TROUVER ("c", A1) +2) , et si vous voulez trouver la première lettre "c", il vous suffit de changer le 2 en 0.
Ce commentaire a été minimisé par le modérateur sur le site
Comme DdW l'indique, le '+2' ou '+0' ou ce que vous avez est une position de caractère 'codée en dur' ; il faudrait déjà savoir où se trouve le "c" pour le trouver. La formule 2 est parfaite, cependant : REMPLACEZ la nième instance de votre chaîne cible par un caractère unique qui n'apparaîtra pas autrement dans le reste du texte, puis TROUVER ce caractère unique.
Ce commentaire a été minimisé par le modérateur sur le site
Je suis capable de trouver la deuxième instance, mais qu'en est-il des 3e, 4e et 'n'ième. Je ne suis pas en mesure d'obtenir la 3ème instance (ainsi que la 4ème). J'ai des données qui contiennent 50 à 60 instances. donc qu'est ce que je devrais faire?
Ce commentaire a été minimisé par le modérateur sur le site
sanjeev, comme je l'ai dit il y a deux ans, utilisez la formule 2 : =FIND(CHAR(1),SUBSTITUTE("LOOK_IN","LOOK_FOR",CHAR(1),INST_NUM)) Où LOOK_IN est la chaîne (ou la cellule) que vous recherche dans ; LOOK_FOR est la chaîne que vous recherchez ; et INST_NUM est l'instance entière de LOOK_FOR que vous souhaitez identifier. Par conséquent, =FIND(CHAR(1),SUBSTITUTE("HELLO WORLD","L",CHAR(1),3) renverra 10 (la position du troisième "L").
Ce commentaire a été minimisé par le modérateur sur le site
Chers tous, je souhaite sélectionner une chaîne de particules à partir d'une cellule. Exemple : - Mon nom est Mohit. Je souhaite renvoyer n'importe quelle valeur. Comme mohit, c'est Nom, Mon utilisation d'une fonction. y a-t-il une fonction ou non
Ce commentaire a été minimisé par le modérateur sur le site
Je pense qu'il n'y a pas de fonction spécifique pour cela, car Excel n'est pas conçu pour gérer des listes de valeurs dans une cellule. Vous pouvez construire la fonction vous-même en combinant les fonctions mentionnées ci-dessus avec LEFT() et RIGHT(). Ou vous pouvez utiliser VBscripting bien sûr.
Ce commentaire a été minimisé par le modérateur sur le site
Après avoir joué un peu, j'ai obtenu ce qui suit pour trouver la troisième instance de X et renvoyer le numéro de position. =FIND("X",A1,(FIND("X",A1,FIND("X",A1,1)+1))+1) Le module VBA obtient cependant mon vote. Beaucoup plus facile à retenir
Ce commentaire a été minimisé par le modérateur sur le site
Bien sûr, mais vous pouvez imbriquer indéfiniment des formules dans le paramètre "numéro d'instance". La Formule 2 évite VBA, ce qui en fait la meilleure solution globale.
Ce commentaire a été minimisé par le modérateur sur le 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) où "c" est le caractère requis et 2 est le poste. Notez qu'il s'agit d'une formule matricielle.
Ce commentaire a été minimisé par le modérateur sur le 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)
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour à tous, j'ai un texte dans une cellule Excel "23 floyd lane, longville,KN 14564" J'ai besoin d'une fonction pour extraire juste "longville" Merci
Ce commentaire a été minimisé par le modérateur sur le site
Si vous devez utiliser une fonction, essayez : =TRIM(MID(A1,SEARCH(",",A1)+1,SEARCH("!@#",SUBSTITUTE(A1,"","!@#",2 ))-SEARCH(",",A1)-1)) Sinon, vous pouvez envisager Data > Text to Columns > Delimited (en utilisant une virgule comme séparateur).
Ce commentaire a été minimisé par le modérateur sur le site
La formule 1 ne fonctionne pas sur les quatrième, cinquième, sixième, etc. donc (+3,4,5) affichera toujours la troisième position de la lettre "c", qui est la formule de 19 secondes qui fonctionne cependant.
Ce commentaire a été minimisé par le modérateur sur le site
Salut à tous,
J'ai un texte dans une cellule Excel " BY TRANSFER-NEFT*HDHC0065431*N053112345624801*K0038331*krishna--"
J'ai besoin d'une fonction pour extraire juste "N053112345624801"
Ce commentaire a été minimisé par le modérateur sur le site
Salut tout le monde,

J'ai un texte dans une cellule Excel " BY TRANSFER-NEFT*HDFC0000001*N08745987123546*J0032331*KUMAR--"

J'ai besoin d'une fonction pour extraire juste "N08745987123546"

Merci
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, voulez-vous extraire les numéros après Non et le nombre de numéros est fixe ? Si tel est le cas, vous pouvez utiliser Kutools for Exccel's Extract text function, tapez No????pour extraire.
Ce commentaire a été minimisé par le modérateur sur le site
La première formule est complètement inutile et fausse, mais elle fonctionne correctement pour cet exemple car les premier et deuxième "c" sont adjacents. La bonne formule est :


Pour la 2ème occurrence -
= TROUVER ("c", A1, TROUVER ("c", A1) +1)

Pour la 3ème occurrence -
=TROUVER("c",A1,TROUVER("c",A1,TROUVER("c",A1)+1)+1) et ainsi de suite...
Ce commentaire a été minimisé par le modérateur sur le site
La première formule fonctionne correctement dans ma version, dans la note, elle a expliqué comment trouver le troisième ou quatrième ou nième "c".

Remarque : 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.
Ce commentaire a été minimisé par le modérateur sur le site
Essayez de trouver la position du deuxième c avec la première phrase de mon commentaire ci-dessus comme chaîne en utilisant la première formule. Vous saurez à quel point c'est correct!
Ce commentaire a été minimisé par le modérateur sur le site
Tout à fait d'accord. Le +2, ou +3 etc..... dépend entièrement de l'espacement entre les n et (n+1) occurrences de "c". Ainsi, vous devrez ajuster manuellement chaque cellule si vous essayez de copier cette formule dans une colonne par exemple. Essentiellement identique au comptage manuel.


Ex. Essayons de trouver la 4ème occurrence de "c" dans la cellule A1 en utilisant la formule fournie. Selon l'article, nous devrions utiliser +3 dans notre fonction FIND imbriquée pour trouver la 4ème occurrence.


Texte dans la cellule A1 :

"voiture de taxi abc cole cube"

En comptant manuellement, la 4ème occurrence est le "c" dans cole à la position de caractère 13.


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

La fonction imbriquée, FIND("c",A1) trouvera la première occurrence de "c" en position 1.

Par conséquent,

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

Rebrancher cela dans notre formule,

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

Cette nouvelle formule recherchera la première occurrence de "c" à partir de la position de caractère 4. Le 4ème caractère de la chaîne est l'espace juste après cab.

Par conséquent, la formule trouvera le "c" dans car et renverra la valeur de 5 pour notre formule. Comme nous le savons par comptage manuel, nous recherchons 13 comme sortie.
Ce commentaire a été minimisé par le modérateur sur le site
"Remplacer" vous permet de trouver la Nième occurrence d'un terme, alors combinez-la avec "trouver" comme suit (où 5=5ème occurrence) :

= TROUVER (CHAR (1), SUBSTITUT (A1, "c", CHAR (1), 5))
Ce commentaire a été minimisé par le modérateur sur le site
C'est la bonne réponse ! veuillez remplacer tout cet article par cette seule ligne de code .....
Ce commentaire a été minimisé par le modérateur sur le site
Excellent! Je suis content d'avoir fait défiler vers le haut pour revoir les autres commentaires après avoir posté le mien.
Ce commentaire a été minimisé par le modérateur sur le site
Pour gérer l'exception de la formule, vous pouvez utiliser la même chose avec if et iserro
=IF(ISERR(FIND("c",A1,FIND("c",A1)+2)),FIND("c",A1,FIND("c",A1)+0),FIND("c",A1,FIND("c",A1)+2))
Ce commentaire a été minimisé par le modérateur sur le site
Trouver la formule1 est imparfaite. Il sera d'une grande aide s'il est supprimé. J'ai perdu beaucoup de temps à essayer la 4ème occurrence de "a" dans "vedanarayanan" Merci.
Ce commentaire a été minimisé par le modérateur sur le site
Votre formule pour trouver la Nième occurrence d'un caractère dans une chaîne ne fonctionne pas. En utilisant votre exemple, ajouter 2 aux résultats de la recherche intégrée garantit une position de départ pour la recherche initiale d'une position au-delà des deux premiers c, mais changer le +1 en +2 ne donne pas la position du 3ème "c", il commence simplement la recherche un caractère plus loin dans la chaîne et le résultat est toujours le 4ème "c". Pour trouver le 3ème "c", la recherche doit commencer au-delà de la position du 4ème "c". J'attends avec impatience votre nouvelle solution.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour David

Oui, comme vous l'avez dit, la première formule ne fonctionne pas correctement, vous pouvez appliquer la deuxième formule :
=FIND(CHAR(1),SUBSTITUTE(A2,"c",CHAR(1),2))

Notes: Le nombre "2" dans la formule signifie le deuxième "c", si vous voulez obtenir le troisième, quatrième "c", changez simplement le nombre 2 en 3,4 selon vos besoins.
S'il vous plaît essayez, j'espère que cela peut vous aider!
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés