DROITE() - GAUCHE() : Extraire les premiers ou derniers caractères d'une chaîne.
Publié par Mth le 12-09-2009 (490175 lectures)
Les fonctions DROITE() et GAUCHE() permettent d'extraire les premiers ou les derniers caractères d'une chaîne suivant la longueur indiquée dans la fonction.
Syntaxe:
DROITE(texte; nombre de caractères)
- texte est la chaîne de texte ou la référence à une cellule dont on veut extraire les derniers caractères.
- Nombre de caractères indique le nombre de caractères à extraire.
GAUCHE(texte; nombre de caractères)
- texte est la chaîne de texte ou la référence à une cellule dont on veut extraire les premiers caractères.
- Nombre de caractères indique le nombre de caractères à extraire.
Exemples
Dans cet exemple nous disposons d'une liste de salariés, dont nous souhaitons extraire les cinq premiers caractères à gauche représentant le matricule :
Le tableau suivant nous présente une liste de pièces comptables, chèques ou virements, toutes ces pièces sont codifiées de la même manière; dans la colonne B nous voulons extraire leur numéro, uniquement pour les chèques:
Notre formule effectue le calcul suivant: si les 3 premiers caractères de la cellule en colonne A - soit GAUCHE(A5;3) - commencent par "chq" (noté entre guillemets car ce libellé est du texte), alors nous prenons les 7 derniers caractères de cette cellule - soit DROITE(A5;7) - , si non nous laissons la cellule de la colonne B à vide (noté avec deux guillemets "" l'un à coté de l'autre).
A noter :
• Nous observons dans cet exemple que le résultat renvoyé est aligné à gauche, cela signifie que la fonction GAUCHE(), tout comme la fonction DROITE(), renvoient un résultat sous forme de texte, même s'il s'agit d'une suite de nombres.
• Nous observons dans cet exemple que le résultat renvoyé est aligné à gauche, cela signifie que la fonction GAUCHE(), tout comme la fonction DROITE(), renvoient un résultat sous forme de texte, même s'il s'agit d'une suite de nombres.
Si nous devions effectuer des opérations sur ce résultat, il faudrait alors le transformer en numérique.
Pour cela il convient d'encadrer notre formule par la fonction CNUM() qui permet de transformer une chaîne de nombres en format numérique:
Formule :
=
CNUM(SI(GAUCHE(A5;3)="chq";DROITE(A5;7);""))
• Par ailleurs, les fonctions DROITE() et GAUCHE() renvoient #VALEUR! si le nombre de caractères à extraire est négatif (par exemple GAUCHE(A1;-2) renvoie #VALEUR!), elles renvoient une chaîne vide si le nombre de caractères à traiter est zéro; et elles ne renvoient pas de chaîne plus longues que le texte à traiter (pas exemple DROITE("Bonjour";25) renverra une chaîne de 7 caractères et pas 25)
Astuce
Pour transformer notre résultat en numérique, nous pouvons aussi le multiplier par 1:
Formule :
=
SI(GAUCHE(A5;3)="chq";DROITE(A5;7);"")*1
Combinées avec d'autres fonctions textes, les fonctions DROITE() et GAUCHE() permettent d'aller encore plus loin dans la manipulation des données, afin d'extraire des chaînes de longueur variable, ou en plein milieu d'une autre chaîne de caractères, ou à partir d'un caractère particulier, etc.
Pour voir d'autres exemples et vous entraîner à utiliser les fonctions DROITE() et GAUCHE(), le fichier Excel qui accompagne cet article vous présente quelques exercices corrigés.
Extrait du fichier d'exercices: