Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Extraire les N derniers mots
Dans ce nouveau volet, nous dévoilons une
astuce montrant comment extraire seulement les
N derniers mots des textes inscrits dans les cellules d'un
tableau Excel.
Dans l'exemple illustré par la capture, l'utilisateur choisit une valeur numérique par le biais d'une liste déroulante placée sur la droite du tableau. Aussitôt, c'est le nombre correspondant de derniers mots qui sont extraits en deuxième colonne du tableau, à partir des textes inscrits en première colonne.
Classeur source
Pour la mise en place de cette nouvelle
astuce Excel, nous suggérons d'appuyer l'étude sur un
classeur offrant déjà ces textes ainsi que la liste déroulante de choix.
Nous découvrons un tableau de deux colonnes. Les textes à manipuler sont placés en première colonne. L'
extraction des N derniers mots doit être réalisée dans la seconde rangée en fonction de la valeur numérique choisie par l'utilisateur avec la liste déroulante en
cellule E4.
Nombre d'espaces dans la chaîne
Pour résoudre ce cas et pour plus de clarté, nous proposons de procéder par étapes. Une information est essentielle. Elle concerne le
nombre d'espaces contenus dans la chaîne. Si nous l'obtenons, nous saurons de combien de mots est constitué le texte. Dès lors, l'enjeu consistera à placer le curseur sur l'espace situé juste avant le mot correspondant au choix de l'utilisateur pour réaliser la découpe à partir de ce point jusqu'à la fin de la chaîne.
- Cliquer sur la cellule C4 pour la sélectionner,
- Taper le symbole égal (=) pour initier la syntaxe de la formule,
- Inscrire la fonction pour compter le nombre de caractères, suivie d'une parenthèse, soit : NbCar(,
- Désigner alors le premier texte en cliquant sur la cellule B4,
- Puis fermer la parenthèse de la fonction NbCar,
C'est en réalisant la différence entre cette valeur et le nombre de caractères dans cette même chaîne, mais purgée de ses espaces, que nous obtiendrons le nombre d'espaces contenus dans le texte. Pour supprimer les espaces d'une chaîne, il suffit d'utiliser la
fonction de remplacement Substitue.
- Taper le symbole moins (-) pour annoncer la soustraction à suivre,
- Inscrire de nouveau la fonction pour compter les caractères, suivie d'une parenthèse : NbCar(,
- Inscrire ensuite la fonction de remplacement suivie d'une parenthèse, soit : Substitue(,
- Désigner le texte à transformer en cliquant sur la cellule B4 du premier titre,
- Puis, taper un point-virgule (;) pour passer dans l'argument du texte à remplacer,
- Inscrire un espace entre guillemets, soit : " ",
- Taper un point-virgule (;) pour passer dans l'argument du texte de remplacement,
- Inscrire deux guillemets consécutifs, soit : "", pour supprimer les espaces,
- Fermer la parenthèse de la fonction Substitue,
- Fermer la parenthèse de la fonction NbCar,
- Puis, valider la formule avec le raccourci clavier CTRL + Entrée,
C'est ainsi que nous la gardons active.
- Double cliquer sur la poignée du résultat pour répandre la logique sur tout le tableau,
Comme vous pouvez le voir, nous obtenons bien le décompte de tous les espaces compris dans les cellules de la première colonne du tableau.
Position de l'espace pour la découpe
Il s'agit maintenant de déceler la position de l'espace à partir duquel la découpe doit être entreprise. Et cette position est bien sûr fonction de la valeur numérique choisie par l'utilisateur. Par exemple, dans un titre contenant cinq espaces, donc six mots, s'il souhaite n'extraire que les deux derniers, le curseur doit être placé sur le quatrième espace (5-(2-1) soit le dernier résultat -(E4-1)).
- En cellule C4, adapter le précédent calcul comme suit :
=NBCAR(B4)- NBCAR(SUBSTITUE(B4;" ";"")) - ($E$4-1)
- Après validation, double cliquer sur la poignée du résultat pour répandre la logique,
Comme vous pouvez l'apprécier, nous obtenons bien les numéros d'espaces à partir desquels doivent intervenir les découpes dans chaque texte.
Marquer la position de découpe
Nous proposons maintenant de remplacer cet espace précis dans chaque titre par un caractère remarquable, un tiret par exemple (-). C'est lui qui renseignera à l'issue la
fonction Excel Stxt pour déterminer le point de départ de la découpe. Pour ce remplacement, nous devons une fois encore exploiter la
fonction Substitue.
- Sélectionner de nouveau le premier résultat en cliquant sur sa cellule C4,
- Dans sa barre de formule, cliquer juste après le symbole égal pour y placer le point d'insertion,
- Inscrire la fonction de remplacement suivie d'une parenthèse, soit : Substitue(,
- Désigner le texte à transformer en cliquant sur la cellule B4 du premier titre,
- Taper un point-virgule (;) pour passer dans l'argument du texte à remplacer,
- Taper un espace entre guillemets, soit : " ",
- Taper un point-virgule (;) pour passer dans l'argument du texte de remplacement,
- Inscrire un tiret entre guillemets, soit : "-",
- Taper un point-virgule (;) pour passer dans le quatrième argument de la fonction Substitue,
Cet argument est facultatif. On l'utilise peu. Et pourtant, c'est bien là que réside l'
astuce. Il concerne la
position de l'occurrence à remplacer. Lorsqu'il n'est pas renseigné, ce sont toutes les occurrences qui sont transformées. Avec le précédent calcul en lieu et place, nous demandons à la
fonction Substitue de ne remplacer que l'espace marqué par la position calculée.
- Cliquer à la fin de la syntaxe pour y placer le point d'insertion,
- Fermer la parenthèse de la fonction Substitue,
- Valider la formule par le raccourci clavier CTRL + Entrée,
- Puis, double cliquer sur la poignée du résultat pour répandre la formule sur le tableau,
Certes pour l'instant, les chaînes ainsi transformées débordent. Mais nous n'avons pas encore atteint l'étape finale.
Et comme vous pouvez l'apprécier, le caractère remarquable du tiret identifie bien le
point de départ pour la découpe à entreprendre sur chaque titre. La syntaxe de la formule à ce stade est la suivante
=SUBSTITUE(B4; " "; "-"; NBCAR(B4)-NBCAR(SUBSTITUE(B4; " "; "")) - ($E$4-1))
Position numérique pour la découpe
Maintenant, grâce à la
fonction Excel Trouve à exercer sur ce tiret, nous allons pouvoir déterminer la position de départ en valeur numérique pour la découpe.
- Sélectionner de nouveau le premier résultat en cliquant sur sa cellule C4,
- Dans sa barre de formule, cliquer après le symbole égal pour y placer le point d'insertion,
- Inscrire cette nouvelle fonction de recherche suivie d'une parenthèse, soit : Trouve(,
- Taper un tiret entre guillemets ("-") pour définir l'élément cherché,
- Puis taper un point-virgule (;) pour passer dans l'argument du texte de recherche,
Celui-ci est déjà défini par notre précédent calcul. Il s'agit du titre avec précisément le tiret repérant la position de découpe. Bien sûr, cette dernière doit intervenir après ce tiret et non avant. Non devons donc déplacer le curseur d'une unité vers la droite.
- Cliquer à la fin de la syntaxe pour y placer le point d'insertion,
- Fermer la parenthèse de la fonction Trouve,
- Puis, ajouter une unité à la position renvoyée, soit : +1,
- Valider la formule par le raccourci clavier CTRL + Entrée,
- Enfin, double cliquer sur la poignée du résultat pour répandre la logique,
Nous obtenons bien l'énumération des positions de départ pour initier les prélèvements dans chacun des titres de la première colonne. A ce stade, la syntaxe du calcul est la suivante :
=Trouve("-"; SUBSTITUE(B4; ""; "-"; NBCAR(B4)-NBCAR(SUBSTITUE(B4; " "; "")) - ($E$4-1)))+1
Prélever les N derniers mots
Il ne nous reste plus qu'Ã exploiter cette position dynamique en second argument de la
fonction Excel Stxt. Elle saura ainsi quel est l'emplacement précis à partir duquel les caractères doivent être prélevés.
- Sélectionner le premier résultat en cliquant sur sa cellule C4,
- Dans sa barre de formule, cliquer après le symbole égal pour y placer le point d'insertion,
- Inscrire la fonction de découpe suivie d'une parenthèse, soit : Stxt(,
- Désigner le texte à découper en cliquant sur le premier titre en cellule B4,
- Taper un point-virgule (;) pour passer dans l'argument de la position de départ,
Celle-ci est déjà renseignée par le précédent calcul construit par étapes.
- Cliquer à la fin de la syntaxe pour y placer le point d'insertion,
- Taper un point-virgule (;) pour passer dans l'argument de la longueur de découpe,
Ici, nous devons prévoir large dans le cas de titres longs. Mais si nous renseignons une valeur plus grande que le nombre de caractères du texte, la
fonction Stxt s'ajustera pour prélever jusqu'à la fin de la chaîne.
- Taper par exemple le nombre 100 puis fermer la parenthèse de la fonction Stxt,
- Valider la formule par le raccourci clavier CTRL + Entrée,
- Puis, double cliquer sur la poignée du résultat pour répercuter la logique du calcul,
Nous obtenons bien uniquement les derniers mots de chaque titre, dont le nombre est en parfaite cohérence avec la quantité choisie par l'utilisateur dans la liste déroulante.
Et si vous changez cette information numérique, vous constatez que la découpe des N derniers mots s'ajuste parfaitement.