Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Textes en tableaux de lettres
Avec cette nouvelle
astuce Excel, nous allons comprendre comment
découper un texte sur toutes ses lettres de manière à les ranger dans des cases indépendantes.
C'est d'ailleurs ce qu'illustre le résultat finalisé proposé par la capture. Et à ce titre, des
couleurs conditionnelles font ressortir explicitement les voyelles du lot.
Classeur source
Pour la découverte de cette technique nous proposons de récupérer un
classeur offrant des noms à découper ainsi que la grille d'extraction pour accueillir les lettres.
Les noms à découper sont donc situés en
colonne B. Pour chacun, l'
extraction indépendante des lettres doit débuter à partir de la
colonne D.
Parcourir chaque lettre d'un texte
Pour résoudre le cas, nous proposons d'exploiter une
technique matricielle. L'idée consiste à utiliser une
matrice virtuelle de chiffres dans l'argument de la position de départ de la
fonction de découpe Stxt. Cette
matrice doit être de la même taille que le
texte à découper. Et c'est la
fonction Excel NbCar qui renvoie la
longueur d'une chaîne. C'est ainsi, au gré de la réplication de la
formule, que nous serons en mesure de
parcourir toutes les lettres une à une, pour les extraire indépendamment.
- Sélectionner la première ligne d'extraction, soit la plage de cellules D4:Z4,
- Taper le symbole égal (=) pour initier la syntaxe de la formule,
- Inscrire la fonction pour convertir en majuscule suivie d'une parenthèse, soit : Majuscule(,
C'est un choix arbitraire mais pour y voir plus clair, nous souhaitons forcer le trait des lettres.
- Inscrire la fonction de découpe suivie d'une parenthèse, soit : Stxt(,
- Désigner le premier nom à découper en cliquant sur la cellule B4,
- Puis, taper un point-virgule (;) pour passer dans l'argument de la position de départ,
Dans cet argument, pour que nous puissions indiquer la position de la lettre à extraire, au gré de la réplication, nous avons besoin d'une fonction retournant un indice de colonne qui progresse.
- Inscrire la fonction donnant l'indice de colonne, suivie d'une parenthèse, soit : Colonne(,
C'est à elle que nous devons passer la
matrice virtuelle de même taille que la longueur du texte à découper sur chaque lettre. Et pour que cette
matrice virtuelle soit considérée comme une vraie
matrice de chiffres, nous devons l'interpréter.
- Inscrire la fonction d'interprétation suivie d'une parenthèse, soit : Indirect(,
- Puis, taper le chiffre 1 suivi du symbole deux points entre guillemets, soit : "1:",
Ainsi, nous désignons le point de départ de la matrice pour le premier caractère à prélever. Comme ils doivent tous être passés en revue, nous devons lui associer la borne supérieure dynamique qui est fonction du nombre de lettres du texte à découper.
- Inscrire le symbole de concaténation (&) pour réaliser l'association,
- Taper la fonction pour compter les caractères, suivie d'une parenthèse, soit : NbCar(,
- Désigner le texte en cours d'analyse en cliquant sur sa cellule B4,
- Fermer la parenthèse de la fonction NbCar,
- Fermer la parenthèse de la fonction Indirect,
- Puis, fermer la parenthèse de la fonction Colonne,
Ainsi, nous sommes de retour dans les bornes de la
fonction Stxt.
- Taper un point-virgule pour passer dans l'argument de la longueur de découpe,
- Inscrire le chiffre 1 pour prélever les lettres une par une,
- Fermer la parenthèse de la fonction Stxt,
- Puis, fermer la parenthèse de la fonction Majuscule,
- Enfin, valider nécessairement la formule matricielle par le raccourci CTRL + MAJ + Entrée,
Comme vous pouvez le voir, toutes les lettres du premier nom sont parfaitement séparées les unes des autres.
- Cliquer et glisser la poignée de la sélection vers le bas jusqu'en ligne 15,
Nous obtenons bien la conversion des textes en tableaux de lettres pour chacun des noms. Les voyelles surgissent en couleur verte grâce à la présence d'une
mise en forme conditionnelle préconstruite. Si vous souhaitez la consulter :
- Cliquer sur l'une des cellules de la grille, par exemple D4,
- Dans la section Styles du ruban Accueil, cliquer sur le bouton Mise en forme conditionnelle,
- En bas des propositions, choisir la commande Gérer les règles,
- Dans la boîte de dialogue qui suit, cliquer sur le bouton Modifier la règle,
Nous exploitons simplement la
fonction Excel Ou pour déceler la présence de l'une des voyelles.
=OU(D4="A"; D4="E"; D4="I"; D4="O"; D4="U"; D4="Y")
La syntaxe de la
formule matricielle quant à elle reste relativement abordable :
{=MAJUSCULE(STXT(B4; COLONNE(INDIRECT("1:" & NBCAR(B4))); 1))}
Il est à noter que nous aurions pu résoudre le cas avec une formule linéaire beaucoup plus conventionnelle.
- Pour cela, il se serait agi de bâtir la syntaxe suivante à partir de la cellule D4 :
=STXT($B4;COLONNE(A1);1)
- Ensuite, il aurait suffi de tirer la poignée du résultat jusqu'en colonne Z,
- Et dans l'enchaînement, il aurait fallu tirer la poignée de la sélection jusqu'en ligne 15.