Comment transposer des lignes dupliquées en colonnes dans Excel?
En supposant que vous ayez une plage de données dans Excel, maintenant, vous souhaitez transposer les lignes dupliquées en plusieurs colonnes comme illustré ci-dessous, avez-vous de bonnes idées pour résoudre cette tâche?
Transposer les lignes dupliquées en colonnes avec le code VBA
Transposer les lignes dupliquées en colonnes avec le code VBA
Malheureusement, il n'existe aucun moyen direct pour vous de le gérer dans Excel, mais vous pouvez créer un code VBA pour le résoudre, procédez comme suit:
1. Maintenez la touche ALT + F11 clés pour ouvrir le Fenêtre Microsoft Visual Basic pour Applications.
2Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.
Code VBA: transposez les lignes dupliquées 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. Puis appuyez F5 clé pour exécuter ce code, sélectionnez la plage de données dans laquelle vous souhaitez convertir les lignes dupliquées en plusieurs colonnes dans la boîte de dialogue contextuelle, voir capture d'écran:
4Cliquez sur OKet sélectionnez une cellule dans laquelle vous souhaitez placer le résultat dans la boîte de dialogue suivante, voir capture d'écran:
5. Et puis cliquez OK , les données sélectionnées ont été converties en:
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é bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et facilite grandement votre travail
- Activer l'édition 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, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!