RECHERCHE Fx - Trouver une sous-chaîne dans une chaîne - Feuilles Excel, VBA et G

Télécharger un exemple de classeur

Téléchargez l'exemple de classeur

Ce tutoriel montre comment utiliser le Fonction de recherche Excel dans Excel pour localiser la position du texte dans une cellule.

Aperçu de la fonction RECHERCHE

La fonction SEARCH Recherche un caractère ou une chaîne de texte et renvoie sa position dans la cellule. Pas sensible à la casse.

Pour utiliser la fonction RECHERCHE de feuille de calcul Excel, sélectionnez une cellule et tapez :

(Remarquez comment les entrées de formule apparaissent)

Fonction de recherche Syntaxe et entrées :

=RECHERCHE(trouver_texte,dans_texte,numéro_début)

find_text - La chaîne de texte que vous souhaitez rechercher.

dans_texte - La chaîne de texte d'origine.

num_départ - OPTIONNEL. Le numéro de caractère à partir duquel lancer la recherche. Remarque : Cela ne modifie que la plage de recherche, cela n'affectera pas le nombre renvoyé lorsqu'une correspondance est trouvée. Exemple : la recherche de « s » dans la chaîne « suns » renverra 1 par défaut, mais si start_num est défini sur 2, il renverra 4.

Qu'est-ce que la fonction RECHERCHE ?

La fonction Excel SEARCH « recherche » une chaîne de texte dans une autre chaîne. Si le texte est trouvé, SEARCH renvoie la position numérique de la chaîne.

RECHERCHE n'est PAS sensible à la casse. Cela signifie que « texte » correspondra à « TEXTE ». Pour rechercher du texte sensible à la casse, utilisez plutôt la fonction FIND <>.

Comment utiliser la fonction RECHERCHE

La fonction de recherche Excel fonctionne de la manière suivante :

=RECHERCHE("e", "éléphant")

Ici, Excel renverra 1, puisque « e » est le premier caractère de « éléphant ».

Vous trouverez ci-dessous quelques autres exemples.

Numéro de départ (start_num)

Facultativement, vous pouvez définir un numéro de départ (start_num). start_num indique à la fonction SEARCH où commencer la recherche. Si vous le laissez vide, la recherche commencera au premier caractère.

=RECHERCHE(B3,C3)

Maintenant, définissons start_num à 2, ce qui signifie que SEARCH commencera à chercher à partir du deuxième caractère.

=RECHERCHE(B3,C3,D3)

Dans ce cas, SEARCH renvoie 3 : la position du deuxième « e ».

Important : start_num n'a aucun impact sur la valeur de retour, SEARCH commencera toujours à compter avec le premier caractère.

Erreurs de numéro de départ (start_num)

Si vous utilisez un numéro de départ, assurez-vous qu'il s'agit d'un nombre entier positif qui est plus petit que la longueur de la chaîne que vous souhaitez rechercher, sinon vous obtiendrez une erreur. Vous obtiendrez également une erreur si vous transmettez une cellule vide comme numéro de départ :

=RECHERCHE(B3,C3,D3)

Les recherches infructueuses renvoient une #VALUE ! Erreur

Si SEARCH ne trouve pas la valeur de recherche, Excel renverra une #VALUE ! Erreur.

Recherche insensible à la casse

L'exemple ci-dessous montre que la fonction SEARCH est insensible à la casse. Nous avons recherché « abc », mais SEARCH a renvoyé 1, car il correspondait à « ABC ».

Recherche de caractères génériques

Vous pouvez utiliser des caractères génériques avec SEARCH, qui vous permettent de rechercher des caractères non spécifiés.

Un point d'interrogation dans votre texte de recherche signifie « n'importe quel caractère ». Ainsi, « ?000 » dans l'exemple ci-dessous signifie « Recherchez n'importe quel caractère suivi de trois zéros ».

Un astérisque signifie "n'importe quel nombre de caractères inconnus". Ici, nous recherchons "1*C", et SEARCH renvoie 2 car il correspond à "1-ABC".

Dans l'exemple suivant, nous recherchons « 000 ? » - c'est-à-dire « 000 » suivi de n'importe quel caractère. Nous avons "000", mais c'est à la fin de la chaîne, et n'est donc suivi d'aucun caractère, donc nous obtenons une erreur

Cependant, si nous avons utilisé un astérisque au lieu d'un point d'interrogation - donc « 000* » au lieu de « 000 ? », nous obtenons une correspondance. En effet, l'astérisque signifie "n'importe quel nombre de caractères" - y compris aucun caractère.

Comment séparer les prénoms et les noms d'une cellule avec SEARCH

Si vous avez un prénom et un nom dans la même cellule et que vous souhaitez leur attribuer une cellule chacun, vous pouvez utiliser RECHERCHE pour cela, mais vous devrez également utiliser quelques autres fonctions.

Obtenir le prénom

La fonction GAUCHE Excel renvoie un certain nombre de caractères d'une chaîne, en partant de la gauche.

Si nous utilisons SEARCH pour renvoyer la position de l'espace entre le prénom et le nom, soustrayez 1 de cela, nous savons combien de temps le prénom est. Ensuite, nous pouvons simplement passer cela à GAUCHE.

La formule du prénom est :

=GAUCHE(B3,RECHERCHE(““,B3)-1)

Obtenir le nom de famille

La fonction RIGHT Excel renvoie un certain nombre de caractères à partir de la droite d'une chaîne.

Pour obtenir un nombre de caractères égal à la longueur du nom de famille, nous utilisons SEARCH pour nous indiquer la position de l'espace, puis soustrayons ce nombre de la longueur totale de la chaîne - que nous pouvons obtenir avec LEN.

La formule du nom de famille est :

=DROITE(B3,LEN(B3)-RECHERCHE(““,B3))

Notez que si vos données de nom contiennent des deuxièmes prénoms, le deuxième prénom sera divisé dans la cellule « Nom de famille ».

Utilisation de SEARCH pour renvoyer le nième caractère d'une chaîne

Comme indiqué ci-dessus, SEARCH renvoie la position de la première correspondance trouvée. Mais en le combinant avec CHAR et SUBSTITUTE, nous pouvons l'utiliser pour localiser les occurrences ultérieures d'un caractère, telles que la deuxième ou la troisième occurrence.

Voici la formule :

=RECHERCHE(CAR(134),REMPLACER(D3,C3,CAR(134),B3))

Cela peut sembler un peu compliqué au début, alors décomposons-le :

  • Nous utilisons SEARCH et la chaîne que nous recherchons est "CHAR(134)". CHAR renvoie un caractère basé sur son code ASCII. CHAR (134) est un symbole de poignard - vous pouvez utiliser n'importe quoi ici tant qu'il n'apparaît pas dans votre chaîne réelle.
  • SUBSTITUTE parcourt une chaîne et remplace un caractère ou une sous-chaîne par un autre. Ici, nous remplaçons la chaîne que nous voulons trouver (qui est en C3) par CHAR(134). La raison pour laquelle cela fonctionne est que le quatrième paramètre de SUBSTITUTE est le numéro d'instance, que nous avons stocké dans B3.
  • Ainsi, SUBSTITUTE remplace le nième caractère de la chaîne par le symbole du poignard, puis SEARCH renvoie la position de celui-ci.

Voici à quoi cela ressemble :

Trouver la section médiane d'une chaîne

Imaginez que vous ayez plusieurs numéros de série au format suivant :

AB1XCDC-1BB/BB99

On vous a demandé de retirer la partie centrale de chacun. Plutôt que de le faire à la main, vous pouvez combiner SEARCH avec MID pour automatiser cette tâche.

La fonction Excel MID renvoie une partie d'une chaîne. Ses entrées sont une chaîne de texte, un point de départ et un certain nombre de caractères.

Puisque le point de départ que nous voulons est le caractère après le trait d'union, nous pouvons utiliser SEARCH pour obtenir la position du trait d'union et y ajouter 1. Si le numéro de série était en B3, nous utiliserions :

=RECHERCHE("-",B3)+1

Pour obtenir le nombre de caractères que nous voulons extraire d'ici, nous pouvons utiliser la recherche pour obtenir la position de la barre oblique, soustraire la position du trait d'union, puis soustraire 1 afin de s'assurer que nous ne renvoyons pas la barre oblique elle-même :

=RECHERCHE("/",B3)-RECHERCHE("-",B3)-1

Ensuite, nous branchons simplement ces deux formules dans MID :

RECHERCHER Vs TROUVER

SEARCH et FIND sont des fonctions similaires. Ils renvoient tous les deux la position d'un caractère ou d'une sous-chaîne donné dans une autre chaîne. Cependant, il existe deux différences essentielles :

  • FIND est sensible à la casse mais SEARCH ne l'est pas
  • FIND n'autorise pas les caractères génériques, mais SEARCH le fait

Vous pouvez voir quelques exemples de ces différences ci-dessous :

RECHERCHER dans Google Sheets

La fonction RECHERCHE fonctionne exactement de la même manière dans Google Sheets que dans Excel :

Notes complémentaires

La fonction SEARCH est une version non sensible à la casse de la fonction FIND. SEARCH prend également en charge les caractères génériques. Trouver ne le fait pas.

RECHERCHE Exemples en VBA

Vous pouvez également utiliser la fonction RECHERCHE dans VBA. Taper:
application.worksheetfunction.search(find_text,within_text,start_num)
Pour les arguments de la fonction (find_text, etc.), vous pouvez soit les entrer directement dans la fonction, soit définir des variables à utiliser à la place.

Revenir à la liste de toutes les fonctions dans Excel

wave wave wave wave wave