Как да транспонирам дублирани редове в колони в Excel?
Да предположим, че имате набор от данни в Excel, сега бихте искали да транспонирате дублиращите се редове в множество колони, както е показано на следната екранна снимка, имате ли добри идеи за решаване на тази задача?
Транспонирайте дублиращи се редове в колони с VBA код
Транспонирайте дублиращи се редове в колони с VBA код
За съжаление, няма директен начин да се справите с него в Excel, но можете да създадете VBA код, за да го разрешите, моля, направете следното:
1. Задръжте надолу ALT + F11 за да отворите Прозорец на Microsoft Visual Basic за приложения.
2. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.
VBA код: Транспонирайте дублиращи се редове в множество колони
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. След това натиснете F5 за да стартирате този код, изберете диапазона от данни, който искате да конвертирате дублиращите се редове в множество колони в изскачащия диалогов прозорец, вижте екранната снимка:
4. Щракнете OKи изберете една клетка, където искате да поставите резултата в следния диалогов прозорец, вижте екранна снимка:
5. И после щракнете върху OK избраните от вас данни са преобразувани в следното:
Свързани статии:
Как да транспонирам / конвертирам колони и редове в един ред?
Как да транспонирам / конвертирам колони и редове в една колона?
Как да транспонирам / конвертирам една колона в множество колони в Excel?
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!