Comment trier les lignes d’un tableau en 2D dans Google Sheets

Le tri des lignes est le processus qui consiste à trier chaque ligne d’un tableau en 2D à l’aide d’une formule de tableau dans Google Sheets. Pour ce faire, nous pouvons utiliser les fonctions BYROW ou REDUCE avec la fonction SORT. La fonction QUERY peut également être utilisée, mais elle est plus complexe pour certains utilisateurs.

Voici un exemple de tri des lignes d’un tableau en 2D dans Google Sheets:

Exemple de données triées (dans la plage de cellules B2:E5)

Les données sources sont dans la plage B2:E5, et le résultat se trouve dans la plage B9:E12.

Nous pouvons facilement gérer cela à l’aide d’une formule non matricielle (copier-coller ou remplissage vers le bas) dans Google Sheets. Cependant, je préfère utiliser une formule de tableau car les données sources ne sont pas toujours physiques. Elles peuvent également être une expression telle que la sortie de la fonction QUERY ou d’autres fonctions.

Cependant, pour ceux d’entre vous qui souhaitent voir la formule non matricielle pour trier chaque ligne individuellement dans un tableau 2D, la voici:

=TRANSPOSE(SORT(TRANSPOSE(B2:E2),1,1))

Remarque: Pour trier les lignes par ordre décroissant, remplacez 1 par 0.

Insérez la formule ci-dessus dans la cellule B9 et copiez-collez-la dans B10:B12. Vous pouvez également faire glisser le coin inférieur droit de la cellule B9 (petit carré bleu) vers le bas.

Tri ligne par ligne: Formule non matricielle

Nous allons convertir cela en une formule de tableau, et je vais expliquer le rôle de TRANSPOSE dans le processus.

Tri ligne par ligne dans un tableau 2D: BYROW

Commençons par utiliser BYROW, qui est ma solution recommandée pour le tri ligne par ligne d’un tableau 2D dans Google Sheets.

Dans l’exemple ci-dessus, nous avons un tableau 2D dans la plage B2:E5 et nous pouvons trier chaque ligne de ce tableau par ordre croissant en utilisant la formule de tableau suivante dans la cellule B9:

=BYROW(B2:E5,LAMBDA(ligne,TRANSPOSE(SORT(TRANSPOSE(ligne),1,1))))

Vous n’êtes pas obligé d’entrer la formule dans la cellule B9. La règle générale est d’entrer la formule dans n’importe quelle cellule et de lui donner suffisamment d’espace (cellules vides) pour se développer vers le bas et vers la droite.

Si vous souhaitez trier les lignes par ordre décroissant, utilisez celle-ci:

=BYROW(B2:E5,LAMBDA(ligne,TRANSPOSE(SORT(TRANSPOSE(ligne),1,0))))

La différence est négligeable, comme vous pouvez le voir dans les formules elles-mêmes.

Comment fonctionne cette formule?

Syntaxe BYROW:

BYROW(tableau_ou_plage, lambda)

La fonction BYROW applique une lambda à chaque ligne du tableau_ou_plage et renvoie un tableau des résultats.

  • tableau_ou_plage: B2:E5 (il sera séparé par des lignes telles que B2:E2, B3:E3, B4:E4 et B5:E5).
  • lambda: Veuillez vous référer à la syntaxe ci-dessous.

Syntaxe LAMBDA: LAMBDA([nom, ...], expression_formule)

  • nom: ligne (qui représente la ligne dans le tableau_ou_plage).
  • expression_formule: TRANSPOSE(SORT(TRANSPOSE(ligne),1,1))

Cette expression_formule transpose d’abord la ligne, puis trie la ligne transposée, et transpose à nouveau la ligne triée. Cela s’applique à chaque ligne du tableau_ou_plage.

Conseil supplémentaire

Nous pouvons également utiliser les fonctions TOCOL et TOROW à la place de la fonction TRANSPOSE dans la partie expression_formule. Voici l’expression de la formule:

TOROW(SORT(TOCOL(ligne), 1, 1))

Cette expression_formule convertit d’abord une plage de cellules en une seule colonne à l’aide de la fonction TOCOL, puis trie la colonne, et enfin reconvertit la colonne triée en une ligne à l’aide de la fonction TOROW.

La fonction TOCOL convertit une plage de cellules en une seule colonne, tandis que la fonction TOROW convertit une plage de cellules en une seule ligne.

En utilisant les fonctions TOCOL et TOROW, nous pouvons éviter d’utiliser la fonction TRANSPOSE deux fois. Cela peut rendre la formule plus concise et plus facile à comprendre.

J’espère que cette explication vous a aidé à comprendre comment utiliser la fonction BYROW pour trier ligne par ligne dans un tableau 2D dans Google Sheets.

Tri ligne par ligne dans un tableau 2D: REDUCE

Bien que je préfère l’approche BYROW ci-dessus pour le tri ligne par ligne d’un tableau 2D, vous pouvez également utiliser la fonction REDUCE pour faire la même chose.

Remarque: cela ne vise qu’à vous aider à en apprendre davantage sur l’utilisation avancée de REDUCE dans Google Sheets.

Formule:

=REDUCE(,SEQUENCE(ROWS(B2:E5)),LAMBDA(a,v,IFNA(VSTACK(a,TOROW(SORT(TOCOL(CHOOSEROWS(B2:E5,v))))))))

Elle présente deux inconvénients, non en termes de performances, mais en termes de codage et de sortie.

  • Elle est plus complexe à coder que l’approche BYROW.
  • Elle renvoie une ligne vide en haut du résultat.

Pouvez-vous expliquer comment cette formule effectue le tri ligne par ligne dans Google Sheets?

Oui. Voici la structure de la formule.

Syntaxe REDUCE:

REDUCE(valeur_initiale, tableau_ou_plage, lambda)

  • valeur_initiale: null
  • tableau_ou_plage: SEQUENCE(ROWS(B2:E5)) (les numéros de série de 1 à 4 représentent les lignes dans la plage B2:E5).
  • lambda: Veuillez voir la syntaxe ci-dessous.

Syntaxe LAMBDA: LAMBDA([nom1, nom2], expression_formule)

  • nom1: a qui représente l’accumulateur (la valeur accumulée à chaque étape).
  • nom2: v qui représente la ligne dans le tableau_ou_plage.
  • expression_formule: IFNA(VSTACK(a,TOROW(SORT(TOCOL(CHOOSEROWS(B2:E5,v))))))

La fonction VSTACK empile verticalement l’accumulateur (qui est initialement null) avec ce qui suit: TOROW(SORT(TOCOL(CHOOSEROWS(B2:E5,v))))

Que fait-il?

La fonction CHOOSEROWS dans l’expression de formule renvoie la première ligne du tableau. La fonction TOCOL convertit la ligne en une colonne. La fonction SORT trie la colonne. La fonction TOROW transforme à nouveau la colonne triée en une ligne.

Le tableau est passé à l’accumulateur.

Ce processus se répète pour chaque ligne du tableau. La valeur finale de l’accumulateur, qui est renvoyée par la formule, est un tableau 2D trié ligne par ligne.

Pour simplifier, la formule prend la première ligne du tableau, la trie, puis l’ajoute à l’accumulateur. Ce processus se répète pour chaque ligne du tableau, et la valeur finale de l’accumulateur est un tableau 2D trié ligne par ligne.

Voilà. Merci de votre attention. Profitez-en bien !


Cet article a été rédigé exclusivement pour Crawlan.com. Pour plus de trucs et astuces, visitez notre site https://crawlan.com.

Articles en lien