У меня есть это в Excel:
P|A |R |T
--|--|--|
--|--|--|
--|--|--|
P|G |--|
--|--|--|
P|--|--|
Я хочу так:
P|--|--|
A|--|--|
R|--|--|
T|--|--|
P|--|--|
G|--|--|
P|--|--|
У меня есть это в Excel:
P|A |R |T
--|--|--|
--|--|--|
--|--|--|
P|G |--|
--|--|--|
P|--|--|
Я хочу так:
P|--|--|
A|--|--|
R|--|--|
T|--|--|
P|--|--|
G|--|--|
P|--|--|
Этот простой UDF транспонирует показанные данные с пустыми ячейками между ними:
Option Base 1
Function TranBlank(X As Range, Y As Long) As Variant
Dim RZArray() As String
Dim c As Range
i = 0
For Each c In X
If Len(c) > 0 Then
i = i + 1
ReDim Preserve RZArray(i)
RZArray(i) = c.Value
End If
Next c
TranBlank = RZArray(Y)
End Function
Как это устроено:
При необходимости измените ссылки на ячейки в формуле.
=IFERROR(TranBlank(A$2:D$7,ROW(A1)),"")
Ваш пример не может быть преобразован с помощью одной команды. Я надеюсь, что вы это видите. Часть таблицы может быть просто помечена с помощью мыши, Ctrl-C (для копирования) и щелкнуть правой кнопкой мыши в целевой позиции и выбрать "вставить специальные". Вы видите диалог, где вы можете найти "транспонировать". Как это описано здесь.