Retour aux fonctions

SORT

Trie les lignes d'une matrice ou d'une plage donnée selon les valeurs d'une ou plusieurs colonnes.

FilterSORT(range, sort_column, is_ascending, [sort_column2], [is_ascending2])

SORT (TRIER dans un Google Sheets en français) renvoie une copie triée d'une plage, ordonnée selon une ou plusieurs colonnes, sans toucher aux données d'origine. Comme c'est une formule, la vue triée se met à jour toute seule quand la source change, contrairement au menu Données > Trier la plage, qui réorganise les cellules sur place une seule fois.

Syntaxe

=SORT(range, sort_column, is_ascending, [sort_column2, is_ascending2, ...])
  • range : Les données à trier.
  • sort_column : La colonne de tri, indiquée par un numéro dans la plage (1 est la première colonne de range), ou par une plage distincte de même hauteur.
  • is_ascending : TRUE pour A à Z / du plus petit au plus grand, FALSE pour Z à A / du plus grand au plus petit. Cet argument est obligatoire.
  • Les paires supplémentaires sort_column / is_ascending ajoutent des critères de départage.

Exemples de base

Avec des noms en A2:A100 :

=SORT(A2:A100, 1, TRUE)

Trie la liste par ordre alphabétique.

Avec un tableau en A2:C100 (Nom, Service, Salaire) :

=SORT(A2:C100, 3, FALSE)

Trie tout le tableau par salaire, du plus élevé au plus bas. Chaque ligne reste intacte : les noms et les services suivent leurs salaires.

Trier selon plusieurs colonnes

Ajoutez d'autres paires pour départager. Tri par service de A à Z, puis par salaire décroissant au sein de chaque service :

=SORT(A2:C100, 2, TRUE, 3, FALSE)

Trier selon une colonne extérieure à la plage

sort_column peut être une plage distincte de même hauteur que range. Cela permet de trier une colonne d'après une autre sans renvoyer la colonne de tri :

=SORT(A2:A100, B2:B100, FALSE)

Cette formule renvoie les noms de la colonne A, ordonnés selon les valeurs de la colonne B.

Trier selon une valeur calculée

Vous pouvez aussi trier selon une expression, sans colonne d'aide. Par exemple, trier selon la longueur de chaque nom :

=SORT(A2:A100, ARRAYFORMULA(LEN(A2:A100)), TRUE)

Ou selon le dernier mot d'un nom complet :

=SORT(A2:A100, ARRAYFORMULA(REGEXEXTRACT(A2:A100, "\S+$")), TRUE)

Combiner SORT avec d'autres fonctions

SORT est surtout utile comme maillon d'une chaîne :

  • Filtrer, puis trier : =SORT(FILTER(A2:C100, B2:B100 = "Ventes"), 3, FALSE)
  • Valeurs uniques triées : =SORT(UNIQUE(A2:A100))
  • Top 5 des valeurs : =ARRAY_CONSTRAIN(SORT(A2:C100, 3, FALSE), 5, 3). ARRAY_CONSTRAIN limite le résultat à 5 lignes et 3 colonnes. SORTN fait la même chose en une étape.
  • Trier plusieurs plages ensemble : =SORT({A2:C50; E2:G50}, 1, TRUE) empile deux tableaux, puis trie le résultat.

Comment SORT traite les différents types de données

  • Les nombres sont triés numériquement : 2 vient avant 10.
  • Le texte est trié alphabétiquement, sans tenir compte de la casse.
  • Les données mixtes d'une colonne sont triées dans l'ordre : nombres, texte, booléens, avec les cellules vides en dernier. Si des nombres sont stockés comme du texte, ils sont triés comme du texte ("10" avant "2"). Convertissez-les d'abord avec VALUE.
  • Les dates sont triées chronologiquement si ce sont de vraies dates et non du texte qui y ressemble.

Erreurs courantes

  • #VALUE! ... « La colonne de tri dépasse la plage ». sort_column est supérieur au nombre de colonnes de range. Dans SORT(A2:C100, 4, TRUE), il n'y a pas de quatrième colonne.
  • #VALUE! avec une plage de tri distincte. La plage de tri n'a pas le même nombre de lignes que range.
  • #REF! : le résultat de la matrice n'a pas été développé. Quelque chose bloque les cellules dont le résultat a besoin. Videz la zone en dessous et à droite.
  • En-têtes triés avec les données. Laissez la ligne d'en-tête hors de range (commencez en ligne 2) et placez les en-têtes séparément au-dessus de la formule.

SORT, SORTN ou le menu de tri ?

Utilisez SORT pour obtenir une copie triée vivante, pilotée par formule. Utilisez SORTN quand vous ne voulez que les N premières lignes. Utilisez Données > Trier la plage pour réorganiser physiquement les cellules quand les données n'ont pas besoin de rester liées.

Questions fréquentes

SORT modifie-t-elle les données d'origine ? Non. Elle ne crée qu'une copie triée.

Peut-on trier par ordre décroissant sans écrire FALSE ? Le troisième argument est obligatoire, il faut donc donner TRUE ou FALSE. Les nombres fonctionnent aussi : 0 vaut FALSE et tout autre nombre vaut TRUE.

Peut-on trier une ligne à l'horizontale ? Oui. Entourez-la de TRANSPOSE : =TRANSPOSE(SORT(TRANSPOSE(A1:H1))).

Fonctions associées

  • SORTN : Renvoie les N premières lignes d'une plage triée.
  • FILTER : Renvoie les lignes qui remplissent une condition.
  • UNIQUE : Renvoie les lignes distinctes d'une plage.
  • QUERY : Filtrer, trier et agréger en une seule formule avec order by.
  • ARRAYFORMULA : Applique une formule à toute une plage.

Articles associés

Newsletter

Plus d'exemples sur SORT arrivent bientôt.

Nous préparons des mises à jour courtes et pratiques pour les utilisateurs avancés de Sheets.