? Hvordan transponere dupliserte rader til kolonner i Excel

Unfortunately, er det ingen direkte måte for deg å håndtere det i Excel, men du kan opprette en VBA-kode for å løse det, kan du gjøre som følger:
1. Hold nede ALT + F11-tastene for å åpne Microsoft Visual Basic for Applications vinduet.
2. Klikk Sett > Modul, og lim inn følgende kode i modulen Window
VBA-kode. Transponere dupliserte rader til flere kolonner
Sub ConvertTable () 'Update 20150113Dim xArr1 Som VariantDim xArr2 Som VariantDim InputRng As Range, OutRng Som RangeDim xRows As LongxTitleId = "KutoolsforExcel" Set InputRng = Application.SelectionSet InputRng = Application.InputBox ("Range:", xTitleId, InputRng.Address, Type: = 8) Sett OutRng = Application.InputBox ("Out satt til (enkelt celle):", xTitleId, Type: = 8) Sett OutRng = OutRng.Range ("A1") xArr1 = InputRng.Valuet = UBound (xArr1, 2): xRows = 1Med Create ("Scripting.Dictionary") .CompareMode = 1 For i = 2 til UBound (xArr1, 1) Hvis ikke .exists (xArr1 (i, 1)) Deretter xRows = xRows + 1: .Item (xArr1 (i, 1)) = VBA.Array (xRows, t) For ii = 1 til t xArr1 (xRows, ii) = xArr1 (i, ii) Neste Else xArr2 = .Item (xArr1 (i, 1)) Hvis UBound (xArr1, 2) < xArr2 (1) + t - 1 Så ReDim Bevar xArr1 (1 Til UBound (xArr1, 1), en å xArr2 (1) + t - 1) For ii = 2 til T xArr1 (1, xArr2 (1) + ii - 1) = xArr1 (1, ii) Neste End If For ii = 2 til T xArr1 (xArr2 (0), xArr2 (1) + ii - 1) = xArr1 (i, ii) Neste xArr2 (1) = xArr2 (1 ) + t - 1: .Item (xArr1 (i, 1)) = xArr2 End If NextEnd WithOutRng.Resize (xRows, UBound (xArr1, 2)) Verdi = xArr1End Sub3.. Deretter trykker F5 for å kjøre denne koden, velger dataområdet som du vil konvertere de dupliserte rader til flere kolonner i spratt ut dialogboksen, se skjermbilde:
4. Klikk OK, og velg en celle der du ønsker å sette resultatet i følgende dialogboksen, se skjermbilde:
5. Og klikk deretter på OK-knappen, har du valgt data er konvertert til følgende:



Previous:
Next Page: