Здравствуйте. Подскажите, как преобразовать строку в столбец, чтобы заголовок строки отображался в соседней ячейке от получившегося столбца? Чтобы было более понятно прикрепил файл. --- В реальности таких строк 2000+, поэтому вариант вручную всё это делать кажется ужасным
Здравствуйте. Подскажите, как преобразовать строку в столбец, чтобы заголовок строки отображался в соседней ячейке от получившегося столбца? Чтобы было более понятно прикрепил файл. --- В реальности таких строк 2000+, поэтому вариант вручную всё это делать кажется ужасным xcripz
xcripz, Выделяете свой массив, копируете его в буфер обмена, встаете на ячейку, которая будет левой верхней ячейкой нового массива, щелкаете правой кнопкой мыши, щелкаете по пункту "Специальная вставка". В открывшемся окне ставите галку "Транспонировать" и нажимаете ОК.
xcripz, Выделяете свой массив, копируете его в буфер обмена, встаете на ячейку, которая будет левой верхней ячейкой нового массива, щелкаете правой кнопкой мыши, щелкаете по пункту "Специальная вставка". В открывшемся окне ставите галку "Транспонировать" и нажимаете ОК.Samaretz
Сообщение отредактировал Samaretz - Четверг, 11.12.2014, 15:55
У меня решение простеньким макросом. Никакого прописывания формул - один тык на кнопку и готово. Пример во вложении.
Перед вставкой результата очищает лист от значений.
[vba]
Код
Sub Rio_Rotation()
Dim A&, B&, X&, ArrX(), ArrY()
For A = 1 To Cells(Rows.Count, 1).End(xlUp).Row B = 2 Do While Cells(A, B).Value <> "" ReDim Preserve ArrY(X), ArrX(X) ArrY(X) = Cells(A, 1).Value: ArrX(X) = Cells(A, B).Value X = X + 1: B = B + 1 Loop Next A
ActiveSheet.UsedRange.Value = ""
With Application.WorksheetFunction Cells(1, 1).Resize(X, 1).Value = .Transpose(ArrY) Cells(1, 2).Resize(X, 1).Value = .Transpose(ArrX) End With
End Sub
[/vba]
xcripz, здравствуйте.
У меня решение простеньким макросом. Никакого прописывания формул - один тык на кнопку и готово. Пример во вложении.
Перед вставкой результата очищает лист от значений.
[vba]
Код
Sub Rio_Rotation()
Dim A&, B&, X&, ArrX(), ArrY()
For A = 1 To Cells(Rows.Count, 1).End(xlUp).Row B = 2 Do While Cells(A, B).Value <> "" ReDim Preserve ArrY(X), ArrX(X) ArrY(X) = Cells(A, 1).Value: ArrX(X) = Cells(A, B).Value X = X + 1: B = B + 1 Loop Next A
ActiveSheet.UsedRange.Value = ""
With Application.WorksheetFunction Cells(1, 1).Resize(X, 1).Value = .Transpose(ArrY) Cells(1, 2).Resize(X, 1).Value = .Transpose(ArrX) End With