Como transpor linhas duplicadas para colunas no Excel?
Supondo que você tenha uma variedade de dados no Excel, agora, você gostaria de transpor as linhas duplicadas para várias colunas, conforme mostrado a seguir, você tem alguma boa ideia para resolver esta tarefa?
Transpor linhas duplicadas para colunas com código VBA
Transpor linhas duplicadas para colunas com código VBA
Infelizmente, não há uma maneira direta de lidar com isso no Excel, mas você pode criar um código VBA para resolvê-lo. Faça o seguinte:
1. Mantenha pressionada a ALT + F11 chaves para abrir o Janela Microsoft Visual Basic for Applications.
2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.
Código VBA: transponha linhas duplicadas para várias colunas
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. Então aperte F5 chave para executar este código, selecione o intervalo de dados que você deseja converter as linhas duplicadas em várias colunas na caixa de diálogo exibida, consulte a captura de tela:
4. Clique OKe selecione uma célula onde deseja colocar o resultado na seguinte caixa de diálogo, consulte a captura de tela:
5. E, em seguida, clique em OK botão, seus dados selecionados foram convertidos para o seguinte:
Artigos relacionados:
Como transpor / converter colunas e linhas em uma única linha?
Como transpor / converter colunas e linhas em uma única coluna?
Como transpor / converter uma única coluna em várias colunas no Excel?
Melhores ferramentas de produtividade de escritório
Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil
- Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
- Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!