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 (1est la première colonne derange), ou par une plage distincte de même hauteur.is_ascending:TRUEpour A à Z / du plus petit au plus grand,FALSEpour Z à A / du plus grand au plus petit. Cet argument est obligatoire.- Les paires supplémentaires
sort_column/is_ascendingajoutent 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_CONSTRAINlimite le résultat à 5 lignes et 3 colonnes.SORTNfait 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 :
2vient avant10. - 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 avecVALUE. - 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_columnest supérieur au nombre de colonnes derange. DansSORT(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 querange.#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 avecorder by.ARRAYFORMULA: Applique une formule à toute une plage.