Pour inverser lignes et colonnes dans Excel, tapez =TRANSPOSE(A1:D3) là où le résultat doit commencer : la première ligne de A1:D3 devient la première colonne du résultat. Le résultat reste lié, donc modifier un nombre dans la source le modifie aussi dans la copie. Remplacez B2 par 50 et regardez B6 suivre. La fonction porte le même nom dans un Excel français ; le tableau affiche les formules sous leur forme anglaise, avec des virgules, mais vous pouvez aussi les taper avec des points-virgules, comme =TRANSPOSE(SI(A1:E2="";"";A1:E2)).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rep | Q1 | Q2 | Q3 |
| 2 | Ann | 10 | 12 | 9 |
| 3 | Ben | 8 | 11 | 14 |
| 4 | ||||
| 5 | Rep | Ann | Ben | |
| 6 | Q1 | 10 | 8 | |
| 7 | Q2 | 12 | 11 | |
| 8 | Q3 | 9 | 14 |
=TRANSPOSE(A1:D3)La source a 3 lignes et 4 colonnes, donc le résultat a 4 lignes et 3 colonnes. Dans Excel 2021 et Microsoft 365, TRANSPOSE se répand : vous la tapez dans une seule cellule et appuyez sur Entrée.
Transposer avec le Collage spécial
Quand vous n'avez besoin du tableau inversé qu'une fois, le Collage spécial est plus rapide et ne laisse aucune formule :
- Sélectionnez la plage et copiez-la (Ctrl+C, Cmd+C sur un Mac).
- Cliquez sur la cellule en haut à gauche de l'emplacement du résultat, en dehors de la plage copiée.
- Dans l'onglet Accueil, cliquez sur la flèche sous Coller et choisissez Transposer, ou appuyez sur Ctrl+Alt+V (Cmd+Ctrl+V sur un Mac), cochez Transposé et cliquez sur OK.
Sous Windows, dans un Excel anglais, la séquence clavier est Alt, H, V, T après la copie. La copie collée garde la mise en forme mais n'est pas liée : quand la source change, collez de nouveau. Excel adapte les formules de la plage copiée à leur nouvelle position ; vérifiez celles qui utilisent des références relatives, ou collez des valeurs si vous n'avez besoin que des nombres.
Syntaxe de TRANSPOSE
=TRANSPOSE(array)
Le seul argument est la plage ou le tableau à retourner. TRANSPOSE existe depuis longtemps dans Excel, mais avant Excel 2021 c'est une formule matricielle : sélectionnez d'abord une destination de la bonne forme (4 lignes sur 3 colonnes pour l'exemple ci-dessus), tapez la formule et appuyez sur Ctrl+Maj+Entrée (Cmd+Maj+Entrée sur un Mac). Excel l'affiche alors entre accolades, {=TRANSPOSE(A1:D3)}. Dans Excel 2021 et Microsoft 365, Entrée suffit, et une valeur qui gêne donne #EPARS! (#SPILL! en anglais).
Google Sheets a aussi TRANSPOSE et la fait se répandre de la même façon.
Transformer une colonne en ligne
La même fonction transforme une seule colonne en ligne, par exemple une liste de noms en en-têtes de colonnes :
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | ||||||
| 2 | Ann | Ann | Ben | Cara | Dan | Eve | |
| 3 | Ben | ||||||
| 4 | Cara | ||||||
| 5 | Dan | ||||||
| 6 | Eve |
=TRANSPOSE(A2:A6)C2 répand Ann à Eve sur C2:G2. Ajoutez un nom en A7 et il n'est pas inclus, car la formule lit A2:A6 ; étendez la plage à A2:A7 ou plus pour l'inclure.
Pourquoi TRANSPOSE affiche 0 pour les cellules vides
Une formule qui pointe vers une cellule vide renvoie 0, et TRANSPOSE aussi. Mars n'a pas de ventes ci-dessous, donc la version simple affiche 0 là où la source est vide :
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Month | Jan | Feb | Mar | Apr |
| 2 | Sales | 120 | 95 | 150 | |
| 3 | |||||
| 4 | Month | Sales | Month | Sales | |
| 5 | Jan | 120 | Jan | 120 | |
| 6 | Feb | 95 | Feb | 95 | |
| 7 | Mar | 0 | Mar | ||
| 8 | Apr | 150 | Apr | 150 |
=TRANSPOSE(SI(A1:E2="";"";A1:E2))B7 affiche 0 pour Mar. La seconde formule transforme d'abord chaque cellule vide en texte vide avec SI, donc E7 reste vide. Tapez un nombre en D2 et les deux formules l'affichent.
Transposer plusieurs lignes en une colonne
Pour empiler toute une grille dans une seule colonne, utilisez DANSCOL (TOCOL en anglais, Microsoft 365 et Excel 2024). Elle lit la plage ligne par ligne ; DANSLIGNE fait la même chose sur une seule ligne :
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Rep | Q1 | Q2 | Q3 | All values | |
| 2 | Ann | 10 | 12 | 9 | 10 | |
| 3 | Ben | 8 | 11 | 14 | 12 | |
| 4 | 9 | |||||
| 5 | 8 | |||||
| 6 | 11 | |||||
| 7 | 14 |
=DANSCOL(B2:D3)F2 liste 10, 12, 9 de la ligne de Ann puis 8, 11, 14 de celle de Ben. Pour lire plutôt colonne par colonne, mettez le troisième argument à VRAI : =DANSCOL(B2:D3;;VRAI). =DANSCOL(B2:D3;1) ignore les cellules vides.
Exercice : les mois en colonne plutôt qu'en ligne
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Month | Jan | Feb | Mar | Apr |
| 2 | Sales | 120 | 95 | 80 | 150 |
| 3 | |||||
| 4 | Months down |
À vous : En A5, retournez le tableau A1:E2 pour que les mois descendent dans la colonne A et les ventes dans la colonne B.
TRANSPOSE ou une recherche sur la ligne
On transpose souvent un tableau large juste pour lancer une RECHERCHEV dessus. Ce n'est pas nécessaire : RECHERCHEH et RECHERCHEX cherchent directement dans une ligne. =RECHERCHEX("Mar";B1:E1;B2:E2) renvoie les ventes de mars du tableau large ci-dessus sans rien retourner. Transposez quand la disposition elle-même doit changer, pour un graphique, un rapport ou un système qui attend un enregistrement par ligne.
Questions fréquentes
Comment transposer des données dans Excel ?
Copiez la plage, faites un clic droit sur la cellule où le résultat doit commencer et choisissez Collage spécial > Transposé (Ctrl+Alt+V, puis Transposé et Entrée). Cela colle une copie fixe. Pour une copie qui suit la source, tapez =TRANSPOSE(A1:D3) dans la cellule de destination.
Pourquoi TRANSPOSE affiche-t-elle 0 pour les cellules vides ?
Une formule qui fait référence à une cellule vide renvoie 0, et TRANSPOSE ne fait pas exception. Remplacez d'abord les cellules vides par un texte vide : =TRANSPOSE(SI(A1:E2="";"";A1:E2)).
Comment utiliser TRANSPOSE dans Excel 2019 ou une version plus ancienne ?
Sélectionnez une plage de destination aux lignes et colonnes inversées (4 lignes sur 3 colonnes pour une source de 3 sur 4), tapez =TRANSPOSE(A1:D3) et appuyez sur Ctrl+Maj+Entrée (Cmd+Maj+Entrée sur un Mac). Excel 2021 et les versions ultérieures n'ont besoin que d'Entrée.
Comment transformer plusieurs lignes en une seule colonne ?
Utilisez DANSCOL dans Microsoft 365 ou Excel 2024 : =DANSCOL(B2:D3) lit la plage ligne par ligne et empile chaque valeur dans une colonne. =DANSCOL(B2:D3;1) ignore les cellules vides, et DANSLIGNE fait la même chose sur une seule ligne.