Hogyan lehet az ismétlődő sorokat oszlopokba átültetni az Excelben?
Ha feltételezzük, hogy van egy sor adata az Excelben, most szeretné átültetni az ismétlődő sorokat több oszlopba, az alábbi képernyőkép szerint. Van valami jó ötlete a feladat megoldására?
Transzponálja a duplikált sorokat VBA kóddal ellátott oszlopokba
Transzponálja a duplikált sorokat VBA kóddal ellátott oszlopokba
Sajnos nincs közvetlen módja az Excel kezelésére, de létrehozhat egy VBA kódot a megoldáshoz, kérjük, tegye a következőket:
1. Tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.
2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modul ablak.
VBA kód: Másolja át az ismétlődő sorokat több oszlopba
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. Ezután nyomja meg a gombot F5 kulcs a kód futtatásához, válassza ki azt az adattartományt, amelyet az ismétlődő sorokból több oszlopká kíván konvertálni a felbukkanó párbeszédpanelen, lásd a képernyőképet:
4. Kattints OK, és válasszon egy cellát, ahová az eredményt be szeretné helyezni a következő párbeszédpanelen, lásd a képernyőképet:
5. Kattintson a gombra OK gombra, a kiválasztott adatok a következőkre lettek konvertálva:
Kapcsolódó cikkek:
Hogyan lehet az oszlopokat és a sorokat egyetlen sorba átültetni / átalakítani?
Hogyan lehet az oszlopokat és sorokat egyetlen oszlopba átültetni / átalakítani?
Hogyan lehet egyetlen oszlopot átültetni / átalakítani több oszlopká az Excelben?
A legjobb irodai hatékonyságnövelő eszközök
Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz. Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...
Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját
- Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
- Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
- 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!