Транспонирование данных Excel из стандартной строки / столбцов в 1 столбец на уникальную строку и столько строк, сколько было столбцов - PullRequest
0 голосов
/ 02 мая 2019

У меня есть несколько случайных данных в Excel в этом формате:

ID number/Col_B/Col_C/Col_D/Col_E

001/'test'/'test'/'test'/'test'

002/'test'/'test'/'test'/'test'

003/'test'/'test'/'test'/'test'

Я бы хотел транспонировать его (сводную таблицу?), Чтобы на каждый номер идентификатора приходилось 1 столбец, а на каждый другой столбец - 1 строка ... вот так:

-ID Number----001 / 002 / 003

'Col_A'    'Test'  'Test' 'Test'

'Col_B'    'Test'  'Test'  'Test'

'Col_C'    'Test'   'Test'  'Test'

Возможно ли это? Я попытался создать сводную таблицу, выделив полный набор данных и перетащив столбец идентификатора так, чтобы на каждый идентификатор приходилось 1 столбец ... но затем, если я добавлю другие столбцы (ABC) в виде строк, это будет выглядеть не так, как мне нужно. ... и если я добавлю их в среднее поле (значения), оно подсчитает / сумм / мин / макс их, но я просто хочу само значение ..

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Подсветка ячеек, копирование.Выберите пункт назначения, щелкните правой кнопкой мыши, вставьте Special и выберите transpose

0 голосов
/ 02 мая 2019

Использование VBA

Sub Redesigner()
    Dim i As Long
    Dim hc As Integer, hr As Integer
    Dim ns As Worksheet

    hr = 1 ' count rows on top
    hc = 1 ' count column on left

    Application.ScreenUpdating = False

    i = 1
    Set inpdata = Selection
    Set ns = Worksheets.Add

    For r = (hr + 1) To inpdata.Rows.Count
        For c = (hc + 1) To inpdata.Columns.Count
            For j = 1 To hc
                ns.Cells(i, j) = inpdata.Cells(r, j)
            Next j

            For k = 1 To hr
                ns.Cells(i, j + k - 1) = inpdata.Cells(k, c)
            Next k

            ns.Cells(i, j + k - 1) = inpdata.Cells(r, c)
            i = i + 1
        Next c
    Next r
End Sub

Использование формулы транспонирования и расширение до нужных строк и столбцов

={Transpose(A1:A20)}  ' CTRL+SHIFT+ENTER  Array FORmula !!!

Использование функции транспонирования по умолчанию

Select Table -> Copy -> Select cell where to transpose -> Right click Mouse -> Select Transpose
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...