Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Extraire selon la position
En exploitant la
fonction Fractionner.Texte dans d'autres fonctions, nous augmentons ses capacités.

Sur l'exemple illustré par la capture, nous travaillons à partir d'une liste de
chaînes de textes. Il s'agit d'informations sur des personnes. Chaque donnée est séparée d'une autre par un espace. Sur la droite, l'utilisateur choisit l'information qu'il souhaite isoler, à l'aide d'une liste déroulante. En-dessous et instantanément, la donnée convoitée est extirpée de chaque chaîne. Nous le verrons, cette astuce en ouvrira une autre que nous démontrerons dans le volet suivant, pour choisir les colonnes d'extraction.
Classeur Excel à télécharger
Nous suggérons d'appuyer l'étude sur un
classeur Excel hébergeant ces
chaînes de textes.
Nous trouvons la liste d'informations en
colonne B. L'extraction chirurgicale doit intervenir en colonne D, en fonction de la donnée choisie dans la
liste déroulante en
cellule D3.

Comme vous pouvez le voir, un changement de valeur dans la liste déroulante induit un changement de numéro dans une cellule voisine, plus précisément en
G4. Cette liaison est réalisée par une
fonction RechercheV qui agit dans un
tableau de correspondances sur la droite de la feuille :
=RECHERCHEV(D3;L1:M5;2;FAUX)
C'est ce numéro dynamique qui renseigne sur la
position de la donnée à extraire dans la chaîne de textes.
Initier l'extraction
Nous le savons désormais, la
fonction Fractionner.Texte découpe une chaîne en plusieurs colonnes. Et pour aller piocher une information dans une colonne précise, il suffit de l'imbriquer dans la
fonction d'extraction Index.
- Sélectionner la première case de la grille d'extraction en cliquant sur la cellule D4,
- Taper le symbole égal (=) pour débuter la construction de la formule,
- Inscrire la fonction d'extraction, suivie d'une parenthèse ouvrante, soit : Index(,
Découper la chaîne
- Lui imbriquer la fonction de découpe, suivie d'une parenthèse, soit : Fractionner.Texte(,
- Désigner le premier texte à découper en mémoire en cliquant sur la cellule B4,
- Taper un point-virgule (;) pour passer dans l'argument du délimiteur,
- Taper un espace entre guillemets, soit : " ",
- Puis, fermer la parenthèse de la fonction Fractionner.Texte,
De cette manière, toutes les informations qui sont séparées par un espace, sont désormais rangées dans un tableau en mémoire et nous sommes de retour dans les bornes de la
fonction Index. Sa vocation est de piocher l'une des données en fonction de sa position. Cette position est renseignée en cellule G4.
- Taper un point-virgule (;) pour passer dans l'argument de l'indice de ligne,
- Cliquer sur la cellule G4 puis enfoncer la touche F4 pour la figer, ce qui donne : $G$4,
En effet, nous allons répliquer la formule sur les lignes du dessous pour piocher dans les cellules selon la même logique. Donc cette case de référence donnant la position d'extraction, ne doit pas se déplacer avec la formule répliquée.
- Fermer la parenthèse de la fonction Index,
- Puis 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. Comme vous pouvez le voir, si le nom est la décision, c'est bien la donnée placée en deuxième position qui est extraite. Si vous cliquez et glissez la poignée de la cellule D4 jusqu'en cellule D11, vous obtenez chaque nom hébergé par chaque ligne de la liste d'origine. Bien sûr, si vous modifiez la volonté avec la liste déroulante, vous réalisez l'extraction de l'information concordante, pour chaque ligne.
Mise en pratique
Nous proposons maintenant de réaliser une mise en pratique d'un cas que nous avions solutionné à l'occasion d'une formation précédente. Mais cette
fonction Fractionner.Texte n'existait pas encore. Et nous avions dû nous retourner les méninges pour construire une syntaxe relativement complexe. Comme nous le répétons à chaque reprise, en utilisant les bonnes fonctions, faut-il encore connaître leur existence, nous nous simplifions considérablement la vie.
- En bas de la fenêtre Excel, cliquer sur l'onglet motsCles pour activer sa feuille,
- Puis, sélectionner la première cellule d'extraction en cliquant sur sa case C4,
Si vous consultez la barre de formule, vous découvrez la syntaxe du calcul qui réalise l'extraction du mot dans la phrase, en fonction de la position indiquée à l'aide de la liste déroulante en
cellule E4 :
=SUPPRESPACE(STXT(SUBSTITUE(B4; " "; REPT(" "; NBCAR(B4))); ($E$4-1)*NBCAR(B4)+1; NBCAR(B4)))
Vous en conviendrez, la syntaxe est loin d'être évidente. Dans cette formation pour
isoler un mot sur sa position dans un texte, nous avions entremêlé quelques fonctions dont la
fonction de découpe Stxt. De plus, nous avions exploité la
fonction Supprespace pour supprimer les espaces résiduels après extractions et ainsi éliminer les décalages dans les cellules. Avec la
fonction Fractionner.Texte, elle peut disparaître puisque cette dernière récolte les données situées avant et après le délimiteur, l'espace ici.
- Sélectionner toutes les extractions, soit la plage de cellules C4:C22,
- Enfoncer la touche Suppr du clavier pour effacer les précédents calculs,
- Cliquer sur la cellule C4 pour la sélectionner,
- Taper le symbole égal (=) pour débuter la construction de la formule,
- Inscrire la fonction d'extraction, suivie d'une parenthèse, soit : Index(,
- Lui imbriquer la fonction de découpe, suivie d'une parenthèse, soit : Fractionner.Texte(,
- Désigner le premier texte à découper en cliquant sur sa cellule B4,
- Taper un point-virgule (;) pour passer dans l'argument du délimiteur,
- Puis, taper un espace entre guillemets, soit : " ",
- Fermer la parenthèse de la fonction Fractionner.Texte,
- Taper un point-virgule (;) pour passer dans l'argument de la position pour la fonction Index,
- Désigner la cellule de la liste déroulante en cliquant sur la case E4,
- Pour les mêmes raisons que précédemment, la figer, ce qui donne : $E$4,
- Fermer la parenthèse de la fonction Index,
- Valider la formule par le raccourci clavier CTRL + Entrée,
C'est bien le mot à la position demandée qui est extrait. Si vous double cliquez sur la poignée de la cellule C4, la sentence est répliquée sur la hauteur du tableau. Bien sûr, si vous changez le numéro de la position avec la liste déroulante, toutes les extractions s'actualisent aussitôt.
Autrefois, sans l'existence de la
fonction Fractionner.Texte, il fallait bien trouver des solutions. Aujourd'hui, entre les deux syntaxes et vous en conviendrez, pour le même résultat, il n'y a pas photo :
Avant:
=SUPPRESPACE(STXT(SUBSTITUE(B4; " "; REPT(" "; NBCAR(B4)));($E$4-1)*NBCAR(B4)+1; NBCAR(B4)))
Après :
=INDEX(FRACTIONNER.TEXTE(B4; " "); $E$4)