Table des matières
Aujourd'hui, nous allons examiner de près la syntaxe et les utilisations typiques de la nouvelle fonction SORTBY du tableau dynamique. Vous apprendrez à personnaliser le tri dans Excel à l'aide d'une formule, à trier une liste de manière aléatoire, à classer les cellules en fonction de la longueur du texte, etc.
Microsoft Excel propose plusieurs façons de classer des données textuelles par ordre alphabétique, des dates par ordre chronologique et des nombres du plus petit au plus grand ou du plus grand au plus petit. Il existe également une façon de trier par vos propres listes personnalisées. En plus de la fonctionnalité de tri conventionnelle, Excel 365 introduit une toute nouvelle façon de trier des données avec des formules - très pratique et incroyablement simple à utiliser !
Fonction SORTBY d'Excel
La fonction SORTBY d'Excel est conçue pour trier une plage ou un tableau en fonction des valeurs d'une autre plage ou d'un autre tableau. Le tri peut être effectué sur une ou plusieurs colonnes.
SORTBY est l'une des six nouvelles fonctions de tableau dynamique disponibles dans Excel pour Microsoft 365 et Excel 2021. Son résultat est un tableau dynamique qui déborde sur les cellules voisines et se met à jour automatiquement lorsque les données sources changent.
La fonction SORTBY possède un nombre variable d'arguments - les deux premiers sont obligatoires et les autres sont facultatifs :
SORTBY(tableau, by_array1, [sort_order1], [by_array2, sort_order2],...)Array (obligatoire) - la plage de cellules ou le tableau de valeurs à trier.
By_array1 (obligatoire) - la plage ou le tableau à trier.
Tri_order1 (facultatif) - l'ordre de tri :
- 1 ou omis (par défaut) - ascendant
- -1 - descendant
By_array2 / Tri_order2 , ... (facultatif) - paires de tableaux/ordres supplémentaires à utiliser pour le tri.
Remarque importante ! Actuellement, la fonction SORTBY est uniquement disponible avec les abonnements Microsoft 365 et Excel 2021. Dans Excel 2019, Excel 2016 et les versions antérieures, la fonction SORTBY n'est pas disponible.
Fonction SORTBY - 4 choses à retenir
Pour qu'une formule Excel SORTBY fonctionne correctement, il faut tenir compte de quelques points importants :
- By_array Les arguments doivent avoir une hauteur d'une ligne ou une largeur d'une colonne.
- Le site tableau et tout par_réseau Les arguments doivent avoir des dimensions compatibles. Par exemple, lors d'un tri sur deux colonnes, tableau , par_réseau1 et par_réseau2 doivent avoir le même nombre de lignes, sinon une erreur #VALUE se produira.
- Si le tableau renvoyé par SORTBY est le résultat final (affiché dans une cellule et non transmis à une autre fonction), Excel crée une plage de déversement dynamique et la remplit avec les résultats. Assurez-vous donc d'avoir suffisamment de cellules vides en bas et/ou à droite de la cellule où vous entrez la formule, sinon vous obtiendrez une erreur #SPILL.
- Les résultats des formules SORTBY se mettent à jour automatiquement lorsque les données sources changent. Toutefois, les nouvelles entrées ajoutées en dehors du tableau référencé dans la formule ne sont pas incluses dans les résultats, à moins que vous ne mettiez à jour le champ tableau Pour que le tableau référencé se développe automatiquement, convertissez la plage source en un tableau Excel ou créez une plage nommée dynamique.
Formule de base SORTBY dans Excel
Voici un scénario typique d'utilisation d'une formule SORTBY dans Excel :
Supposons que vous disposiez d'une liste de projets avec l'attribut Valeur Vous souhaitez trier les projets par leur valeur sur une feuille séparée. Comme les autres utilisateurs n'ont pas besoin de voir les chiffres, vous préférez ne pas inclure le champ Valeur dans les résultats.
Cette tâche peut être facilement accomplie avec la fonction SORTBY, pour laquelle vous fournissez les arguments suivants :
- Array est A2:A10 - étant donné que vous ne souhaitez pas que les Valeur à afficher dans les résultats, vous la laissez en dehors du tableau.
- By_array1 est B2:B10 - trier par Valeur .
- Tri_order1 est -1 - descendant, c'est-à-dire du plus haut au plus bas.
En rassemblant les arguments, on obtient cette formule :
=SORTBY(A2:B10, B2:B10, -1)
Pour simplifier, nous utilisons la formule sur la même feuille - nous la saisissons dans D2 et nous appuyons sur la touche Entrée. Les résultats se "déversent" automatiquement dans autant de cellules que nécessaire (D2:D10 dans notre cas). Mais techniquement, la formule ne se trouve que dans la première cellule, et la supprimer de D2 effacera tous les résultats.
Lorsqu'elle est utilisée sur une autre feuille, la formule prend la forme suivante :
=SORTBY(Feuille1!A2:A10, Feuille1!B2:B10, -1)
Où Feuille 1 est la feuille de calcul contenant les données originales.
Utilisation de la fonction SORTBY dans Excel - exemples de formules
Vous trouverez ci-dessous quelques autres exemples d'utilisation de SORTBY, qui, nous l'espérons, se révéleront utiles et instructifs.
Trier par plusieurs colonnes
La formule de base présentée ci-dessus permet de trier les données en fonction d'une seule colonne, mais que faire si vous devez ajouter un niveau de tri supplémentaire ?
En supposant que notre table d'échantillon a deux champs, Statut (colonne B) et Valeur (colonne C) nous voulons d'abord trier par Statut par ordre alphabétique, puis par Valeur en descendant.
Pour trier sur deux colonnes, il suffit d'ajouter une paire supplémentaire d'éléments de type par_réseau / ordre de tri arguments :
- Array est A2:C10 - cette fois, nous voulons inclure les trois colonnes dans les résultats.
- By_array1 est B2:B10 - d'abord, trier par Statut .
- Tri_order1 est 1 - trier par ordre alphabétique de A à Z.
- By_array2 est C2:C10 - alors, trier par Valeur .
- Tri_order2 est -1 - trier du plus grand au plus petit.
En conséquence, nous obtenons la formule suivante :
=SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)
Ce qui réarrange nos données exactement comme nous l'avons demandé :
Tri personnalisé dans Excel avec une formule
Pour trier les données dans un ordre personnalisé, vous pouvez soit utiliser la fonction de tri personnalisé d'Excel, soit construire une formule SORTBY MATCH de cette manière :
SORTBY(tableau, MATCH( gamme_à_tri , liste personnalisée , 0))En examinant de plus près notre ensemble de données, vous trouverez probablement plus pratique de trier les projets selon leur statut "logiquement", par exemple par importance, plutôt que par ordre alphabétique.
Pour ce faire, nous créons d'abord une liste personnalisée dans l'ordre de tri souhaité ( En cours , Complété , En attente ) en tapant chaque valeur dans une cellule séparée de la plage E2:E4.
Et ensuite, en utilisant la formule générique ci-dessus, nous fournissons la gamme source de tableau (A2:C10), le Statut colonne pour gamme_à_tri (B2:B10), et la liste personnalisée que nous avons créée pour liste personnalisée (E2:E4).
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))
Le résultat est que nous avons les projets triés par leur statut exactement comme il faut :
Pour trier la liste personnalisée dans l'ordre inverse, mettez -1 pour l'élément tri_order1 argument :
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)
Et vous aurez les projets triés dans le sens inverse :
Si vous souhaitez trier les enregistrements au sein de chaque statut, aucun problème : ajoutez simplement un niveau de tri supplémentaire à la formule, par exemple par Valeur (C2:C10), et définissez l'ordre de tri souhaité, ascendant dans notre cas :
=SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)
L'un des grands avantages de la formule SORTBY par rapport à la fonction de tri personnalisé d'Excel est que la formule se met automatiquement à jour lorsque les données d'origine changent, alors que la fonction nécessite un nettoyage et un nouveau tri à chaque changement.
Comment fonctionne cette formule :
Comme nous l'avons déjà mentionné, la fonction SORTBY d'Excel ne peut traiter que les tableaux de "tri par" dont les dimensions sont compatibles avec le tableau source. Comme notre tableau source (C2:C10) contient 9 lignes et la liste personnalisée (E2:E4) seulement 3 lignes, nous ne pouvons pas la fournir directement à la fonction par_réseau Au lieu de cela, nous utilisons la fonction MATCH pour créer un tableau à 9 rangs :
MATCH(B2:B10, E2:E5, 0)
Ici, nous utilisons le Statut (B2:B10) comme valeurs de recherche et notre liste personnalisée (E2:E5) comme tableau de recherche. Le dernier argument est fixé à 0 pour rechercher des correspondances exactes. Le résultat est un tableau de 9 nombres, chacun représentant la position relative d'un élément donné de la liste. Statut dans la liste personnalisée :
{1;3;2;1;3;2;2;1;2}
Ce tableau va directement à la par_réseau de la fonction SORTBY et l'oblige à placer les données dans l'ordre correspondant aux éléments du tableau, c'est-à-dire les premières entrées représentées par des 1, puis les entrées représentées par des 2, et ainsi de suite.
Tri aléatoire dans Excel avec une formule
Dans les versions antérieures d'Excel, vous pouvez effectuer un tri aléatoire avec la fonction RAND, comme l'explique ce tutoriel : Comment trier une liste de manière aléatoire dans Excel.
Dans le nouvel Excel, vous pouvez utiliser une fonction RANDARRAY plus puissante avec SORTBY :
SORTBY( tableau , RANDARRAY(ROWS( tableau )))Où tableau est la donnée source que vous voulez mélanger.
Cette formule générique fonctionne aussi bien pour une liste constituée d'une seule colonne que pour une plage à plusieurs colonnes.
Par exemple, pour trier de manière aléatoire une liste en A2:A10, utilisez cette formule :
=SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))
Pour mélanger les données dans A2:C10 en gardant les lignes ensemble, utilisez celui-ci :
=SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))
Comment fonctionne cette formule :
La fonction RANDARRAY produit un tableau de nombres aléatoires à utiliser pour le tri, et vous le passez dans la fonction par_réseau Pour spécifier le nombre de nombres aléatoires à générer, vous comptez le nombre de lignes dans la plage source à l'aide de la fonction ROWS, et vous "alimentez" ce nombre à la fonction rangées argument de RANDARRAY. C'est ça !
Remarque : comme son prédécesseur, RANDARRAY est une fonction volatile qui génère un nouveau tableau de nombres aléatoires à chaque fois que la feuille de calcul est recalculée. Par conséquent, vos données seront triées à chaque modification de la feuille. Pour empêcher le tri automatique, vous pouvez utiliser la fonction Collage spécial > ; Valeurs pour remplacer les formules par leurs valeurs.
Trier les cellules par longueur de chaîne
Pour trier les cellules en fonction de la longueur des chaînes de texte qu'elles contiennent, utilisez la fonction LEN pour compter le nombre de caractères dans chaque cellule, et fournissez les longueurs calculées à la fonction par_réseau argument de SORTBY. Le ordre de tri peut prendre la valeur 1 ou -1, selon l'ordre de tri souhaité.
Pour trier une chaîne de texte du plus petit au plus grand :
SORTBY(tableau, LEN(tableau), 1)Pour trier une chaîne de texte du plus grand au plus petit :
SORTBY(tableau, LEN(tableau), -1)Et voici une formule qui démontre cette approche sur des données réelles :
=SORTBY(A2:A7, LEN(A2:A7), 1)
Où A2:A7 sont les cellules originales que vous souhaitez trier par longueur de texte dans l'ordre croissant :
SORTBY vs. SORT
Dans le groupe des nouvelles fonctions de tableau dynamique d'Excel, il y en a deux conçues pour le tri. Nous énumérons ci-dessous les différences et les similitudes les plus importantes, ainsi que le meilleur moment pour les utiliser.
- Contrairement à la fonction SORT, SORTBY ne nécessite pas que le tableau "sort by" fasse partie du tableau source, ni qu'il apparaisse dans les résultats. Ainsi, lorsque votre tâche consiste à trier une plage en fonction d'un autre tableau indépendant ou d'une liste personnalisée, SORTBY est la bonne fonction à utiliser. Si vous cherchez à trier une plage en fonction de ses propres valeurs, SORT est plus approprié.
- Ces deux fonctions prennent en charge plusieurs niveaux de tri et peuvent être enchaînées avec d'autres fonctions conventionnelles et de tableaux dynamiques.
- Ces deux fonctions sont uniquement disponibles pour les utilisateurs d'Excel 365 et d'Excel 2021.
La fonction SORTBY d'Excel ne fonctionne pas
Si votre formule SORTBY renvoie une erreur, c'est très probablement pour l'une des raisons suivantes.
Arguments by_array non valides
Le site par_réseau doivent être une seule ligne ou une seule colonne, et leur taille doit être compatible avec celle de l'argument tableau Par exemple, si tableau a 10 rangs, par_réseau doit également inclure 10 lignes, sinon une erreur #VALUE ! se produit.
Arguments de sort_order non valides
Le site ordre de tri ne peuvent être que 1 (ascendant) ou -1 (descendant). Si aucune valeur n'est définie, SORTBY prend par défaut l'ordre ascendant. Si une autre valeur est définie, une erreur #VALUE ! est renvoyée.
Il n'y a pas assez d'espace pour les résultats
Comme toute autre fonction de tableau dynamique, SORTBY répartit les résultats dans une plage automatiquement redimensionnable et actualisable. S'il n'y a pas assez de cellules vides pour afficher toutes les valeurs, une erreur #SPILL ! est lancée.
Le classeur source est fermé
Si une formule SORTBY fait référence à un autre fichier Excel, les deux classeurs doivent être ouverts. Si le classeur source est fermé, une erreur #REF ! se produit.
Votre version d'Excel ne prend pas en charge les tableaux dynamiques
Lorsqu'elle est utilisée dans une version pré-dynamique d'Excel, la fonction SORT renvoie une erreur #NAME ?
Voilà comment utiliser la fonction SORTBY dans Excel pour effectuer des tris personnalisés et d'autres choses encore. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !
Cahier d'exercices à télécharger
Formules Excel SORTBY (fichier .xlsx)