Jak transponować zduplikowane wiersze do kolumn w programie Excel?
Przypuśćmy, że masz szereg danych w programie Excel, teraz chciałbyś transponować zduplikowane wiersze do wielu kolumn, jak pokazano na poniższym zrzucie ekranu, czy masz jakieś dobre pomysły na rozwiązanie tego zadania?
Transponuj zduplikowane wiersze do kolumn z kodem VBA
Transponuj zduplikowane wiersze do kolumn z kodem VBA
Niestety, nie ma bezpośredniego sposobu, aby sobie z tym poradzić w programie Excel, ale możesz utworzyć kod VBA, aby go rozwiązać, wykonaj następujące czynności:
1. Przytrzymaj przycisk ALT + F11 klawisze, aby otworzyć Okno Microsoft Visual Basic for Applications.
2. Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.
Kod VBA: transponuj zduplikowane wiersze do wielu kolumn
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. Następnie naciśnij F5 Aby uruchomić ten kod, wybierz zakres danych, który chcesz przekonwertować zduplikowane wiersze na wiele kolumn w wyskakującym oknie dialogowym, zobacz zrzut ekranu:
4. Kliknij OKi wybierz jedną komórkę, w której chcesz umieścić wynik w następującym oknie dialogowym, zobacz zrzut ekranu:
5. A następnie kliknij OK przycisk, wybrane dane zostały przekonwertowane na następujące:
Powiązane artykuły:
Jak przetransponować / przekonwertować kolumny i wiersze na jeden wiersz?
Jak przetransponować / przekonwertować kolumny i wiersze na jedną kolumnę?
Jak przetransponować / przekonwertować pojedynczą kolumnę na wiele kolumn w programie Excel?
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!