Comment transposer des lignes en double en colonnes dans Excel ?
Supposons que vous ayez une plage de données dans Excel, et maintenant, vous souhaitez transposer les lignes en double en plusieurs colonnes comme le montre la capture d'écran suivante. Avez-vous des idées pour résoudre cette tâche ?
Transposer des lignes en double en colonnes avec un code VBA
Transposer des lignes en double en colonnes avec un code VBA
Malheureusement, il n'y a pas de méthode directe pour traiter cela dans Excel, mais vous pouvez créer un code VBA pour résoudre ce problème. Veuillez procéder comme suit :
1. Maintenez les touches ALT + F11 enfoncées pour ouvrir la fenêtre Microsoft Visual Basic for Applications.
2. Cliquez sur Insertion > Module, puis collez le code suivant dans la fenêtre du Module.
Code VBA : Transposer des lignes en double en plusieurs colonnes
Sub ConvertTable()
'Updateby Extendoffice
Dim xArr1 As Variant
Dim xArr2 As Variant
Dim InputRng As Range, OutRng As Range
Dim xRows As Long
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
xArr1 = InputRng.Value
t = UBound(xArr1, 2): xRows = 1
With CreateObject("Scripting.Dictionary")
.CompareMode = 1
For i = 2 To UBound(xArr1, 1)
If Not .exists(xArr1(i, 1)) Then
xRows = xRows + 1: .Item(xArr1(i, 1)) = VBA.Array(xRows, t)
For ii = 1 To t
xArr1(xRows, ii) = xArr1(i, ii)
Next
Else
xArr2 = .Item(xArr1(i, 1))
If UBound(xArr1, 2) < xArr2(1) + t - 1 Then
ReDim Preserve xArr1(1 To UBound(xArr1, 1), 1 To xArr2(1) + t - 1)
For ii = 2 To t
xArr1(1, xArr2(1) + ii - 1) = xArr1(1, ii)
Next
End If
For ii = 2 To t
xArr1(xArr2(0), xArr2(1) + ii - 1) = xArr1(i, ii)
Next
xArr2(1) = xArr2(1) + t - 1: .Item(xArr1(i, 1)) = xArr2
End If
Next
End With
OutRng.Resize(xRows, UBound(xArr1, 2)).Value = xArr1
End Sub
3. Appuyez ensuite sur la touche F5 pour exécuter ce code, sélectionnez la plage de données que vous souhaitez convertir des lignes en double en plusieurs colonnes dans la boîte de dialogue qui apparaît, voir capture d'écran :
4. Cliquez sur OK, puis sélectionnez une cellule où vous souhaitez placer le résultat dans la boîte de dialogue suivante, voir capture d'écran :
5. Ensuite, cliquez sur le bouton OK, vos données sélectionnées ont été converties comme suit :

Découvrez la magie d'Excel avec Kutools AI
- Exécution intelligente : Effectuez des opérations sur les cellules, analysez les données et créez des graphiques, le tout piloté par des commandes simples.
- Formules personnalisées : Générez des formules adaptées pour rationaliser vos flux de travail.
- Codage VBA : Écrivez et implémentez du code VBA sans effort.
- Interprétation des formules : Comprenez facilement des formules complexes.
- Traduction de texte : Surmontez les barrières linguistiques dans vos feuilles de calcul.
Articles connexes :
Comment transposer / convertir des colonnes et des lignes en une seule ligne ?
Comment transposer / convertir des colonnes et des lignes en une seule colonne ?
Comment transposer / convertir une seule colonne en plusieurs colonnes dans Excel ?
Meilleurs outils de productivité Office
Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, au lieu d’ouvrir de nouvelles fenêtres.
- Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!