Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Trier sur la longueur des textes
Nous poursuivons nos découvertes sur la possibilité des
tris personnalisés qu'il est possible d'exécuter grâce aux
fonctions matricielles d'Excel. Ici, nous souhaitons
réorganiser un tableau en fonction de la
longueur des textes qu'il porte.
Sur la gauche de la feuille de la capture, un tableau recense certains pays avec des scores obtenus à l'occasion d'une compétition. Sur la droite, ce même tableau est réorganisé dans l'
ordre décroissant sur la
longueur des noms des pays.
Classeur Excel à télécharger
Pour la démonstration de cette astuce, nous suggérons d'appuyer l'étude sur un
classeur Excel hébergeant ce tableau des pays.
Le tableau des pays est présent sur la gauche de la feuille entre les colonnes C et E. Sur la droite, un tableau vide entre les colonnes G et I, attend la formule permettant sa réorganisation, du nom de Pays le plus fourni en caractères, au nom du Pays qui en est le plus démuni.
Initialiser le tri
Comme lors du volet précédent, pour réorganiser un tableau selon une clé de tri remaniée et donc spécifique, nous avons besoin de la
fonction matricielle TrierPar.
- Cliquer sur la première cellule de la grille vide, soit G4,
- Taper le symbole égal (=) pour initier la syntaxe de la formule matricielle,
- Inscrire la fonction de tri, suivie d'une parenthèse, soit : TrierPar(,
- Désigner le tableau à trier en sélectionnant la plage de cellules C4:E14,
Aucun nom n'a été attribué dans cette feuille. Dans ces conditions, les cellules représentatives doivent être zonées.
- Taper un point-virgule (;) pour passer dans l'argument de la colonne à utiliser pour le tri,
Trier sur le nombre de caractères
C'est maintenant que nous devons débarquer l'astuce. Si nous nous contentons de désigner la colonne des Pays comme clé de tri, toutes les lignes seront triées dans l'ordre alphabétique croissant sur les noms des pays.
En guise de
tableau de tri, nous devons exploiter la
fonction NbCar sur la
colonne des pays. Dans ce
raisonnement matriciel, elle renverra une
matrice des longueurs respectives en
nombres de caractères. Et c'est sur cette base que nous souhaitons ordonnancer les données du tableau source.
- Inscrire la fonction donnant la longueur d'un texte, suivie d'une parenthèse, soit : NbCar(,
- Désigner les pays en sélectionnant la plage de cellules D4:D14,
Dans ce traitement récursif, ce sont donc toutes les longueurs qui vont être confrontées les unes aux autres. La
fonction TrierPar se fera un plaisir de les utiliser pour réorganiser le tableau en conséquence.
- Fermer la parenthèse de la fonction NbCar,
- Taper un point-virgule (;) pour passer dans l'argument de l'ordre de tri,
Ordre de tri
Nous souhaitons que ce tableau soit réorganisé du Pays le plus long au pays le plus court. Selon les résultats retournés par le calcul du nombre des caractères, nous devons donc ordonner un
tri décroissant, du plus grand au plus petit.
- Taper la valeur -1 pour ordonner un tri décroissant,
- Fermer la parenthèse de la fonction TrierPar,
- Enfin, valider la formule matricielle par la touche Entrée du clavier,
Comme vous pouvez l'apprécier, le tableau d'origine est en effet réagencé du
pays le plus long au
pays le plus court.
Bien sûr et ligne à ligne, toutes les données attachées suivent le mouvement.