Astuces pour trier les lignes dans une matrice 2D avec Google Sheets

Vous êtes-vous déjà demandé comment trier chaque ligne d’une matrice 2D dans Google Sheets ? Dans cet article, je vais vous montrer comment réaliser cette opération de manière simple et efficace.

Tri des lignes dans une matrice 2D avec BYROW

Pour trier chaque ligne d’une matrice 2D, je recommande d’utiliser la fonction BYROW dans Google Sheets. Reprenons l’exemple suivant : une matrice 2D située dans la plage B2:E5 que nous souhaitons trier par ordre croissant pour chaque ligne. Pour cela, utilisez la formule suivante dans la cellule B9 :

=BYROW(B2:E5; LAMBDA(row; TRANSPOSE(SORT(TRANSPOSE(row); 1; 1))))

Si vous préférez un tri par ordre décroissant, utilisez plutôt cette formule :

=BYROW(B2:E5; LAMBDA(row; TRANSPOSE(SORT(TRANSPOSE(row); 1; 0))))

Notez que vous pouvez entrer cette formule dans n’importe quelle cellule et lui donner suffisamment d’espace pour s’étendre vers le bas et vers la droite.

Explication de la formule BYROW

La fonction BYROW applique une lambda à chaque ligne de la matrice spécifiée et renvoie un tableau avec les résultats. Dans notre cas :

  • array_or_range : B2:E5 (séparé par les lignes B2:E2, B3:E3, B4:E4 et B5:E5).
  • lambda : se réfère à la syntaxe suivante.

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

  • nom : row (qui représente la ligne dans la matrice).
  • expression_formule : TRANSPOSE(SORT(TRANSPOSE(row); 1; 1))

Cette expression de formule transpose d’abord la ligne, puis la trie, et transpose à nouveau la ligne triée. Ceci est appliqué à chaque ligne de la matrice.

Astuce supplémentaire

Au lieu d’utiliser la fonction TRANSPOSE deux fois, vous pouvez également utiliser les fonctions TOCOL et TOROW. L’expression de formule serait alors :

TOROW(SORT(TOCOL(row); 1; 1))

La fonction TOCOL convertit une plage de cellules en une colonne unique, tandis que la fonction TOROW convertit une plage de cellules en une ligne unique. En utilisant ces fonctions, vous pouvez simplifier et rendre la formule plus facile à comprendre.

J’espère que cette explication vous a aidé à comprendre comment utiliser la fonction BYROW pour trier les lignes dans une matrice 2D avec Google Sheets.

Tri des lignes dans une matrice 2D avec REDUCE

Bien que je recommande la méthode BYROW, vous pouvez également utiliser la fonction REDUCE pour réaliser le tri des lignes dans une matrice 2D. Voici la formule à utiliser :

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

Cette méthode présente deux inconvénients : elle est plus complexe à coder que l’approche BYROW et elle renvoie une ligne vide en haut du résultat.

Explication de la formule REDUCE

La syntaxe de la fonction REDUCE est la suivante :

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 de la plage B2:E5).
  • lambda : se réfère à la syntaxe suivante.

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 la plage.
  • expression_formule : IFNA(VSTACK(a, TOROW(SORT(TOCOL(CHOOSEROWS(B2:E5,v))))))

La fonction VSTACK empile verticalement l’accumulateur (initialement null) avec l’expression suivante : TOROW(SORT(TOCOL(CHOOSEROWS(B2:E5,v))))

Cette expression fonctionne de la manière suivante :

  • La fonction CHOOSEROWS renvoie la première ligne de la matrice.
  • La fonction TOCOL convertit la ligne en une colonne.
  • La fonction SORT trie la colonne.
  • La fonction TOROW transforme la colonne triée en une ligne.

Cette opération est répétée pour chaque ligne de la matrice. La valeur finale de l’accumulateur, qui est renvoyée par la formule, est une matrice 2D triée ligne par ligne.

En résumé, la formule prend la première ligne de la matrice, la trie et l’ajoute à l’accumulateur. Ce processus est répété pour chaque ligne de la matrice, et la valeur finale de l’accumulateur est une matrice 2D triée ligne par ligne.

Voilà, c’est tout ! J’espère que cet article vous a été utile pour comprendre comment trier les lignes dans une matrice 2D avec Google Sheets. Si vous souhaitez en savoir plus sur d’autres fonctionnalités impressionnantes de Google Sheets, visitez Crawlan.com.

Row-Wise Sorting: Non-Array Formula

Articles en lien