Convertir une colonne/ligne en tableau dans Excel : fonctions WRAPCOLS & ; WRAPROWS

  • Partage Ça
Michael Brown

La façon la plus rapide de transformer une colonne ou une ligne de valeurs en un tableau à deux dimensions est d'utiliser la fonction WRAPCOLS ou WRAPROWS.

Depuis les premiers jours d'Excel, il a été très bon pour calculer et analyser les chiffres. Mais la manipulation des tableaux a toujours été un défi. L'introduction des tableaux dynamiques a rendu l'utilisation des formules de tableau beaucoup plus facile. Et maintenant, Microsoft publie un ensemble de nouvelles fonctions de tableau dynamique pour manipuler et remodeler les tableaux. Ce tutoriel vous apprendra à utiliser deux de ces fonctions,WRAPCOLS et WRAPROWS, pour transformer une colonne ou une ligne en un tableau 2D en un rien de temps.

    Fonction WRAPCOLS d'Excel

    La fonction WRAPCOLS d'Excel transforme une ligne ou une colonne de valeurs en un tableau bidimensionnel sur la base du nombre spécifié de valeurs par ligne.

    La syntaxe a les arguments suivants :

    WRAPCOLS(vecteur, wrap_count, [pad_with])

    Où :

    • vecteur (obligatoire) - le tableau ou la plage unidimensionnelle source.
    • nombre d'enveloppes (obligatoire) - le nombre maximum de valeurs par colonne.
    • pad_with (facultatif) - la valeur à ajouter à la dernière colonne si le nombre d'éléments est insuffisant pour la remplir. Si elle est omise, les valeurs manquantes seront complétées par #N/A (par défaut).

    Par exemple, pour transformer la plage B5:B24 en un tableau à 2 dimensions avec 5 valeurs par colonne, la formule est la suivante :

    =WRAPROWS(B5:B24, 5)

    Vous saisissez la formule dans n'importe quelle cellule et elle s'étend automatiquement à autant de cellules que nécessaire. Dans la sortie WRAPCOLS, les valeurs sont disposées verticalement, de haut en bas, sur la base de l'ordre de priorité de la formule. nombre d'enveloppes Une fois le compte atteint, une nouvelle colonne est lancée.

    Fonction WRAPROWS d'Excel

    La fonction WRAPROWS d'Excel convertit une ligne ou une colonne de valeurs en un tableau bidimensionnel en fonction du nombre de valeurs par ligne que vous spécifiez.

    La syntaxe est la suivante :

    WRAPROWS(vecteur, wrap_count, [pad_with])

    Où :

    • vecteur (obligatoire) - le tableau ou la plage unidimensionnelle source.
    • nombre d'enveloppes (obligatoire) - le nombre maximum de valeurs par ligne.
    • pad_with (facultatif) - la valeur à ajouter à la dernière ligne si le nombre d'éléments est insuffisant pour la remplir. La valeur par défaut est #N/A.

    Par exemple, pour transformer la plage B5:B24 en un tableau 2D comportant 5 valeurs dans chaque ligne, la formule est la suivante :

    =WRAPROWS(B5:B24, 5)

    Vous saisissez la formule dans la cellule supérieure gauche de la plage de déversement, et elle remplit automatiquement toutes les autres cellules. La fonction WRAPROWS organise les valeurs horizontalement, de gauche à droite, en fonction de l'indice de déversement. nombre d'enveloppes Une fois le nombre atteint, il commence une nouvelle ligne.

    Disponibilité des WRAPCOLS et WRAPROWS

    Ces deux fonctions sont uniquement disponibles dans Excel pour Microsoft 365 (Windows et Mac) et Excel pour le web.

    Dans les versions antérieures, vous pouvez utiliser des formules traditionnelles plus complexes pour effectuer des transformations de colonne à tableau et de ligne à tableau. Plus loin dans ce tutoriel, nous aborderons en détail les solutions alternatives.

    Conseil : pour effectuer une opération inverse, c'est-à-dire pour transformer un tableau 2D en une seule colonne ou ligne, utilisez respectivement la fonction TOCOL ou TOROW.

    Comment convertir une colonne/ligne en plage dans Excel - exemples

    Maintenant que vous avez compris l'usage de base, examinons de plus près quelques cas plus spécifiques.

    Définir le nombre maximum de valeurs par colonne ou par ligne

    En fonction de la structure de vos données d'origine, vous pouvez les réorganiser en colonnes (WRAPCOLS) ou en lignes (WRAPROWS). Quelle que soit la fonction que vous utilisez, c'est la fonction nombre d'enveloppes qui détermine le nombre maximal de valeurs dans chaque colonne/ligne.

    Par exemple, pour transformer la plage B4:B23 en un tableau 2D, de sorte que chaque colonne ait un maximum de 10 valeurs, utilisez cette formule :

    =WRAPCOLS(B4:B23, 10)

    Pour réorganiser la même plage par ligne, de sorte que chaque ligne ait un maximum de 4 valeurs, la formule est la suivante :

    =WRAPROWS(B4:B23, 4)

    L'image ci-dessous montre comment cela se présente :

    Remplir les valeurs manquantes dans le tableau résultant

    Dans le cas où il n'y a pas assez de valeurs pour remplir toutes les colonnes/lignes de la plage résultante, WRAPROWS et WRAPCOLS renverront des erreurs #N/A pour conserver la structure du tableau 2D.

    Pour modifier le comportement par défaut, vous pouvez fournir une valeur personnalisée pour le paramètre facultatif pad_with argument.

    Par exemple, pour transformer l'intervalle B4:B21 en un tableau 2D d'une largeur maximale de 5 valeurs, et remplir la dernière ligne de tirets s'il n'y a pas assez de données pour la remplir, utilisez cette formule :

    =WRAPROWS(B4:B21, 5, "-")

    Pour remplacer les valeurs manquantes par des chaînes de longueur nulle (blancs), la formule est la suivante :

    =WRAPROWS(B4:B21, 5, "")

    Veuillez comparer les résultats avec le comportement par défaut (formule en D5) où pad_with est omise :

    Fusionner plusieurs lignes en une plage 2D

    Pour combiner plusieurs lignes distinctes en un seul tableau 2D, vous devez d'abord empiler les lignes horizontalement à l'aide de la fonction HSTACK, puis envelopper les valeurs à l'aide de WRAPROWS ou WRAPCOLS.

    Par exemple, pour fusionner les valeurs de 3 lignes (B5:J5, B7:G7 et B9:F9) et les regrouper en colonnes, chacune contenant 10 valeurs, la formule est la suivante :

    =WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)

    Pour combiner les valeurs de plusieurs lignes dans une plage 2D où chaque ligne contient 5 valeurs, la formule prend cette forme :

    =WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)

    Combiner plusieurs colonnes en un tableau 2D

    Pour fusionner plusieurs colonnes en une plage 2D, il faut d'abord les empiler verticalement à l'aide de la fonction VSTACK, puis enrouler les valeurs en lignes (WRAPROWS) ou en colonnes (WRAPCOLS).

    Par exemple, pour combiner les valeurs de 3 colonnes (B5:J5, B7:G7 et B9:F9) dans une plage 2D où chaque colonne contient 10 valeurs, la formule est la suivante :

    =WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)

    Pour combiner les mêmes colonnes dans une plage 2D où chaque ligne contient 5 valeurs, utilisez cette formule :

    =WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)

    Enrouler et trier le tableau

    Dans le cas où la plage source contient des valeurs dans un ordre aléatoire alors que vous souhaitez que la sortie soit triée, procédez de la manière suivante :

    1. Triez le tableau initial comme vous le souhaitez à l'aide de la fonction SORT.
    2. Fournir le tableau trié à WRAPCOLS ou WRAPROWS.

    Par exemple, pour regrouper la plage B4:B23 en lignes, avec 4 valeurs par ligne, et trier la plage résultante de A à Z, construisez une formule comme celle-ci :

    =WRAPROWS(SORT(B4:B23), 4)

    Pour regrouper la même plage en colonnes, avec 10 valeurs par colonne, et trier le résultat par ordre alphabétique, la formule est la suivante :

    =WRAPCOLS(SORT(B4:B23), 10)

    Les résultats sont les suivants :

    Astuce : Pour arranger les valeurs du tableau résultant de l'opération dans l'ordre suivant ordre décroissant le troisième argument ( ordre de tri ) de la fonction SORT à -1.

    Alternative WRAPCOLS pour Excel 365 - 2010

    Dans les anciennes versions d'Excel où la fonction WRAPCOLS n'est pas prise en charge, vous pouvez créer votre propre formule pour regrouper les valeurs d'un tableau unidimensionnel en colonnes, en utilisant 5 fonctions différentes.

    Alternative WRAPCOLS pour convertir une ligne en plage 2D :

    IFERROR(IF(ROW(A1)> ; n , "", INDEX( rangée_chaîne , , ROW(A1) + (COLUMN(A1)-1)* n )), "")

    Alternative WRAPCOLS pour convertir une colonne en plage 2D :

    IFERROR(IF(ROW(A1)> ; n , "", INDEX( gamme_colonne , LIGNE(A1) + (COLONNE(A1)-1)*. n )), "")

    n est le nombre maximal de valeurs par colonne.

    Dans l'image ci-dessous, nous utilisons la formule suivante pour transformer une plage à une rangée (D4:J4) en un tableau à trois rangées.

    =IFERROR(IF(ROW(A1)>3, "", INDEX($D$4:$J$4, , ROW(A1) + (COLUMN(A1)-1)*3)), "")

    Et cette formule transforme une plage d'une colonne (B4:B20) en un tableau de cinq rangées :

    =IFERROR(IF(ROW(A1)>5, "", INDEX($B$4:$B$20, ROW(A1) + (COLUMN(A1)-1)*5)), "")

    Les solutions ci-dessus émulent les formules analogues de WRAPCOLS et produisent les mêmes résultats :

    =WRAPCOLS(D4:J4, 3, "")

    et

    =WRAPCOLS(B4:B20, 5, "")

    N'oubliez pas que, contrairement à la fonction WRAPCOLS du tableau dynamique, les formules traditionnelles suivent l'approche une formule-une cellule. Ainsi, notre première formule est saisie dans D8 et copiée 3 lignes vers le bas et 3 colonnes vers la droite. La deuxième formule est saisie dans D14 et copiée 5 lignes vers le bas et 4 colonnes vers la droite.

    Comment fonctionnent ces formules

    Au cœur des deux formules, nous utilisons la fonction INDEX qui renvoie une valeur du tableau fourni en fonction d'un numéro de ligne et de colonne :

    INDEX(tableau, numéro_ligne, [numéro_colonne])

    Comme il s'agit d'un tableau à une rangée, nous pouvons omettre l'élément numéro de rang de sorte que la valeur par défaut est 1. L'astuce est d'avoir col_num calculée automatiquement pour chaque cellule où la formule est copiée. Et voici comment nous procédons :

    LIGNE(A1)+(COLONNE(A1)-1)*3)

    La fonction ROW renvoie le numéro de ligne de la référence A1, qui est 1.

    La fonction COLUMN renvoie le numéro de colonne de la référence A1, qui est également 1. En soustrayant 1, on obtient 0. Et en multipliant 0 par 3, on obtient 0.

    Ensuite, vous additionnez 1 retourné par ROW et 0 retourné par COLUMN et obtenez 1 comme résultat.

    De cette façon, la formule INDEX de la cellule supérieure gauche de la plage de destination (D8) subit cette transformation :

    INDEX($D$4:$J$4, ,ROW(A1) + (COLUMN(A1)-1)*3)))

    les changements apportés à

    INDEX($D$4:$J$4, ,1)

    et renvoie la valeur de la 1ère colonne du tableau spécifié, qui est "Pommes" en D4.

    Lorsque la formule est copiée dans la cellule D9, les références de cellule relatives changent en fonction de la position relative des lignes et des colonnes, tandis que la référence de plage absolue reste inchangée :

    INDEX($D$4:$J$4,, ROW(A2)+(COLUMN(A2)-1)*3))

    se transforme en :

    INDEX($D$4:$J$4,, 2+(1-1)*3)))

    devient :

    INDEX($D$4:$J$4,, 2))

    et renvoie la valeur de la 2ème colonne du tableau spécifié, qui est "Abricots" dans E4.

    La fonction IF vérifie le numéro de ligne et s'il est supérieur au nombre de lignes que vous avez spécifié (3 dans notre cas), elle renvoie une chaîne vide (""), sinon le résultat de la fonction INDEX :

    IF(ROW(A1)>3, "", INDEX(...))

    Enfin, la fonction IFERROR corrige une erreur #REF ! qui se produit lorsque la formule est copiée dans plus de cellules que nécessaire.

    La deuxième formule, qui convertit une colonne en plage 2D, fonctionne selon la même logique, à la différence que vous utilisez la combinaison ROW + COLUMN pour déterminer la valeur de la plage 2D. numéro de rang pour INDEX. L'argument col_num n'est pas nécessaire dans ce cas puisqu'il n'y a qu'une seule colonne dans le tableau source.

    Alternative WRAPROWS pour Excel 365 - 2010

    Pour envelopper les valeurs d'un tableau unidimensionnel dans des lignes dans Excel 2019 et antérieur, vous pouvez utiliser les alternatives suivantes à la fonction WRAPROWS.

    Transformer une ligne en plage 2D :

    IFERROR(IF(COLUMN(A1)> ; n , "", INDEX( rangée_chaîne , , COLONNE(A1)+(RANGÉE(A1)-1)* n )), "")

    Changer une colonne en plage 2D :

    IFERROR(IF(COLUMN(A1)> ; n , "", INDEX( gamme_colonne , COLONNE(A1)+(LIGNE(A1)-1)*. n )), "")

    n est le nombre maximal de valeurs par ligne.

    Dans notre exemple de données, nous utilisons la formule suivante pour convertir une plage d'une rangée (D4:J4) en une plage de trois colonnes. La formule atterrit dans la cellule D8, puis est copiée sur 3 colonnes et 3 rangées.

    =IFERROR(IF(COLUMN(A1)>3, "", INDEX($D$4:$J$4, , COLUMN(A1)+(ROW(A1)-1)*3)), "")

    Pour transformer une plage d'une colonne (B4:B20) en une plage de 5 colonnes, saisissez la formule ci-dessous en D14 et faites-la glisser sur 5 colonnes et 4 lignes.

    =IFERROR(IF(COLUMN(A1)>5, "", INDEX($B$4:$B$20, COLUMN(A1)+(ROW(A1)-1)*5)), "")

    Dans Excel 365, les mêmes résultats peuvent être obtenus avec les formules WRAPCOLS équivalentes :

    =WRAPROWS(D4:J4, 3, "")

    et

    =WRAPROWS(B4:B20, 5, "")

    Comment fonctionnent ces formules

    En fait, ces formules fonctionnent comme dans l'exemple précédent, mais la différence réside dans la façon dont vous déterminez les valeurs de l'indicateur de performance. numéro de rang et col_num coordonnées pour la fonction INDEX :

    INDEX($D$4:$J$4,, COLONNE(A1)+(LIGNE(A1)-1)*3)))

    Pour obtenir le numéro de colonne de la cellule supérieure gauche de la plage de destination (D8), vous utilisez cette expression :

    COLONNE(A1)+(LIGNE(A1)-1)*3)

    qui se transforme en :

    1+(1-1)*3

    et donne 1.

    Par conséquent, la formule ci-dessous renvoie la valeur de la première colonne du tableau spécifié, qui est "Pommes" :

    INDEX($D$4:$J$4,, 1)

    Jusqu'à présent, le résultat est le même que dans l'exemple précédent, mais voyons ce qui se passe dans d'autres cellules...

    Dans la cellule D9, les références relatives des cellules changent comme suit :

    INDEX($D$4:$J$4,, COLONNE(A2)+(LIGNE(A2)-1)*3)))

    Donc, la formule se transforme en :

    INDEX($D$4:$J$4,, 1+(2-1)*3))

    devient :

    INDEX($D$4:$J$4,, 4))

    et renvoie la valeur de la 4ème colonne du tableau spécifié, qui est "Cerises" dans G4.

    La fonction IF vérifie le numéro de la colonne et s'il est supérieur au nombre de colonnes que vous avez spécifié, elle renvoie une chaîne vide (""), sinon le résultat de la fonction INDEX :

    IF(COLUMN(A1)>3, "", INDEX(...))

    Enfin, IFERROR empêche les erreurs #REF ! d'apparaître dans les cellules "supplémentaires" si vous copiez la formule dans plus de cellules que nécessaire.

    La fonction WRAPCOLS ou WRAPROWS ne fonctionne pas

    Si les fonctions "wrap" ne sont pas disponibles dans votre Excel ou entraînent une erreur, il s'agit très probablement de l'une des raisons suivantes.

    #NAME ? erreur

    Dans Excel 365, une erreur #NAME ? peut se produire parce que vous avez mal orthographié le nom de la fonction. Dans d'autres versions, cela indique que les fonctions ne sont pas prises en charge. Comme solution de rechange, vous pouvez utiliser l'alternative WRAPCOLS ou WRAPROWS.

    #VALEUR ! erreur

    Une erreur #VALUE se produit si le vecteur n'est pas un tableau unidimensionnel.

    #NUM ! erreur

    Une erreur #NUM se produit si le nombre d'enveloppes La valeur est 0 ou un nombre négatif.

    #SPILL ! erreur

    Le plus souvent, une erreur #SPILL indique qu'il n'y a pas assez de cellules vierges pour y déverser les résultats. Effacez les cellules voisines et l'erreur disparaîtra. Si l'erreur persiste, vérifiez ce que signifie #SPILL dans Excel et comment la corriger.

    Voilà comment utiliser les fonctions WRAPCOLS et WRAPROWS pour convertir une plage unidimensionnelle en un tableau bidimensionnel dans Excel. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Cahier d'exercices à télécharger

    Fonctions WRAPCOLS et WRAPROWS - exemples (fichier .xlsx)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.