Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :
Présentation de la fonction RegEx.Remplacer
Dans les volets précédents, nous avons appris à appréhender la
fonction Excel RegEx.Extraire pour isoler des informations précises à partir de
chaînes de textes , grâce aux
expressions régulières . Dans cette suite logique, nous abordons sa compagne, la
fonction RegEx.Remplacer . Elle permet de
remplacer des séquences remarquables par d'autres dans des
chaînes de textes ou encore de reconditionner ces dernières.
Sur l'exemple illustré par la capture, nous travaillons à partir de
codes composés de 16 chiffres en première colonne d'un tableau. Grâce aux
expressions régulières et à la
fonction RegEx.Remplacer , nous les normalisons en seconde colonne pour les
réunir par groupes de 4 chiffres , tous séparés les uns des autres par un
tiret .
Classeur Excel à télécharger
Nous proposons d'appuyer la découverte sur un
classeur Excel offrant ces codes à retravailler.
Nous trouvons bien le tableau avec les
codes à 16 chiffres en première colonne. Naturellement, la seconde colonne est encore vierge à ce stade.
Initier les remplacements
La
fonction RegEx.Remplacer requiert trois paramètres obligatoires. Il s'agit tout d'abord de la cellule de texte à analyser, du motif pour déceler les séquences remarquables et de la séquence de remplacement.
Cliquer sur la première case vide pour sélectionner la cellule C4 ,
Taper le symbole égal (=) pour débuter la construction de la formule,
Inscrire la fonction de remplacement , suivie d'une parenthèse, soit : RegEx.Remplacer( ,
Dès lors, désigner la première chaîne à analyser en cliquant sur sa cellule B4 ,
Puis, taper un point-virgule (;) pour passer dans l'argument du motif (pattern),
Les groupes de quatre
Dans ce motif, nous devons commencer par partir à la recherche de quatre caractères successifs pour les capturer et les espacer des autres avec un tiret.
Ouvrir un guillemet, puis créer le groupe suivant : (.{4}) ,
De cette manière, nous cherchons à capturer exactement 4 caractères consécutifs. Le point (.) représente n'importe quel caractère et ({4}) indique que l'on en veut précisément 4 d'affilée. Dans notre cas, comme il s'agit d'une succession de chiffres, nous aurions tout aussi bien pu inscrire la séquence suivante : (\d{4}), pour capturer un groupe de 4 chiffres consécutifs.
Vérifier la suite
Avant d'insérer un tiret de séparation, nous devons tout d'abord nous assurer qu'il reste au moins 4 caractères à la suite. Cette condition se vérifie grâce au point d'interrogation avec les
expressions régulières .
Poursuivre la syntaxe comme suit : (?=.{4}) ,
C'est une condition. Comme nous l'avons dit, nous testons que les 4 caractères suivants existent avant d'insérer un tiret. Là encore, dans notre cas spécifique, nous aurions pu écrire la séquence suivante :
(?=\d{4}) . Mais nous le savons très bien, qui peut le plus, peut le moins.
Fermer le guillemet du motif,
Taper un point-virgule (;) pour passer dans la séquence de remplacement,
La séquence de remplacement
Grâce aux syntaxes des expressions régulières, nous pouvons faire référence au groupe de 4 caractères précédemment capturés, dans ce raisonnement récursif digne d'un développement de programmeur. C'est ainsi que nous allons pouvoir lui adjoindre un tiret en suffixe, en guise de séparation avec les potentiels autres groupes qui suivent.
Entre guillemets, inscrire la séquence suivante : "$1-" ,
Dans ce raisonnement récursif, pour le dernier groupe potentiellement capturé ($1), nous le séparons d'un potentiel suivant à l'aide d'un tiret (-).
Fermer la parenthèse de la fonction RegEx.Remplacer ,
Valider la formule par le raccourci clavier CTRL + Entrée ,
De cette manière, nous gardons active la cellule du résultat pour l'exploiter dans l'enchaînement.
Double cliquer sur la poignée de cette cellule,
Ainsi, nous répliquons la logique de la formule de remplacement sur la hauteur du tableau.
Nous obtenons bien et comme par magie, les reconditionnements souhaités, grâce aux
expressions régulières dans
Excel . Nous avons bâti la syntaxe suivante :
=REGEX.REMPLACER(B4;"(.{4})(?=.{4})";"$1-")
Notez et comme nous l'avons notifié dans notre cas spécifique que nous aurions pu la remplacer par celle-ci, en raison de l'accumulation des chiffres :
=REGEX.REMPLACER(B4;"(\d{4})(?=\d{4})";"$1-")