Utilisation des fonctions REPLACE et SUBSTITUTE d'Excel - exemples de formules

  • Partage Ça
Michael Brown

Découvrez comment utiliser la fonction REPLACE avec des chaînes de texte, des chiffres et des dates, et comment imbriquer plusieurs fonctions REPLACE ou SUBSTITUTE dans une formule.

La semaine dernière, nous avons abordé les différentes façons d'utiliser les fonctions FIND et SEARCH dans vos feuilles de calcul Excel. Aujourd'hui, nous allons examiner plus en détail deux autres fonctions permettant de remplacer du texte dans une cellule en fonction de son emplacement ou de substituer une chaîne de texte par une autre en fonction de son contenu. Comme vous l'avez peut-être deviné, je parle des fonctions Excel REPLACE et SUBSTITUTE.

    Fonction REPLACE d'Excel

    La fonction REPLACE d'Excel vous permet de remplacer un ou plusieurs caractères d'une chaîne de texte par un autre caractère ou un ensemble de caractères.

    REPLACE(old_text, start_num, num_chars, new_text)

    Comme vous le voyez, la fonction REPLACE d'Excel possède 4 arguments, tous obligatoires.

    • Vieux_texte - le texte original (ou une référence à une cellule contenant le texte original) dans lequel vous souhaitez remplacer certains caractères.
    • Numéro de départ - la position du premier caractère dans old_text que vous voulez remplacer.
    • Num_chars - le nombre de caractères que vous voulez remplacer.
    • Nouveau_texte - le texte de remplacement.

    Par exemple, pour modifier le mot " soleil " à " fils ", vous pouvez utiliser la formule suivante :

    =REPLACE("sun", 2, 1, "o")

    Et si vous placez le mot original dans une certaine cellule, disons A2, vous pouvez fournir la référence de la cellule correspondante dans l'argument old_text :

    =REPLACE(A2, 2, 1, "o")

    Remarque : si l'argument start_num ou num_chars est négatif ou non numérique, une formule Excel Replace renvoie l'erreur #VALUE !

    Utilisation de la fonction REPLACE d'Excel avec des valeurs numériques

    La fonction REPLACE d'Excel est conçue pour fonctionner avec des chaînes de texte. Bien entendu, vous pouvez l'utiliser pour remplacer des caractères numériques faisant partie d'une chaîne de texte, par exemple :

    =REPLACE(A2, 7, 4, "2016")

    Remarquez que nous mettons "2016" entre guillemets comme vous le faites habituellement avec des valeurs de texte.

    De la même manière, vous pouvez remplacer un ou plusieurs chiffres dans un numéro, par exemple :

    =REPLACE(A4, 4, 4, "6")

    Et là encore, vous devez placer la valeur de remplacement entre guillemets ("6").

    Remarque : une formule REPLACE d'Excel renvoie toujours une valeur de chaîne de texte Dans la capture d'écran ci-dessus, remarquez l'alignement à gauche de la valeur texte renvoyée en B2, et comparez-la au nombre original aligné à droite en A2. Et comme il s'agit d'une valeur texte, vous ne pourrez pas l'utiliser dans d'autres calculs à moins de la reconvertir en nombre, par exemple en la multipliant par 1 ou en utilisant toute autre méthode décrite dans Comment convertir du texte en nombre.

    Utilisation de la fonction REPLACE d'Excel avec des dates

    Comme vous venez de le voir, la fonction REPLACE fonctionne bien avec les nombres, sauf qu'elle renvoie une chaîne de texte :) Sachant que dans le système interne d'Excel, les dates sont stockées sous forme de nombres, vous pouvez essayer d'utiliser certaines formules Replace sur des dates. Les résultats seraient assez embarrassants.

    Par exemple, vous avez une date dans A2, disons 1-Oct-14, et vous voulez changer " Oct " à " Nov "Vous écrivez donc la formule REPLACE(A2, 4, 3, "Nov") qui demande à Excel de remplacer 3 caractères dans les cellules A2 en commençant par le 4ème caractère... et vous obtenez le résultat suivant :

    Pourquoi ? Parce que "01-Oct-14" n'est qu'une représentation visuelle du numéro de série sous-jacent (41913) qui représente la date. Ainsi, notre formule Replace change les 3 derniers chiffres du numéro de série ci-dessus en " Nov "et renvoie la chaîne de texte "419Nov".

    Pour que la fonction REPLACE d'Excel fonctionne correctement avec les dates, vous pouvez d'abord convertir les dates en chaînes de texte à l'aide de la fonction TEXT ou de toute autre technique décrite dans la section Comment convertir une date en texte en Excel :

    =REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")

    Veuillez vous rappeler que le résultat de la formule ci-dessus est un chaîne de texte Si vous avez besoin de dates plutôt que de chaînes de texte, utilisez la fonction DATEVALUE pour transformer les valeurs renvoyées par la fonction REPLACE d'Excel en dates :

    =DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy")), 4, 3, "Nov"))

    Fonctions REPLACE imbriquées pour effectuer des remplacements multiples dans une cellule

    Très souvent, vous pouvez avoir besoin d'effectuer plusieurs remplacements dans la même cellule. Bien sûr, vous pouvez effectuer un remplacement, sortir un résultat intermédiaire dans une colonne supplémentaire, puis utiliser à nouveau la fonction REPLACE. Cependant, une meilleure méthode, plus professionnelle, consiste à utiliser la fonction fonctions REPLACE imbriquées qui vous permettent d'effectuer plusieurs remplacements avec une seule formule. Dans ce contexte, "imbriquer" signifie placer une fonction dans une autre.

    Prenons l'exemple suivant. Supposons que vous ayez une liste de numéros de téléphone dans la colonne A formatée comme "123456789" et que vous vouliez les faire ressembler davantage à des numéros de téléphone en ajoutant des traits d'union. En d'autres termes, votre objectif est de transformer "123456789" en "123-456-789".

    L'insertion du premier trait d'union est facile. Vous écrivez une formule Excel habituelle de remplacement qui remplace zéro caractère avec un trait d'union, c'est-à-dire qu'il ajoute un trait d'union en 4ème position dans une cellule :

    =REPLACE(A2,4,0,"-")

    Le résultat de la formule Replace ci-dessus est le suivant :

    Bon, et maintenant nous devons insérer un trait d'union supplémentaire en 8ème position. Pour ce faire, vous placez la formule ci-dessus dans une autre fonction REPLACE d'Excel. Plus précisément, vous l'intégrez dans la fonction ancien_texte de l'autre fonction, afin que la seconde fonction REPLACE traite la valeur renvoyée par la première fonction REPLACE, et non la valeur de la cellule A2 :

    =REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")

    Le résultat est que vous obtenez les numéros de téléphone dans le formatage souhaité :

    De la même manière, vous pouvez utiliser les fonctions REPLACE imbriquées pour que les chaînes de texte ressemblent à des dates en ajoutant une barre oblique (/) aux endroits appropriés :

    =(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    En outre, vous pouvez convertir des chaînes de texte en dates réelles en enveloppant la formule REPLACE ci-dessus avec la fonction DATEVALUE :

    =DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    Et naturellement, vous n'êtes pas limité dans le nombre de fonctions que vous pouvez imbriquer dans une formule (les versions modernes d'Excel 2010, 2013 et 2016 autorisent jusqu'à 8192 caractères et jusqu'à 64 fonctions imbriquées dans une formule).

    Par exemple, vous pouvez utiliser 3 fonctions REPLACE imbriquées pour faire apparaître un nombre dans A2 comme la date et l'heure :

    =REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, " :")

    Remplacement d'une chaîne de caractères qui apparaît à une position différente dans chaque cellule

    Jusqu'à présent, dans tous les exemples, nous avons traité des valeurs de nature similaire et effectué des remplacements au même endroit dans chaque cellule. Mais les tâches réelles sont souvent plus compliquées que cela. Dans vos feuilles de calcul, les caractères à remplacer n'apparaissent pas nécessairement au même endroit dans chaque cellule, et vous devrez donc trouver la position du premier caractère L'exemple suivant démontre ce dont je parle.

    Supposons que vous ayez une liste d'adresses électroniques dans la colonne A. Et que le nom d'une entreprise ait changé de "ABC" à, disons, "BCA". Vous devez donc mettre à jour les adresses électroniques de tous les clients en conséquence.

    Mais le problème est que les noms des clients sont de longueur différente, et c'est pourquoi vous ne pouvez pas spécifier exactement où commence le nom de la société. En d'autres termes, vous ne savez pas quelle valeur fournir dans l'argument start_num de la fonction REPLACE d'Excel. Pour le savoir, utilisez la fonction FIND d'Excel pour déterminer la position du premier caractère dans la chaîne "@abc" :

    =FIND("@abc",A2)

    Puis, fournissez la fonction FIND ci-dessus dans l'argument start_num de votre formule REPLACE :

    =REPLACE(A2, FIND("@abc",A2), 4, "@bca")

    Conseil : nous incluons "@" dans notre formule Excel de recherche et de remplacement afin d'éviter les remplacements accidentels de la partie "nom" des adresses électroniques. Bien sûr, il y a très peu de chances que de telles correspondances se produisent, mais vous voulez quand même être prudent.

    Comme vous le voyez dans la capture d'écran suivante, la formule n'a aucun problème pour trouver et remplacer l'ancien texte par le nouveau. Toutefois, si la chaîne de texte à remplacer n'est pas trouvée, la formule renvoie l'erreur #VALUE !

    Et nous voulons que la formule renvoie l'adresse électronique d'origine au lieu de l'erreur. Donc, incluons notre formule FIND & ; REPLACE dans la fonction IFERROR :

    =IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)

    Et cette formule améliorée fonctionne parfaitement, n'est-ce pas ?

    Une autre application pratique de la fonction REPLACE consiste à mettre en majuscules la première lettre d'une cellule. Lorsque vous traitez une liste de noms, de produits, etc., vous pouvez utiliser la formule ci-dessus pour mettre la première lettre en majuscules.

    Conseil : si vous souhaitez effectuer les remplacements dans les données d'origine, une méthode plus simple consiste à utiliser la boîte de dialogue FIND and REPLACE d'Excel.

    Fonction SUBSTITUTE d'Excel

    La fonction SUBSTITUTE d'Excel remplace une ou plusieurs instances d'un caractère ou d'une chaîne de texte donnés par un ou plusieurs caractères spécifiés.

    La syntaxe de la fonction SUBSTITUTE d'Excel est la suivante :

    SUBSTITUTE(texte, ancien_texte, nouveau_texte, [numéro_d'instance])

    Les trois premiers arguments sont obligatoires et le dernier est facultatif.

    • Texte - le texte original dans lequel vous souhaitez substituer des caractères. Il peut être fourni sous forme de chaîne de test, de référence de cellule ou de résultat d'une autre formule.
    • Ancien_texte - le(s) caractère(s) que vous voulez remplacer.
    • Nouveau_texte - le(s) nouveau(x) caractère(s) à remplacer par old_text.
    • Numéro d'instance - l'occurrence de l'ancien texte que vous voulez remplacer. Si elle est omise, chaque occurrence de l'ancien texte sera remplacée par le nouveau texte.

    Par exemple, toutes les formules ci-dessous remplacent "1" par "2" dans la cellule A2, mais renvoient des résultats différents selon le nombre que vous fournissez dans le dernier argument :

    =SUBSTITUER(A2, "1", "2", 1) - Remplace la première occurrence de "1" par "2".

    =SUBSTITUER(A2, "1", "2", 2) - Remplace la deuxième occurrence de "1" par "2".

    =SUBSTITUER(A2, "1", "2") - Remplace toutes les occurrences de "1" par "2".

    Dans la pratique, la fonction SUBSTITUTE est également utilisée pour supprimer les caractères indésirables des cellules. Pour des exemples concrets, voir :

    • Comment supprimer des caractères ou des mots d'une chaîne de caractères
    • Comment supprimer les caractères indésirables des cellules

    Remarque : la fonction SUBSTITUTE dans Excel est la suivante sensible à la casse Par exemple, la formule suivante remplace toutes les instances de la majuscule "X" par "Y" dans la cellule A2, mais elle ne remplace aucune instance de la minuscule "x".

    Substituer plusieurs valeurs avec une seule formule (SUBSTITUTE imbriqué)

    Comme c'est le cas avec la fonction REPLACE d'Excel, vous pouvez imbriquer plusieurs fonctions SUBSTITUTE dans une même formule pour effectuer plusieurs substitutions à la fois, c'est-à-dire substituer plusieurs caractères ou sous-chaînes avec une seule formule.

    Supposons que vous ayez une chaîne de texte comme " PR1, ML1, T1 dans la cellule A2, où "PR" signifie "Projet", "ML" signifie "Jalon" et "T" signifie "Tâche". Vous souhaitez remplacer les trois codes par des noms complets. Pour ce faire, vous pouvez écrire 3 formules SUBSTITUTE différentes :

    =SUBSTITUTE(A2, "PR", "Projet")

    =SUBSTITUTE(A2, "ML", "Milestone")

    =SUBSTITUTE(A2, "T", "Task ")

    Et ensuite les emboîter les uns dans les autres :

    =SUBSTITUTE(SUBSTITUTE(A2, "PR", "Project "), "ML", "Milestone "), "T", "Task ")

    Remarquez que nous avons ajouté un espace à la fin de chaque argument new_text pour une meilleure lisibilité.

    Pour connaître d'autres moyens de remplacer plusieurs valeurs à la fois, veuillez consulter la rubrique Comment effectuer une recherche et un remplacement en masse dans Excel.

    Excel REPLACE vs. Excel SUBSTITUTE

    Les fonctions Excel REPLACE et SUBSTITUTE sont très similaires, car elles sont toutes deux conçues pour échanger des chaînes de texte. Les différences entre ces deux fonctions sont les suivantes :

    • SUBSTITUTE remplace un ou plusieurs instances d'un caractère donné ou d'une chaîne de texte. Ainsi, si vous connaissez le texte à remplacer, utilisez la fonction SUBSTITUTE d'Excel.
    • REPLACE change les caractères dans un position Ainsi, si vous connaissez la position du ou des caractères à remplacer, utilisez la fonction REPLACE d'Excel.
    • La fonction SUBSTITUTE d'Excel permet d'ajouter un paramètre facultatif (numéro d'instance) qui spécifie le nom de l'instance. occurrence de l'ancien_texte doit être changé en nouveau_texte.

    Voilà comment utiliser les fonctions SUBSTITUTE et REPLACE dans Excel. J'espère que ces exemples vous seront utiles pour résoudre vos tâches. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Télécharger le cahier d'exercices

    Exemples de formules REPLACE et SUBSTITUTE (fichier .xlsx)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.