Remplace toutes les instances d'une chaîne de caractères indiquée par une nouvelle chaîne de caractères.

REPLACE(chaîne_de_caractères; ancien_texte; nouveau_texte)
Nom Type Description
chaîne

caractère

Valeur dans laquelle remplacer les caractères.
ancien_texte

caractère

Chaîne de caractères à remplacer. La recherche est sensible à la casse.

nouveau_texte caractère Texte avec lequel remplacer la valeur se trouvant dans ancien_texte.

Caractère.

Exemples basiques

Renvoie "a12345efg" :

REPLACE("abcdefg";"bcd";"12345")

Renvoie "Rd." :

REPLACE("Road";"Road";"Rd.")

Renvoie "ac" :

REPLACE("abc";"b";"")

Exemples avancés

Suppression des caractères spécifiés

Utilisez REPLACE( ) pour supprimer une chaîne de caractères spécifiés d'une chaîne source en la remplaçant par une chaîne de caractères vides ( "" ).

Renvoie "1234 Scott" :

REPLACE("1234 Scott rd." ; "rd." ; "")

Adaptation de la longueur du champ

Si le nouveau_texte ("ABC") est plus long que ancien_texte ("X"), la longueur de champ de la chaîne créée est automatiquement augmentée pour adapter le premier remplacement :

Renvoie "9ABC9", avec une longueur de champ qui passe de 3 à 5 caractères :

REPLACE("9X9"; "X"; "ABC")

La longueur de champ n'est pas automatiquement augmentée pour les remplacements suivants et une coupure peut survenir si le champ est trop court pour tenir compte de tous les nouveaux caractères.

Renvoie "9ABC9A" :

REPLACE("9X9X"; "X"; "ABC")

Pour éviter les coupures, vous pouvez augmenter la longueur de la chaîne à l'aide de la fonction BLANKS( ) ou d'espaces vides littéraux.

Renvoie "9ABC9ABC" :

REPLACE("9X9X" + BLANKS(2); "X"; "ABC")
REPLACE("9X9X" + "  "; "X"; "ABC")

Si la chaîne créée est plus courte que chaîne, celle-ci est remplie avec des espaces pour conserver la même longueur de champ.

Renvoie "9X9" :

REPLACE("9ABC9"; "ABC"; "X")

Fonctionnement

La fonction REPLACE( ) remplace toutes les instances d'une chaîne existante par une nouvelle chaîne.

Renvoie "1234 Scott Road" :

REPLACE("1234 Scott rd."; "rd."; "Road")

Quand utiliser la fonction REPLACE( )

Utilisez REPLACE( ) pour normaliser les champs de données dont les formats sont incohérents, comme les champs d'adresse, ou pour remplacer des informations non valides dans des champs mal édités. Pour s'exécuter correctement, des opérations comme le test des doublons, ou la liaison ou mise en relation de tables, requièrent des données dans un format normalisé ou standardisé.

Respect de la casse

La fonction REPLACE( ) respecte la casse. Si vous indiquez "RD." dans le paramètre ancien_texte et que les valeurs de la chaîne sont en minuscules, la valeur du nouveau_texte ne sera pas remplacée car aucune correspondance n'existe.

Si vous pensez que la casse est incohérente dans la chaîne, commencez par utiliser la fonction UPPER( ) pour convertir tous les caractères en majuscules.

Renvoie "1234 SCOTT ROAD" :

REPLACE(UPPER("1234 Scott rd."); "RD."; "ROAD")

Se protéger des remplacements commis par inadvertance

Lors de la création d'une expression REPLACE( ), il est impératif que vous connaissiez l'existence de toutes les instances du paramètre ancien_texte dans la chaîne_de_caractères afin d'éviter tout remplacement involontaire.

Renvoie "645 RichaRoad Road", car les deux dernières lettres de "Richard" sont "rd" :

REPLACE("645 Richard rd  "; "rd"; "Road")

Pour empêcher la fonction de remplacer les instances dans lesquelles "rd" apparaît dans un nom (car ces instances ne comportent pas d'espace de début), ajoutez une espace de début et une espace de fin à la valeur dans ancien_texte (" rd ").

Renvoie "645 Richard Road" :

REPLACE("645 Richard rd  "; " rd "; " Road")