Table des matières
Dans les derniers articles, nous avons abordé différentes fonctions Texte - celles qui sont utilisées pour manipuler les chaînes de texte. Aujourd'hui, nous nous concentrons sur la fonction DROITE, qui est conçue pour renvoyer un nombre spécifié de caractères du côté le plus à droite d'une chaîne de caractères. Comme les autres fonctions Texte d'Excel, DROITE est très simple et directe, néanmoins elle a quelques utilisations non évidentes qui pourraient s'avérer utiles dans les cas suivantsvotre travail.
Syntaxe de la fonction DROITE d'Excel
La fonction DROITE d'Excel renvoie le nombre de caractères spécifié à partir de la fin d'une chaîne de texte.
La syntaxe de la fonction DROIT est la suivante :
RIGHT(texte, [num_chars])Où :
- Texte (obligatoire) - la chaîne de texte dont vous voulez extraire les caractères.
- Num_chars (facultatif) - le nombre de caractères à extraire, en commençant par le caractère le plus à droite.
- Si nombre_de_chars est omis, 1 dernier caractère de la chaîne est retourné (par défaut).
- Si nombre_de_chars est supérieur au nombre total de caractères de la chaîne, tous les caractères sont retournés.
- Si nombre_de_chars est un nombre négatif, une formule de droite renvoie l'erreur #VALUE !
Par exemple, pour extraire les 3 derniers caractères de la chaîne de caractères de la cellule A2, utilisez cette formule :
=RIGHT(A2, 3)
Le résultat pourrait ressembler à ceci :
Remarque importante : la fonction DROITE d'Excel renvoie toujours une valeur chaîne de texte Pour forcer une formule Right à produire un nombre, utilisez-la en combinaison avec la fonction VALUE, comme le montre cet exemple.
Comment utiliser la fonction DROIT dans Excel - exemples de formules
Dans les feuilles de calcul réelles, la fonction DROIT d'Excel est rarement utilisée seule. Dans la plupart des cas, vous l'utiliserez avec d'autres fonctions Excel dans le cadre de formules plus complexes.
Comment obtenir une sous-chaîne qui vient après un certain caractère ?
Si vous souhaitez extraire une sous-chaîne qui suit un caractère spécifique, utilisez la fonction SEARCH ou FIND pour déterminer la position de ce caractère, soustrayez cette position de la longueur totale de la chaîne renvoyée par la fonction LEN, et extrayez ce nombre de caractères du côté le plus à droite de la chaîne d'origine.
DROIT( chaîne de caractères , LEN( chaîne de caractères ) - SEARCH( caractère , chaîne de caractères ))Imaginons que la cellule A2 contienne le prénom et le nom de famille séparés par un espace, et que vous souhaitiez transférer le nom de famille dans une autre cellule : reprenez la formule générique ci-dessus et mettez A2 à la place de chaîne de caractères et " " (espace) au lieu de caractère :
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
La formule donnera le résultat suivant :
De la même manière, vous pouvez obtenir une sous-chaîne qui suit n'importe quel autre caractère, par exemple une virgule, un point-virgule, un trait d'union, etc. Par exemple, pour extraire une sous-chaîne qui suit un trait d'union, utilisez cette formule :
=RIGHT(A2,LEN(A2)-SEARCH("-",A2))
Le résultat ressemblera à ceci :
Comment extraire une sous-chaîne après la dernière occurrence du délimiteur ?
Lorsque vous traitez des chaînes de caractères complexes contenant plusieurs occurrences d'un même délimiteur, vous pouvez souvent avoir besoin de récupérer le texte à droite de la dernière occurrence du délimiteur. Pour faciliter la compréhension, examinez les données source et le résultat souhaité suivants :
Comme vous pouvez le voir dans la capture d'écran ci-dessus, la colonne A contient une liste d'erreurs. Votre objectif est d'extraire la description de l'erreur qui vient après le dernier deux-points dans chaque chaîne. Une complication supplémentaire est que les chaînes d'origine peuvent contenir différents nombres d'instances de délimiteurs, par exemple A3 contient 3 deux-points alors que A5 n'en contient qu'un seul.
La clé pour trouver une solution est de déterminer la position du dernier délimiteur dans la chaîne source (la dernière occurrence d'un deux-points dans cet exemple). Pour ce faire, vous devrez utiliser une poignée de fonctions différentes :
- Obtenir le nombre de délimiteurs dans la chaîne originale. C'est une partie facile :
- Tout d'abord, vous calculez la longueur totale de la chaîne de caractères en utilisant la fonction LEN : LEN(A2)
- Ensuite, vous calculez la longueur de la chaîne sans délimiteurs en utilisant la fonction SUBSTITUTE qui remplace toutes les occurrences d'un deux-points par rien : LEN(SUBSTITUTE(A2," :",""))
- Enfin, vous soustrayez la longueur de la chaîne originale sans délimiteurs de la longueur totale de la chaîne : LEN(A2)-LEN(SUBSTITUTE(A2, " :",""))
Pour vous assurer que la formule fonctionne correctement, vous pouvez la saisir dans une cellule distincte, et le résultat sera 2, soit le nombre de deux points dans la cellule A2.
- Remplacer le dernier délimiteur par un caractère unique. Afin d'extraire le texte qui suit le dernier délimiteur dans la chaîne, nous devons "marquer" cette dernière occurrence du délimiteur d'une manière ou d'une autre. Pour cela, remplaçons la dernière occurrence d'un deux-points par un caractère qui n'apparaît nulle part dans les chaînes originales, par exemple par un dièse (#).
Si vous êtes familier avec la syntaxe de la fonction SUBSTITUTE d'Excel, vous vous souvenez peut-être qu'elle possède le 4ème argument optionnel (instance_num) qui permet de remplacer uniquement une occurrence spécifique du caractère spécifié. Et puisque nous avons déjà calculé le nombre de délimiteurs dans la chaîne, il suffit de fournir la fonction ci-dessus dans le quatrième argument d'une autre fonction SUBSTITUTE :
=SUBSTITUER(A2," :", "#",LEN(A2)-LEN(SUBSTITUTE(A2," :",""))))
Si vous placez cette formule dans une cellule séparée, elle renverra cette chaîne : ERROR:432#Connexion expirée
- Obtenez la position du dernier délimiteur dans la chaîne. Selon le caractère par lequel vous avez remplacé le dernier délimiteur, utilisez soit le SEARCH insensible à la casse, soit le FIND sensible à la casse pour déterminer la position de ce caractère dans la chaîne. Nous avons remplacé les deux-points par le signe #, nous utilisons donc la formule suivante pour trouver sa position :
=SEARCH("#", SUBSTITUTE(A2, " :", "#",LEN(A2)-LEN(SUBSTITUTE(A2, " :", ""))))
Dans cet exemple, la formule renvoie 10, qui est la position de # dans la chaîne remplacée.
- Renvoie une sous-chaîne à droite du dernier délimiteur. Maintenant que vous connaissez la position du dernier délimiteur dans une chaîne de caractères, tout ce que vous avez à faire est de soustraire ce nombre de la longueur totale de la chaîne, et de demander à la fonction DROIT de renvoyer ce nombre de caractères à partir de la fin de la chaîne originale :
=RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2," :","$",LEN(A2)-LEN(SUBSTITUTE(A2," :","")))))
Comme le montre la capture d'écran ci-dessous, la formule fonctionne parfaitement :
Si vous travaillez avec un grand ensemble de données où différentes cellules peuvent contenir des délimiteurs différents, vous voudrez peut-être inclure la formule ci-dessus dans la fonction IFERROR pour éviter d'éventuelles erreurs :
=IFERROR(RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2," :","$",LEN(A2)-LEN(SUBSTITUTE(A2," :",""))))), A2)
Si une certaine chaîne ne contient pas une seule occurrence du délimiteur spécifié, la chaîne originale sera retournée, comme à la ligne 6 de la capture d'écran ci-dessous :
Comment supprimer les N premiers caractères d'une chaîne de caractères ?
Outre l'extraction d'une sous-chaîne à la fin d'une chaîne, la fonction DROITE d'Excel s'avère utile dans les situations où vous souhaitez supprimer un certain nombre de caractères du début de la chaîne.
Dans l'ensemble de données utilisé dans l'exemple précédent, vous voudrez peut-être supprimer le mot "ERREUR" qui apparaît au début de chaque chaîne et ne laisser que le numéro et la description de l'erreur. Pour ce faire, soustrayez le nombre de caractères à supprimer de la longueur totale de la chaîne, et fournissez ce nombre à la commande nombre_de_chars de la fonction Excel RIGHT :
DROIT( chaîne de caractères , LEN( chaîne de caractères )- nombre_de_chiffres_à_supprimer )Dans cet exemple, nous supprimons les 6 premiers caractères (5 lettres et un deux-points) de la chaîne de texte en A2, de sorte que notre formule est la suivante :
=DROITE(A2, LEN(A2)-6)
La fonction DROITE d'Excel peut-elle retourner un nombre ?
Comme nous l'avons mentionné au début de ce tutoriel, la fonction DROITE d'Excel renvoie toujours une chaîne de texte, même si la valeur d'origine est un nombre. Mais que se passe-t-il si vous travaillez avec un ensemble de données numériques et que vous souhaitez que la sortie soit également numérique ? Une solution simple consiste à imbriquer une formule DROITE dans la fonction VALUE, qui est spécialement conçue pour convertir une chaîne représentant un nombre en un nombre.
Par exemple, pour extraire les 5 derniers caractères (code postal) de la chaîne en A2 et convertir les caractères extraits en un nombre, utilisez cette formule :
=VALEUR(DROITE(A2, 5))
La capture d'écran ci-dessous montre le résultat - veuillez noter l'alignement à droite des chiffres dans la colonne B, par opposition aux chaînes de texte alignées à gauche dans la colonne A :
Pourquoi la fonction DROIT ne fonctionne-t-elle pas avec les dates ?
Étant donné que la fonction DROITE d'Excel est conçue pour travailler avec des chaînes de texte alors que les dates sont représentées par des nombres dans le système interne d'Excel, une formule Droite est incapable de récupérer une partie individuelle d'une date telle que le jour, le mois ou l'année. Si vous essayez de le faire, tout ce que vous obtiendrez sera les quelques derniers chiffres du nombre représentant une date.
Supposons que vous ayez la date 18-Jan-2017 dans la cellule A1. Si vous essayez d'extraire l'année avec la formule RIGHT(A1,4), le résultat sera 2753, soit les 4 derniers chiffres du nombre 42753 qui représente le 18 janvier 2017 dans le système Excel.
"Alors, comment puis-je récupérer une certaine partie d'une date ?", me demanderez-vous peut-être. En utilisant l'une des fonctions suivantes :
- Fonction DAY pour extraire un jour : =DAY(A1)
- Fonction MONTH pour obtenir un mois : =MONTH(A1)
- Fonction YEAR pour extraire une année : =YEAR(A1)
La capture d'écran suivante montre les résultats :
Si votre les dates sont représentées par des chaînes de texte Ce qui est souvent le cas lorsque vous exportez des données d'une source externe, rien ne vous empêche d'utiliser la fonction DROITE pour extraire les derniers caractères de la chaîne qui représentent une certaine partie de la date :
La fonction DROIT d'Excel ne fonctionne pas - raisons et solutions
Si une formule de droite ne fonctionne pas correctement dans votre feuille de calcul, il est fort probable que ce soit pour l'une des raisons suivantes :
- Il y a un ou plusieurs espaces résiduels Pour supprimer rapidement les espaces supplémentaires dans les cellules, utilisez la fonction TRIM d'Excel ou le module complémentaire Cell Cleaner.
- Le site nombre_de_chars L'argument est moins de zéro Bien sûr, vous ne voudrez pas mettre volontairement un nombre négatif dans votre formule, mais si le nombre d'heures de travail est supérieur à 1 000, vous pouvez le faire. nombre_de_chars est calculé par une autre fonction Excel ou une combinaison de différentes fonctions et que votre formule de droite renvoie l'erreur #VALEUR !, assurez-vous de vérifier que la ou les fonctions imbriquées ne présentent pas d'erreurs.
- La valeur originale est un date Si vous avez suivi ce tutoriel de près, vous savez déjà pourquoi la fonction DROITE ne fonctionne pas avec les dates. Si vous avez sauté la section précédente, vous trouverez tous les détails dans Pourquoi la fonction DROITE d'Excel ne fonctionne pas avec les dates.
C'est ainsi que vous utilisez la fonction DROITE dans Excel. Pour voir de plus près les formules abordées dans ce tutoriel, nous vous invitons à télécharger notre classeur type ci-dessous. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine.
Téléchargements disponibles
Fonction DROIT d'Excel - exemples (fichier .xlsx)