Récupérer une sous-chaîne de caractères dans un tableur

Fonctions de base

Les fonctions STXT, GAUCHE, DROITE, SUBSTITUE peuvent convenir selon le besoin.

STXT

Cette fonction permet d’extraire une sous-chaîne d’un texte. Les paramètres indiquent le point de départ et le nombre de caractères.

Syntaxe

STXT(cellule;début;nombre)

  • Cellule est l’adresse de la cellule contenant le texte dans lequel on veut extraire une chaîne ;
  • début est la position du premier caractère dans le texte à extraire ;
  • nombre spécifie le nombre de caractères à extraire.

Exemple

=STXT(C3;2;3) vaut « arc » si C3 contient « marcher ».

GAUCHE

Cette fonction récupère les premiers caractères d’un texte.

Syntaxe

GAUCHE(cellule;nombre)

  • Cellule est l’adresse de la cellule contenant le texte ;
  • nombre (facultatif) indique le nombre de caractères du texte extrait. Si ce paramètre n’est pas défini, un seul caractère est renvoyé.

Exemple

=GAUCHE(D2;3) vaut « Bon » si D2 contient « Bonjour ».

DROITE

Cette fonction permet d’extraire les derniers caractères d’un texte.

Syntaxe

DROITE(cellule;nombre)

  • Cellule est l’adresse de la cellule contenant le texte ;
  • nombre (facultatif) est le nombre de caractères de la partie à droite du texte. Si ce paramètre n’est pas défini, un seul caractère est renvoyé.

Exemple

=DROITE(D2;4) vaut « jour » si D2 contient « Bonjour ».

SUBSTITUE

Remplace l’ancien texte par le nouveau texte dans une chaîne.

Syntaxe

SUBSTITUE("Texte";"Texte_cherché";"Nouveau_texte";occurrence)

  • Texte est le texte dans lequel le segment de texte doit être échangé.
  • Texte_cherché est le segment de texte qui doit être remplacé (un certain nombre de fois).
  • Nouveau_texte est le texte qui doit remplacer le segment de texte.
  • occurrence (facultatif) indique quelle occurrence du texte recherché doit être remplacée. Si ce paramètre est manquant, le texte recherché est remplacé partout.

Exemples

=SUBSTITUE("123123123";"3";"abc") renvoie 12abc12abc12abc.

=SUBSTITUE("123123123";"3";"abc";2) renvoie 12312abc123.

Chaîne de longueur variable

On a parfois besoin d’extraire le début d’une chaîne de caractères de longueur variable, mais où la chaîne à supprimer est de longueur constante.

Par exemple on a une liste d’adresses courriels de même domaine et on veut ne garder que la partie qui précède le @.

Exemple

=GAUCHE(B2;NBCAR(B2)-12) vaut « prenom.nom » si B2 contient « prenom.nom@monmail.com », la chaîne « @monmail.com » ayant 12 caractères.

Pour cet exemple, on aurait aussi pu utiliser la fonction SUBSTITUE si le domaine est toujours le même.

=SUBSTITUE(B2;"@monmail.com";"") vaut « prenom.nom » si B2 contient « prenom.nom@monmail.com »

Découper grâce à un caractère séparateur

On peut avoir besoin de récupérer une sous-chaîne dans une chaîne où toutes les longueurs sont variables, mais où les différentes sous-chaînes sont séparées par un caractère constant.

Par exemple extraire des noms et prénoms dans des adresses courriels qui sont toutes de la forme prenom.nom@domaine.com.

Exemples

=GAUCHE(B2;CHERCHE("\.";B2;1)-1) vaut « prenom » si B2 contient « prenom.nom@monmail.com ». En effet la fonction CHERCHE va trouver la position du caractère séparateur ici le point et il suffira de prendre tous les caractères avant cette position, d’où le -1. Le caractère . (point) est spécial et il faut le faire précéder du caractère \ (Alt Gr + 8 ) [EDIT du 12/10/2022 sous Ubuntu, mais pas sous Windows].

=GAUCHE(B2;CHERCHE("@";B2;1)-1) vaut « prenom.nom » si B2 contient « prenom.nom@monmail.com ».

=STXT(B2;CHERCHE("\.";B2)+1;CHERCHE("@";B2)-CHERCHE("\.";B2)-1)vaut « nom » si B2 contient « prenom.nom@monmail.com ».

Sources