Come trasporre righe duplicate in colonne in Excel?
Supponiamo che tu abbia un intervallo di dati in Excel e ora desideri trasporre le righe duplicate in più colonne, come mostrato nello screenshot seguente. Hai qualche buona idea per risolvere questo compito?
Trasponi righe duplicate in colonne con il codice VBA
Trasponi righe duplicate in colonne con il codice VBA
Sfortunatamente, non esiste un modo diretto per gestire questa operazione in Excel, ma puoi creare un codice VBA per risolverla. Procedi come segue:
1. Tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo e incolla il seguente codice nella finestra del Modulo.
Codice VBA: Trasponi righe duplicate in più colonne
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. Quindi premi il tasto F5 per eseguire questo codice, seleziona l'intervallo di dati che desideri convertire da righe duplicate a più colonne nella finestra di dialogo visualizzata, vedi screenshot:
4. Clicca OK e seleziona una cella dove vuoi inserire il risultato nella seguente finestra di dialogo, vedi screenshot:
5. Quindi clicca sul pulsante OK, i dati selezionati sono stati convertiti come segue:

Sblocca la Magia di Excel con Kutools AI
- Esecuzione Intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici — tutto guidato da semplici comandi.
- Formule Personalizzate: Genera formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA senza sforzo.
- Interpretazione delle Formule: Comprendi facilmente formule complesse.
- Traduzione del Testo: Superare le barriere linguistiche all'interno dei tuoi fogli di calcolo.
Articoli correlati:
Come trasporre / convertire colonne e righe in una singola riga?
Come trasporre / convertire colonne e righe in una singola colonna?
Come trasporre / convertire una singola colonna in più colonne in Excel?
I migliori strumenti per la produttività in Office
Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice
- Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!