Table des matières
Un moyen rapide de transformer une plage de cellules en une seule ligne à l'aide de la fonction TOROW fonction.
Microsoft Excel 365 a introduit plusieurs nouvelles fonctions permettant d'effectuer diverses manipulations avec des tableaux. Avec TOROW, vous pouvez effectuer des transformations de plage à rangée en un rien de temps. Voici une liste des tâches que cette nouvelle fonction peut accomplir :
Fonction TOROW d'Excel
La fonction TOROW d'Excel est utilisée pour convertir un tableau ou une plage de cellules en une seule ligne.
La fonction prend un total de trois arguments, dont seul le premier est requis.
TOROW(tableau, [ignore], [scan_by_column])Où :
Array (obligatoire) - un tableau ou une plage à transformer en une seule ligne.
Ignorer (facultatif) - détermine s'il faut ignorer les blancs ou/et les erreurs. Peut prendre l'une de ces valeurs :
- 0 ou omis (par défaut) - conserve toutes les valeurs
- 1 - ignorer les blancs
- 2 - ignorer les erreurs
- 3 - ignorer les blancs et les erreurs
Scan_by_column (facultatif) - définit la façon d'analyser le tableau :
- FALSE ou omis (par défaut) - balaye le tableau horizontalement par ligne.
- TRUE - balaye le tableau verticalement par colonne.
Conseils :
- Pour transformer un tableau en une seule colonne, utilisez la fonction TOCOL.
- Pour effectuer la transformation inverse de ligne à tableau, utilisez soit la fonction WRAPCOLS pour transformer le tableau en colonnes, soit la fonction WRAPROWS pour transformer le tableau en lignes.
- Pour transformer des lignes en colonnes, utilisez la fonction TRANSPOSE.
Disponibilité de TOROW
TOROW est une nouvelle fonction, qui n'est prise en charge que dans Excel pour Microsoft 365 (pour Windows et Mac) et Excel pour le web.
Formule TOROW de base en Excel
Pour effectuer une simple transformation de plage à ligne, utilisez la formule TOROW dans sa forme de base. Pour cela, vous devez définir uniquement le premier argument ( tableau ).
Par exemple, pour transformer un tableau bidimensionnel composé de 3 colonnes et 3 lignes en une seule ligne, la formule est la suivante :
=TOROW(A3:C6)
Vous entrez la formule dans une seule cellule (A10 dans notre cas), et elle se déverse automatiquement dans autant de cellules que nécessaire pour contenir tous les résultats. En termes d'Excel, la plage de sortie entourée d'une fine bordure bleue est appelée plage de déversement.
Comment fonctionne cette formule :
Tout d'abord, une plage de cellules fournie est transformée en un tableau bidimensionnel. Remarquez les colonnes délimitées par des virgules et les lignes séparées par des points-virgules :
{"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}
Ensuite, la fonction TOROW lit le tableau de gauche à droite et le convertit en un tableau horizontal unidimensionnel :
{"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}
Le résultat va dans la cellule A10, d'où il se déverse dans la cellule voisine de droite.
Transformez la plage en ligne en ignorant les blancs et les erreurs.
Par défaut, la fonction TOROW conserve toutes les valeurs du tableau source, y compris les cellules vides et les erreurs. Dans la sortie, les valeurs nulles apparaissent à la place des cellules vides, ce qui peut être assez déroutant.
A exclure les blancs fixer le ignorer à 1 :
=TOROW(A3:C5, 1)
A ignorer les erreurs fixer le ignorer argument à 2 :
=TOROW(A3:C5, 2)
Pour sauter les deux, les blancs et les erreurs , utilisez 3 pour le ignorer argument :
=TOROW(A3:C5, 3)
L'image ci-dessous montre les trois scénarios en action :
Lire le tableau horizontalement ou verticalement
Avec le comportement par défaut, la fonction TOROW traite le tableau horizontalement de gauche à droite. Pour balayer les valeurs par colonne de haut en bas, vous définissez le 3ème argument ( scan_by_column ) à VRAI ou 1.
Par exemple, pour lire la plage source par ligne, la formule de E3 est la suivante :
=TOROW(A3:C5)
Pour balayer la plage par colonne, la formule en E8 est :
=TOROW(A3:C5, ,TRUE)
Dans les deux cas, les tableaux résultants ont la même taille, mais les valeurs sont disposées dans un ordre différent.
Fusionner plusieurs plages en une seule ligne
Pour combiner plusieurs plages non adjacentes en une seule ligne, vous devez d'abord les empiler horizontalement ou verticalement en un seul tableau à l'aide de HSTACK ou VSTACK, respectivement, puis utiliser la fonction TOROW pour convertir le tableau combiné en une ligne.
En fonction de votre logique d'entreprise, l'une des formules suivantes exécutera la tâche.
Empiler des tableaux horizontalement et les convertir par ligne
Avec la première plage en A3:C4 et la deuxième plage en A8:C9, la formule ci-dessous empilera les deux plages horizontalement dans un seul tableau, puis le transformera en une ligne lisant les valeurs de gauche à droite. Le résultat est en E3 dans l'image ci-dessous.
=TOROW(HSTACK(A3:C4, A8:C9))
Empiler des tableaux horizontalement et les convertir par colonne
Pour lire le tableau empilé verticalement de haut en bas, vous définissez le 3ème argument de TOROW à TRUE comme indiqué en E5 dans l'image ci-dessous :
=TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)
Empiler les tableaux verticalement et convertir par ligne
Pour ajouter chaque tableau suivant au bas du tableau précédent et lire le tableau combiné horizontalement, la formule de E12 est la suivante :
=TOROW(VSTACK(A3:C4, A8:C9))
Empiler les tableaux verticalement et convertir par colonne
Pour ajouter chaque tableau suivant au bas du précédent et balayer le tableau combiné verticalement, la formule est la suivante :
=TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)
Pour mieux comprendre la logique, observez l'ordre différent des valeurs dans les tableaux résultants :
Extraire les valeurs uniques d'une plage dans une ligne
Depuis Microsoft Excel 2016, nous disposons d'une fonction merveilleuse, appelée UNIQUE, qui permet d'obtenir facilement des valeurs uniques à partir d'une seule colonne ou ligne. Toutefois, elle ne peut pas gérer les tableaux à plusieurs colonnes. Pour surmonter cette limitation, utilisez les fonctions UNIQUE et TOROW ensemble.
Par exemple, pour extraire toutes les valeurs différentes (distinctes) de la plage A2:C7 et placer les résultats sur une seule ligne, la formule est la suivante :
=UNIQUE(TOROW(A2:C7), TRUE)
Comme TOROW renvoie un tableau horizontal unidimensionnel, nous définissons le 2ème ( par_col ) de UNIQUE à VRAI pour comparer les colonnes entre elles.
Si vous souhaitez que les résultats soient classés par ordre alphabétique, intégrez la formule ci-dessus dans la fonction SORT :
=TRI(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )
Comme pour UNIQUE, le par_col de SORT est également défini comme VRAI.
Alternative à TOROW pour Excel 365 - 2010
Dans les versions d'Excel où la fonction TOROW n'est pas disponible, vous pouvez transformer une plage en une seule ligne en utilisant une combinaison de quelques fonctions différentes qui fonctionnent dans les anciennes versions. Ces solutions sont plus complexes, mais elles fonctionnent.
Pour balayer la plage horizontalement, la formule générique est la suivante :
INDEX( gamme , QUOTIENT(COLONNE (A1)-1, COLONNES( gamme ))+1, MOD(COLONNE(A1)-1, COLONNES( gamme ))+1)Pour balayer la plage verticalement, la formule générique est la suivante :
INDEX( gamme , MOD(COLONNE(A1)-1, COLONNES( gamme ))+1, QUOTIENT(COLONNE (A1)-1, COLONNES( gamme ))+1)Pour notre échantillon de données en A3:C5, les formules prennent cette forme :
Pour balayer la plage par ligne :
=INDEX($A$3:$C$5, QUOTIENT(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1, MOD(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1)
Cette formule est une alternative à la fonction TOROW avec le 3ème argument défini à FALSE ou omis :
=TOROW(A3:C5)
Pour balayer la plage par colonne :
=INDEX($A$3:$C$5, MOD(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1, QUOTIENT(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1)
Cette formule est équivalente à la fonction TOROW avec le 3ème argument défini comme VRAI :
=TOROW(A3:C5, ,TRUE)
Veuillez noter que, contrairement à la fonction de tableau dynamique TOROW, ces formules traditionnelles doivent être saisies dans chaque cellule où vous voulez que les résultats apparaissent. Dans notre cas, la première formule (par ligne) va en E3 et est copiée par M3. La deuxième formule (par colonne) atterrit en E8 et est glissée par M8.
Pour que les formules soient copiées correctement, nous verrouillons la plage en utilisant des références absolues ($A$3:$C$5). Une plage nommée fera également l'affaire.
Si vous avez copié les formules dans plus de cellules que nécessaire, une erreur #REF ! apparaîtra dans les cellules "supplémentaires". Pour résoudre ce problème, intégrez votre formule dans la fonction IFERROR comme suit :
=IFERROR(INDEX($A$3:$C$5, QUOTIENT(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1, MOD(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1), "")
Comment fonctionnent ces formules
Vous trouverez ci-dessous une décomposition détaillée de la première formule qui classe les valeurs par ligne :
=INDEX($A$3:$C$5, QUOTIENT(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1, MOD(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1)
Au cœur de la formule, nous utilisons la fonction INDEX pour obtenir la valeur d'une cellule en fonction de sa position relative dans la plage.
Le site numéro de rang est calculé par cette formule :
QUOTIENT(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1
L'idée est de produire une séquence de nombres répétitifs comme 1,1,1,2,2,2,3,3,3, ... où chaque nombre se répète autant de fois qu'il y a de colonnes dans la plage source. Voici comment faire :
QUOTIENT renvoie la partie entière d'une division.
Pour numérateur nous utilisons COLUMN(A1)-1, qui renvoie un numéro de série allant de 0 dans la première cellule où la formule est saisie à n (nombre total de valeurs dans la plage moins 1) dans la dernière cellule où la formule a été saisie. Dans cet exemple, nous avons 0 en E2 et 8 en M3.
Pour dénominateur Nous utilisons COLUMNS($A$3:$C$5)), qui renvoie un nombre constant égal au nombre de colonnes de votre plage (3 dans notre cas).
Par conséquent, la fonction QUOTIENT renvoie 0 dans les 3 premières cellules (E3:G3), auxquelles nous ajoutons 1, de sorte que le numéro de ligne est 1.
Pour les 3 cellules suivantes (H3:J3), QUOTIENT renvoie 1, et +1 donne le numéro de ligne 2. Et ainsi de suite.
Pour calculer le numéro de colonne vous construisez une séquence numérique appropriée à l'aide de la fonction MOD :
MOD(COLONNE(A1)-1, COLONNES($A$3:$C$5))+1
Comme il y a 3 colonnes dans notre plage, la séquence doit ressembler à : 1,2,3,1,2,3,...
La fonction MOD renvoie le reste après la division.
Dans E3, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+
devient
MOD(1-1, 3)+1)
et renvoie 1.
Dans F3, MOD(COLUMN(B1)-1, COLUMNS($A$3:$C$5))+
devient
MOD(2-1, 3)+1)
et renvoie 2.
Une fois que les numéros de ligne et de colonne sont établis, INDEX va facilement chercher la valeur à l'intersection de cette ligne et de cette colonne.
En E3, INDEX($A$3:$C$5, 1, 1) renvoie une valeur de la 1ère ligne et de la 1ère colonne de la plage référencée, c'est-à-dire de la cellule A3.
Dans F3, INDEX($A$3:$C$5, 1, 2) renvoie une valeur de la 1ère ligne et de la 2ème colonne, c'est-à-dire de la cellule B3.
Et ainsi de suite.
La deuxième formule, qui balaie la plage par colonne, fonctionne de manière similaire, à la différence que nous utilisons MOD pour calculer le numéro de ligne et QUOTIENT pour déterminer le numéro de colonne.
La fonction TOROW ne fonctionne pas
Si la fonction TOROW donne lieu à une erreur, il est fort probable qu'il s'agisse de l'une de ces raisons :
#NAME ? erreur
Avec la plupart des fonctions Excel, une erreur #NAME ? indique clairement que le nom de la fonction est mal orthographié. Avec TOROW, cela peut également signifier que la fonction n'est pas disponible dans votre Excel. Si votre version d'Excel est différente de 365, essayez d'utiliser une alternative TOROW.
#NUM erreur
Une erreur #NUM indique que le tableau retourné ne peut pas tenir dans une ligne. Le plus souvent, cela se produit lorsque vous référencez des colonnes et/ou des lignes entières au lieu d'une plage plus petite.
#SPILL erreur
Dans la plupart des cas, une erreur #SPILL suggère que la ligne dans laquelle vous avez saisi la formule ne comporte pas suffisamment de cellules vides pour y déverser les résultats. Si les cellules voisines sont visuellement vides, assurez-vous qu'elles ne contiennent pas d'espaces ou d'autres caractères non imprimables. Pour plus d'informations, voir Ce que signifie l'erreur #SPILL dans Excel.
Voilà comment utiliser la fonction TOROW dans Excel pour convertir un tableau ou une plage à deux dimensions en une seule ligne. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !
Cahier d'exercices à télécharger
Fonction TOROW d'Excel - exemples de formules (fichier .xlsx)