REDIM.MATRICE.LIGNE (WRAPROWS en anglais) transforme un vecteur linéaire de données en une matrice organisée en lignes de taille fixe. Tu lui donnes une liste et un nombre de colonnes, elle "plie" la liste en autant de lignes que nécessaire, exactement comme lorsqu'on remplit une grille de gauche à droite.
Concrètement, c'est elle qui réorganise une liste de produits en grille de catalogue avec N colonnes par ligne, découpe des données chronologiques en semaines (7 valeurs par ligne), affiche les participants d'un tournoi par poule, ou génère une numérotation matricielle à partir d'une séquence linéaire.
Syntaxe de la fonction REDIM.MATRICE.LIGNE
=REDIM.MATRICE.LIGNE(vecteur; nb_valeurs; [valeur_remplissage])Comprendre chaque paramètre de la fonction REDIM.MATRICE.LIGNE
Tu lui passes d'abord ta liste à plier, puis le nombre de valeurs que tu veux voir tenir sur chaque ligne : ces deux arguments sont obligatoires et l'ordre ne se discute pas. Le troisième, valeur_remplissage, est facultatif, mais c'est lui qui décide ce qu'on affiche dans les cases vides de la dernière ligne quand ta liste ne tombe pas juste. L'oublier, c'est accepter des #N/A par défaut.
vecteur
: le vecteur de données à réorganiserPeut être une ligne, une colonne ou même une plage rectangulaire : Excel la lit comme un vecteur linéaire avant de la redistribuer. Tu peux aussi passer le résultat d'une formule matricielle comme UNIQUE(A1:A100) ou TRI(A1:A50).
La fonction lit les données dans l'ordre : d'abord de gauche à droite, puis de haut en bas pour les plages 2D. Garde cette logique de lecture en tête pour anticiper l'ordre d'apparition dans ta matrice.
Astuce : Pour de meilleures performances sur de longues listes, délimite ta plage source au strict nécessaire plutôt que de référencer des colonnes entières (A:A). Les plages nommées dynamiques sont une alternative élégante.
nb_valeurs
: le nombre de valeurs à placer sur chaque ligne, c'est-à-dire le nombre de colonnes de ta matrice résultanteDoit être un entier strictement positif.
Si tu stockes cette valeur dans une cellule de contrôle (par exemple $B$1), tu peux modifier la largeur de ta grille sans toucher à la formule : =REDIM.MATRICE.LIGNE(Données; $B$1; ""). C'est idéal pour des tableaux de bord dont la mise en page peut varier.
Attention : Si nb_valeurs n'est pas un entier positif ou si la cellule référencée est vide, la formule renvoie #VALEUR!. Vérifie que ta cellule de contrôle contient bien un nombre entier supérieur à 0.
[valeur_remplissage]
: la valeur à utiliser pour compléter les cellules vides de la dernière ligne quand le vecteur ne la remplit pas exactement(facultatif)Par défaut, Excel utilise #N/A.
Tu peux spécifier "" pour des cellules visuellement vides, 0 pour des zéros, "-" pour des tirets, ou n'importe quelle chaîne. Ce paramètre est particulièrement important quand ta matrice sera utilisée dans des calculs ultérieurs : un #N/A peut propager l'erreur.
Astuce : Utilise "" comme valeur de remplissage pour obtenir des cellules visuellement vides. Si tu ne peux pas utiliser ce paramètre (compatibilité), masque les #N/A avec une mise en forme conditionnelle : colore le texte avec la même couleur que le fond quand la cellule contient une erreur.
Exemples pratiques pas à pas
E-commerce : organiser un catalogue de produits en grille
Tu gères un catalogue de 25 produits listés verticalement et tu veux les afficher en grille de 5 colonnes pour une présentation visuelle ou un export vers un outil de mise en page.
=REDIM.MATRICE.LIGNE(A1:A25; 5; "") crée une matrice de 5 lignes et 5 colonnes. Le troisième argument "" garantit que les cellules manquantes (si ta liste n'était pas multiple de 5) restent visuellement vides plutôt que d'afficher #N/A. Si le nombre de produits change, la formule s'adapte automatiquement.
| A | B | |
|---|---|---|
| 1 | Liste source | Résultat (5 colonnes) |
| 2 | 25 produits en A1:A25 | Grille 5 × 5 colonnes |
=REDIM.MATRICE.LIGNE(A1:A25;5;"")Astuce de pro : Pour anticiper combien de lignes ta matrice va occuper, utilise : =ARRONDI.SUP(NBVAL(A1:A25)/5; 0). Cette formule te donne le nombre de lignes à réserver avant d'insérer REDIM.MATRICE.LIGNE.
RH / Formation : découper des données hebdomadaires
Tu as 28 jours de données d'activité listées verticalement (présences, scores, heures de formation) et tu veux les présenter semaine par semaine, 7 colonnes correspondant aux 7 jours.
=REDIM.MATRICE.LIGNE(A1:A28; 7) produit une matrice de 4 lignes et 7 colonnes. La première ligne contient les jours 1 à 7 (semaine 1), la deuxième les jours 8 à 14 (semaine 2), etc. Parfait pour des plannings visuels ou des comparaisons semaine par semaine.
| A | B | |
|---|---|---|
| 1 | Jours | Organisation |
| 2 | 28 jours en A1:A28 | 7 jours par ligne |
| 3 | 4 semaines | 4 lignes × 7 colonnes |
=REDIM.MATRICE.LIGNE(A1:A28;7)Sport / Événementiel : organiser des participants par poule
Tu organises un tournoi de 24 équipes à répartir en 4 poules de 6. Ta liste d'équipes est dans une colonne et tu veux un tableau de poules instantané, sans copier-coller manuellement.
=REDIM.MATRICE.LIGNE(A1:A24; 6; "BYE") génère le tableau d'un coup. L'argument "BYE" remplace les cases vides si le nombre d'équipes n'est pas un multiple exact de 6. Si tu modifies le nombre d'équipes par poule, la redistribution se recalcule aussitôt.
| A | B | |
|---|---|---|
| 1 | Participants | Organisation |
| 2 | 24 équipes en A1:A24 | 6 par poule |
| 3 | 4 poules de 6 | 4 lignes × 6 colonnes |
=REDIM.MATRICE.LIGNE(A1:A24;6;"BYE")Data analyst : générer une grille numérotée avec SEQUENCE
Tu veux créer un plan de salle, une numérotation de places de cinéma ou une grille de références. Au lieu de saisir les nombres manuellement, tu combines SEQUENCE et REDIM.MATRICE.LIGNE.
=REDIM.MATRICE.LIGNE(SEQUENCE(24); 6) génère d'abord les nombres de 1 à 24, puis les redistribue en 4 lignes de 6. Modifie le 24 ou le 6 et toute la grille se recalcule instantanément.
| A | B | |
|---|---|---|
| 1 | Formule | Résultat |
| 2 | =SEQUENCE(24) | Nombres 1 à 24 |
| 3 | REDIM.MATRICE.LIGNE(…;6) | Matrice 4 × 6 |
=REDIM.MATRICE.LIGNE(SEQUENCE(24);6)Astuce de pro : Tu peux trier tes données avant de les redistribuer : =REDIM.MATRICE.LIGNE(TRI(A1:A50); 8) produit une grille triée de 8 colonnes. Combiner avec UNIQUE élimine les doublons avant la réorganisation.
Logistique : structurer un inventaire par étagère
Tu gères un entrepôt avec 5 étagères de 12 emplacements chacune. Tes 60 articles sont listés dans une colonne et tu veux visualiser le plan de rangement où chaque ligne représente une étagère et chaque colonne un emplacement.
=REDIM.MATRICE.LIGNE(A1:A60; 12; "Vide") génère le plan instantanément. "Vide" s'affiche dans les cases non occupées si ta liste est incomplète. Quand tu ajoutes ou retires des articles, le plan se recalcule sans intervention.
| A | B | |
|---|---|---|
| 1 | Articles | Structure |
| 2 | 60 articles en A1:A60 | 12 emplacements par étagère |
| 3 | 5 étagères | 5 lignes × 12 colonnes |
=REDIM.MATRICE.LIGNE(A1:A60;12;"Vide")Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction REDIM.MATRICE.LIGNE
Deux des soucis viennent d'un nb_valeurs mal nourri : un nombre décimal, du texte ou une cellule de contrôle vide te renvoient #VALEUR!. Les deux autres sont des questions de place et de sens : #DÉBORDEMENT! si la grille bute sur des cellules déjà occupées en dessous, et la confusion classique avec REDIM.MATRICE.COL qui remplit dans l'autre sens. Le #N/A dans la dernière ligne, lui, n'est pas un bug : c'est juste ta liste qui ne tombe pas pile sur un multiple.
Erreur #VALEUR! sur le paramètre nb_valeurs
nb_valeurs n'est pas un entier positif, ou la cellule référencée est vide. Une valeur décimale comme 4.7 ou une cellule contenant du texte déclenchent aussi cette erreur.
Solution : Vérifie que nb_valeurs est un entier supérieur à 0. Si c'est une référence dynamique, protège avec =REDIM.MATRICE.LIGNE(A1:A50; MAX(1; ARRONDI(B1; 0)); "") pour garantir un entier valide.
Erreur #N/A dans les dernières cellules de la matrice
Le nombre total de valeurs dans vecteur n'est pas un multiple exact de nb_valeurs. Excel remplit les cases manquantes de la dernière ligne avec #N/A par défaut.
Solution : Ajoute un troisième argument : "" pour des cellules vides, 0 pour des zéros, "-" pour des tirets. Par exemple : =REDIM.MATRICE.LIGNE(A1:A10; 4; "").
Erreur #DÉBORDEMENT! quand la formule s'étend
La matrice résultante tente de s'étendre sur des cellules déjà occupées. La taille de la matrice est ARRONDI.SUP(nb_valeurs_total / nb_valeurs; 0) lignes × nb_valeurs colonnes.
Solution : Calcule d'abord l'espace nécessaire avec =ARRONDI.SUP(NBVAL(A1:A50)/B1; 0) lignes. Vide les cellules concernées avant d'insérer la formule. Si les données changent souvent, réserve un espace plus large que nécessaire.
Confusion entre REDIM.MATRICE.LIGNE et REDIM.MATRICE.COL
REDIM.MATRICE.LIGNE remplit horizontalement (ligne par ligne), REDIM.MATRICE.COL remplit verticalement (colonne par colonne). Le sens de remplissage inverse produit une organisation différente pour le même vecteur.
Solution : Utilise REDIM.MATRICE.LIGNE pour des catalogues, calendriers horizontaux ou galeries. Utilise REDIM.MATRICE.COL pour des plannings verticaux ou des listes organisées par colonne.
REDIM.MATRICE.LIGNE vs REDIM.MATRICE.COL
Ces deux fonctions plient exactement la même liste, mais dans des sens opposés, et c'est tout ce qui les sépare. Choisis REDIM.MATRICE.LIGNE quand tu remplis de gauche à droite avant de passer à la ligne suivante : catalogues, galeries, calendriers horizontaux où chaque ligne est une semaine. Bascule sur REDIM.MATRICE.COL dès que tu veux empiler les valeurs colonne par colonne, comme un planning vertical. Pour 12 valeurs avec un nb de 4, l'une te donne 3 lignes de 4, l'autre 4 lignes de 3.
| Critère | REDIM.MATRICE.LIGNE | REDIM.MATRICE.COL |
|---|---|---|
| Direction de remplissage | Horizontale (gauche vers droite) | Verticale (haut vers bas) |
| Signification de nb_valeurs | Nombre de colonnes par ligne | Nombre de lignes par colonne |
| Cas d'usage typique | Catalogues, galeries, calendriers horizontaux | Plannings verticaux, listes par période |
| Analogie | Lire un livre (ligne par ligne) | Lire un journal (colonne par colonne) |
| Résultat pour 12 valeurs, nb = 4 | 3 lignes × 4 colonnes | 4 lignes × 3 colonnes |
Astuces avancées avec REDIM.MATRICE.LIGNE
Cellule de contrôle pour modifier la largeur à la volée
Stocke nb_valeurs dans une cellule nommée ou fixe (par exemple $B$1) et référence-la : =REDIM.MATRICE.LIGNE(Données; $B$1; ""). Tu peux changer le nombre de colonnes de ta grille en modifiant une seule cellule, sans toucher à la formule.
C'est particulièrement utile pour des tableaux de bord dont la largeur varie selon le contexte (affichage mobile vs. desktop, rapport hebdomadaire vs. mensuel).
Combiner avec TRI ou UNIQUE avant redistribution
Nettoie tes données avant de les réorganiser : =REDIM.MATRICE.LIGNE(UNIQUE(A1:A100); 5; "") élimine les doublons, puis =REDIM.MATRICE.LIGNE(TRI(A1:A50); 8) trie avant de redistribuer. Les fonctions de tableau dynamique se combinent librement.
Ces combinaisons évitent une étape de préparation manuelle et rendent ta matrice auto-actualisante.
Calculer l'espace nécessaire avant d'insérer la formule
Pour éviter l'erreur #DÉBORDEMENT!, calcule d'abord le nombre de lignes que ta matrice va occuper : =ARRONDI.SUP(NBVAL(A1:A50)/B1; 0). Vérifie que cet espace est libre en dessous de ta cellule de formule.
Cette vérification préalable est indispensable sur des feuilles déjà remplies où les données sources évoluent.
Questions fréquentes sur la fonction REDIM.MATRICE.LIGNE
Pourquoi utiliser REDIM.MATRICE.LIGNE plutôt que copier-coller manuellement ?
La fonction est dynamique : si tes données sources changent, la matrice se met à jour automatiquement. Elle restructure instantanément des milliers de valeurs en quelques secondes, là où un copier-coller manuel serait fastidieux et sujet à erreurs. Et si tu modifies nb_valeurs, toute la grille se reconfigure d'un coup.
Que se passe-t-il si je change le nombre de valeurs par ligne après création ?
La matrice se recalcule immédiatement avec le nouveau dimensionnement. Si tu as stocké nb_valeurs dans une cellule de contrôle, il te suffit d'y changer le nombre. La redistribution est instantanée et les cellules libérées par un rétrécissement redeviennent disponibles.
Puis-je utiliser REDIM.MATRICE.LIGNE avec des données mixtes (texte et nombres) ?
Oui. La fonction réorganise les données sans modifier leur type ou leur format. Texte, nombres, dates et valeurs booléennes sont tous redistribués tels quels. Les formats de cellules (dates, pourcentages, devises) ne sont pas automatiquement appliqués à la matrice résultante, mais tu peux les appliquer manuellement après.
Comment éviter les #N/A dans la dernière ligne ?
Utilise le troisième paramètre valeur_remplissage : =REDIM.MATRICE.LIGNE(A1:A10; 4; "") remplace les cases manquantes par des cellules vides. Tu peux aussi mettre 0, "-" ou n'importe quelle valeur adaptée à ton contexte.
La fonction est-elle disponible dans toutes les versions d'Excel ?
Non. REDIM.MATRICE.LIGNE fait partie des fonctions de tableaux dynamiques introduites dans Excel 2021 et Microsoft 365. Elle n'est pas disponible dans Excel 2019 ou les versions antérieures. Dans Google Sheets, l'équivalent s'appelle WRAPROWS.
Comment savoir combien de lignes ma matrice va occuper ?
Utilise =ARRONDI.SUP(NBVAL(A1:A50)/B1; 0) où B1 contient nb_valeurs. Cette formule te donne le nombre exact de lignes à réserver. Vérifie que cet espace est libre avant d'insérer REDIM.MATRICE.LIGNE pour éviter l'erreur #DÉBORDEMENT!.
Pour aller plus loin
Les fonctions similaires : REDIM.MATRICE.COL, DEVELOPPER.LIGNE, SEQUENCE, UNIQUE, TRI
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois
