Excel 365 : TRIER / TRIERPAR – Trier Dynamiquement des Données

Excel 365 nous permet de trier automatiquement des plages de données au sein d’une formule grâce aux fonctions dynamiques TRIER et TRIERPAR. Dès lors que la plage de cellules source est modifiée, le résultat du tri est mis à jour. Une solution assez pratique pour organiser nos données et qui nous évite de faire un tri manuellement via les fonctionnalités « Filtrer » ou « Trier » du ruban Excel. Ces fonctions permettront aussi de trier en colonne comme en ligne.

Bien qu’elles permettent toutes 2 de trier des données, chacune de ces 2 fonctions a un cas d’utilisation différent. Nous allons les comparer et les aborder ici à travers plusieurs exemples.

Par avance, je vous préviens que l’utilisation de la fonction TRIER sera préférable pour un tri simple et rapide, mais que nous favoriserons TRIERPAR qui se montrera plus fléxible dans une majorité de cas. TRIERPAR pourra donner le même résultat que TRIER, mais l’inverse ne sera pas possible.

La Fonction TRIER (SORT) : Trier des Données Rapidement

Présentation de la Fonction TRIER

La fonction TRIER nous retournera une plage de cellules dynamique triée, en ligne ou en colonne, selon un ou plusieurs critères interne à cette même plage de cellules. Elle se présente sous cette forme :

=TRIER(Tableau; [Index_Tri]; [Ordre_Tri]; [Par_Col])

Le premier argument « Tableau » correspond à la plage de cellules que l’on souhaite trier selon le ou les critères souhaités.

Le deuxième argument « Index_Tri » est optionnel, il représente l’index (valeur numérique) de la colonne ou de la ligne que l’on souhaite utiliser pour trier notre plage de cellules. En d’autres termes, c’est le numéro de ligne ou de colonne sur laquelle se trouve les données que l’on veut utiliser pour trier. Il est possible de fournir plusieurs index entre « { } » comme nous le verrons dans les exemples par la suite. Par défaut, si l’argument n’est pas donné, la fonction utilisera l’ordre naturel en commençant par la première ligne ou colonne jusqu’à la dernière.

Le troisième argument « Ordre_Tri » est aussi optionnel et permettra de définir si l’on souhaite trier par ordre croissant (1, et par défaut) ou décroissant (-1).

Le dernier argument « Par_Col » est optionnel et est une valeur booléenne qui sert à spécifier si l’on veut trier par ligne (FAUX, par défaut) ou par colonne (VRAI).

Voyons maintenant les cas d’utilisation de cette fonction TRIER.

LE Cas d’Utilisation le Plus Pratique pour TRIER

Le cas d’utilisation le plus pratique de la fonction TRIER est un tri simple de plusieurs lignes réparties sur une seule colonne, sans fournir d’argument optionnel supplémentaire. Nous aborderons tout de même ci-dessous les autres cas d’utilisation avec les arguments optionnels, mais la fonction TRIERPAR s’avèrera toujours plus pratique dans ces cas.

Pour l’exemple, supposons que nous avons une seule colonne avec un ensemble de devises monétaire, et que nous souhaitons les trier par ordre croissant (alphabétique). On utilisera la fonction TRIER avec comme seul argument « Tableau » notre plage de cellule pour réaliser ce tri.

Les autres arguments optionnels n’auront pas a être fournis et (avec leurs valeurs par défaut) suffiront à réaliser un simple tri de notre colonne par ordre croissant.

On peut envisager le troisième argument « Ordre_Tri » si l’on souhaite trier par ordre décroissant, comme ci-dessous.

Mais pour toute autre utilisation de la fonction TRIER, que nous allons tout de même aborder ci-dessous (pour le fun), la fonction TRIERPAR sera préférable… (Je peux me tromper, si vous avez un cas contraire, merci de m’en faire part).

Autres Cas d’Utilisation Possibles… Mais Moins Pratiques que TRIERPAR…

Trier des Lignes sur Plusieurs Colonnes Selon un Critère Interne à la Plage de Cellules

Nous allons prendre l’exemple ci-dessous d’une table de données, avec les intitulés en colonnes, que nous souhaitons trier en fonction d’une seule colonne. Nous utiliserons la troisième colonne « Devise ».

Pour cela, on référencera notre table de données dans le premier argument « Tableau », et on fournira le deuxième argument « Index_Tri » avec le numéro de la colonne que nous souhaitons utiliser pour trier les données (ici la troisième donc « 3 »).

La fonction retournera une plage de cellules dynamique de la même taille que celle de l’argument « Tableau » mais triée selon l’index fourni.

Trier des Lignes sur Plusieurs Colonnes Selon Plusieurs Critères Internes à la Plage de Cellules

De même que ci-dessus, nous allons trier une plage de cellules, mais cette fois ci en fonction de plusieurs colonnes. Nous souhaitons trier la table de données par « ID Client » (colonne 2) puis par « Devise » (colonne 3), nous allons donc fournir ces 2 colonnes entre accolades « {} » dans le deuxième argument de la fonction TRIER.

Le résultat sera le même mais trié dans un premier temps par « ID Client », puis si la valeur « ID Client » est égale, le tri sera fait par « Devise ».

Trier des Colonnes sur Plusieurs Lignes Selon un Critère Interne à la Plage de Cellules

Le même principe est applicable si l’on souhaite trier une table de données dont les intitulés sont en lignes et leurs valeurs en colonnes. Il faudra tout de même spécifier le dernier argument « Par_Col » en tant que « VRAI ».

Dans l’exemple ci-dessous, on reprend la même table de données que dans les cas précédents, mais cette fois, transposée. Nous souhaitons trier uniquement par « Devise » (qui est la troisième ligne), et nous fournirons dans cet index « 3 » en tant que deuxième argument. On ignorera le troisième argument « Ordre_Tri » puisque nous souhaitons pas défaut l’odre croissant, et l’on donnera « VRAI » en dernier argument pour signaler que nos valeurs sont réparties sur plusieurs colonnes.

Trier des Colonnes sur Plusieurs Lignes Selon Plusieurs Critères Internes à la Plage de Cellules

Pour finir avec la fonction TRIER, reprenons le cas où nous souhaitons trier selon plusieurs critères, mais sur une table dont les valeurs sont réparties en colonnes.

Nous fournirons ici en premier argument la plage de données source, et en deuxième argument les index de lignes que nous souhaitons utiliser pour le tri (ici ce sera par « ID Client », donc « 2 »n et par « Devise », donc « 3 »). Le troisième argument sera ignoré, et nous fournirons le dernier argument « Par_Col » à « VRAI » pour indiquer le sens de notre table de données.

La Fonction TRIERPAR (SORTBY) : Trier des Données en Fonction de Critères Avancés

Présentation de la Fonction TRIERPAR

La fonction TRIERPAR nous retournera une plage de cellules dynamique triée, en ligne ou en colonne, selon un ou plusieurs critères internes ou externes. Elle se présente sous cette forme :

=TRIERPAR(Tableau; Par_Tableau1; [Ordre_Tri1]; [Par_Tableau2; Ordre_Tri2]; ...)

On peut donc l’utiliser avec seulement 2 arguments, dont un troisième optionnel, et répéter de manière optionnelle les arguments 2 et 3 tant que nécessaire pour spécifier plusieurs critères.

Le premier argument « Tableau » représente la plage de cellules en lignes ou en colonnes que l’on souhaite trier.

Le deuxième argument « Par_Tableau » définira la plage de cellules (de même taille en lignes ou en colonnes) que l’on souhaite utiliser comme critère de tri. Cette plage de cellules peut être intégrée dans « Tableau » ou indépendante.

Le troisième argument « Ordre_Tri » est optionnel et permettra et déterminer si l’on souhaite trier par ordre croissant (par défaut) avec la valeur « 1 » ou décroissant avec la valeur « -1 ».

De manière optionnelle, on pourra répéter les arguments 2 et 3 si l’on souhaite utiliser plusieurs critères de tri (le tri se fera dans l’ordre dans lequel les critères seront fournis : ligne/colonne du premier critère, et si égalité, ligne/colonne du second critère, etc…)

Dans l’ensemble des cas ci-dessous, je ne mentionnerai pas la variation Ordre Décroissant, il s’agira d’utiliser l’argument « Ordre_Tri » à « 1 » (ou vide) pour l’ordre croissant et « -1 » pour l’ordre décroissant à chaque critère.

Tri Simple Équilalent à la Fonction TRIER : Selon un ou Plusieurs Critères Intégrés à la Plage de Cellules

Trier Selon un Critère Intégré

Si l’on cherche à trier une seule colonne par ordre croissant, il est possible d’utiliser la fonction TRIERPAR avec comme premier et deuxième arguments la plage de cellules de cette colonne unique.

Dans ce cas, TRIER sera plus simple d’utilisation, mais il est possible de le faire avec TRIERPAR (Je recommande TRIER ici).

Si il s’agit de trier une ligne, TRIERPAR sera plus simple d’utilisation, sans avoir à fournir d’argument pour le spécifier. On fournira simplement en premier et deuxième argument la ligne de données à trier, et la fonction détectera automatiquement le sens de notre plage de cellules via le deuxième argument.

De même on pourra utiliser TRIERPAR pour trier plusieurs lignes/colonnes selon une plage de cellules intégrée, sans argument supplémentaire.

Trier Selon Plusieurs Critères Intégrés

Si l’on souhaite utiliser plusieurs critères de tri, dans une table de données en lignes ou en colonnes, on utilisera les arguments optionnels de la fonction TRIERPAR qui permettent de spécifier autant de critères de tri que souhaités.

Avec le même exemple, nous souhaitons trier par « ID Client » puis par « Devise », il nous suffira de fournir dans cet ordre chacune des plages de cellules contenant ces données.

Trier une Plage de Cellules Selon un ou Plusieurs Critères Indépendants

Là où la fonction TRIERPAR se différencie de la fonction TRIER, c’est sur le fait que les plages de cellules utilisées pour le tri ne doivent pas forcément faire partie de la table de données que l’on souhaite trier. La seule restriction est que la taille (nombre de lignes ou de colonnes) doit être identique.

Trier Selon un Critère Indépendant

Ajoutons une colonne « Montant Equiv USD » à l’exemple précédent. Cette colonne correspond au montant converti dans une devise unique « USD » afin de rendre les valeurs comparables. C’est maintenant en fonction de cette colonne que nous souhaitons trier nos données, sans pour autant qu’elle fasse partie du résultat. On utilisera simplement TRIERPAR avec comme premier argument la plage de cellules des données que nous souhaitons trier, et comme deuxième argument la plage de cellules de cette colonne indépendante.

Trier Selon Plusieurs Critères Indépendants

Même principes avec plusieurs critères indépendants, nous utiliserons les arguments optionnels de la fonction TRIERPAR autant de fois que souhaités (selon le nombre de critères de tri).

Modifions à nouveau l’exemple pour cette fois séparer l’ID Client de la table de données initiales. Nous souhaitons maintenant trier nos données dans un premier temps par « ID Client », puis si identique, par « Montant Equiv USD ».

Bref, Là où TRIERPAR Est Plus Efficace que TRIER

TRIERPAR peut réaliser un tri simple d’une seule colonne en fournissant pour le premier et le deuxième arguments cette même colonne. Ce sera le seul cas où TRIER sera plus simple d’utilisation puisqu’il ne suffira de lui fournir qu’un seul argument. (Et potentiellement sur la variation par ordre décroissant).

Pour le reste, TRIERPAR peut faire tout ce que TRIER fait, mais de manière plus intuitive et flexible. Et TRIERPAR peut faire plus encore !

  • TRIERPAR peut trier en fonction d’un ou plusieurs critères internes, tout comme TRIER. Mais on référencera des plages de cellules en tant que critères de tri (dans TRIERPAR) plutôt que des index (surtout si on doit gérer plusieurs index entre accolades « {} »…). Imaginons le cas où l’on ajoute des lignes/colonnes de données à l’intérieur de notre plage de cellules, on devra aller modifier les index dans la formule, ce qui ne sera pas le cas avec des plages de cellules référencées dans la formule.
  • TRIERPAR détectera automatiquement, selon la sélection de plage de cellules, si le tri doit être fait en ligne ou en colonne, alors qu’il faudra fournir un argument à TRIER pour le spécifier.
  • TRIERPAR permet également de trier une plage de cellules selon une autre plage de cellules de taille identique indépendantes, ce qui n’est pas le cas de TRIER à cause de son système d’index.
  • Et je le répète encore, TRIERPAR se base sur des plages de cellules plutôt que sur des index… et cela nous évite bien des casse-têtes…