Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment transposer des lignes en double dans des colonnes dans Excel?

Supposons que vous ayez une plage de données dans Excel. Maintenant, vous voudriez transposer les lignes dupliquées en plusieurs colonnes comme la capture d'écran suivante, avez-vous de bonnes idées pour résoudre cette tâche?

Transposez des lignes en double dans des colonnes avec du code VBA

doc-convert-duplicate-rows-colonnes-1


Transformer une colonne ou une rangée en une plage ou vice versa:
Avec Kutools for Excel's Chaîne de transformation fonctionnalité, vous pouvez convertir rapidement une plage de cellules en une seule ligne ou colonne, vous pouvez également convertir une seule ligne ou colonne en une plage de cellules. En savoir plus sur cette fonctionnalité ...
doc transpose gamme

flèche bleue droite bulle Transposez des lignes en double dans des colonnes avec du code VBA


Malheureusement, il n'y a pas de moyen direct de le traiter 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 Microsoft Visual Basic pour Applications fenêtre.

2. Cliquez insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: Transposez des lignes en double sur plusieurs colonnes

Sub ConvertTable()
'Update 20150113
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 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:

doc-convert-duplicate-rows-colonnes-2

4. Cliquez OKet sélectionnez une cellule dans laquelle vous souhaitez placer le résultat dans la boîte de dialogue suivante, voir capture d'écran:

doc-convert-duplicate-rows-colonnes-3

5. Et puis cliquez OK bouton, vos données sélectionnées ont été converties comme suit:

doc-convert-duplicate-rows-colonnes-4


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?



Outils de productivité recommandés

Office Tab

étoile d&#39;or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d&#39;or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d&#39;or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d&#39;écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Joe · 7 months ago
    This works fine for me with different number of duplicates Brian. I only had a problem with the first duplicate showing twice on my output, but that was very minor. I only wish I knew how to make it copy the duplicate results into a comma delimited format instead of new columns for each one.
  • To post as a guest, your comment is unpublished.
    Brian · 8 months ago
    Only works if there's the same number of duplicates and call him a. It doesn't work at if have different numbers of duplicates.
  • To post as a guest, your comment is unpublished.
    Alex · 2 years ago
    Really great. Saved me a lot of time
  • To post as a guest, your comment is unpublished.
    Jon · 2 years ago
    I am so incredibly happy this worked. You are my hero!!!!
  • To post as a guest, your comment is unpublished.
    Santosh · 3 years ago
    Awesome Example - saved me a lot of time.
    Thank You so much !!!