
Formule générique
=SORTBY(rng,MATCH(rng,custom,0))
Sommaire
Pour trier une liste dans un ordre personnalisé, vous pouvez combiner la fonction SORTBY avec la fonction MATCH. Dans l'exemple illustré, le tableau est trié par la colonne "groupe" en utilisant dans l'ordre indiqué dans les cellules J5: J7. La formule en D5 est:
=SORTBY(B5:D14,MATCH(D5:D14,custom,0))
où "personnalisé" est la plage nommée J5: J7 qui définit l'ordre de tri souhaité.
Explication
Dans cet exemple, nous trions un tableau avec 10 lignes et 3 colonnes. Dans la plage J5: J7 (la plage nommée «personnalisé»), les couleurs «rouge», «bleu» et «vert» sont répertoriées dans l'ordre de tri souhaité. Le but est de trier le tableau en utilisant les valeurs de la colonne Groupe dans ce même ordre personnalisé.
La fonction SORTBY permet un tri basé sur un ou plusieurs tableaux de «tri par», tant que les dimensions sont compatibles avec les données source. Dans ce cas, nous ne pouvons pas utiliser la plage nommée "custom" directement dans SORTBY, car elle ne contient que 3 lignes alors que la table contient 10 lignes.
Cependant, pour créer un tableau de 10 lignes pouvant être utilisé comme un tableau de "tri par", nous pouvons utiliser la fonction MATCH comme ceci:
MATCH(D5:D14,custom,0)
Notez que nous transmettons les valeurs de groupe dans D5: D14 comme valeurs de recherche et que nous utilisons «personnalisé» comme table de recherche. Le résultat est un tableau comme celui-ci:
(2;1;3;3;2;3;1;2;3;1)
Chaque valeur du tableau représente la position numérique de la valeur de groupe donnée dans «personnalisé», donc 10 lignes sont représentées. Ce tableau est passé dans la fonction SORTBY en tant qu'argument by_array1. SORTBY trie le tableau dans l'ordre «rouge», «bleu», «vert» et renvoie le résultat sous la forme d'une plage de débordement commençant dans la cellule D5.