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.
Double cliquer sur le fichier réceptionné pour l'ouvrir dans Excel,
Puis, cliquer sur le bouton Activer la modification du bandeau de sécurité,
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.