¿Cómo transponer filas duplicadas a columnas en Excel?
Suponiendo que tiene un rango de datos en Excel, ahora, le gustaría transponer las filas duplicadas a múltiples columnas como se muestra en la siguiente captura de pantalla, ¿tiene alguna buena idea para resolver esta tarea?
Transponer filas duplicadas a columnas con código VBA
Transponer filas duplicadas a columnas con código VBA
Desafortunadamente, no hay una forma directa de manejarlo en Excel, pero puede crear un código VBA para resolverlo, haga lo siguiente:
1. Mantenga pulsado el botón ALT + F11 teclas para abrir el Ventana de Microsoft Visual Basic para aplicaciones.
2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.
Código VBA: transponer filas duplicadas a varias columnas
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. Entonces presione F5 para ejecutar este código, seleccione el rango de datos en el que desea convertir las filas duplicadas en varias columnas en el cuadro de diálogo emergente, vea la captura de pantalla:
4. Hacer clic OKy seleccione una celda donde desea colocar el resultado en el siguiente cuadro de diálogo, vea la captura de pantalla:
5. Y luego haz clic OK , sus datos seleccionados se han convertido a lo siguiente:
Artículos relacionados:
¿Cómo transponer / convertir columnas y filas en una sola fila?
¿Cómo transponer / convertir columnas y filas en una sola columna?
¿Cómo transponer / convertir una sola columna a múltiples columnas en Excel?
Las mejores herramientas de productividad de oficina
Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haga clic aquí para obtener la función que más necesita...
Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
- ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!