2013-02-27 4 views
3

У меня есть следующий Excel таблицу:Как перенести столбец в строку в Excel

A 
1 foo 
2 bar 
3 baz 
4 bam 

(В действительности, колонка намного больше сделать transponing вручную не вариант). Как я могу превратить этот лист в

A B C D 
1 foo bar baz bam 

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

+1

вы можете просто скопировать и 'pastspecial transpose' с помощью меню правой кнопки мыши, или вам нужно сделать это в VBA? – scott

ответ

5

Есть два простых, без программных способов:

  1. Скопируйте данные и на цели, использовать Paste Special ->транспонирования
  2. Применить функцию TRANSPOSE листа: выберите диапазон транспонированного размера (в вашем пример 1 строка x 4 столбца и введите =TRANSPOSE(A1:A4). Вы должны ввести это как формула массива, т.е. пресс Ctrl - Сдвиг - Введите

Если по какой-то причине вам нужно сделать это с помощью кода, этот VBA код будет делать:

Sub CopyTransposed(rngSource As Range, rngTargetCell As Range) 
    rngTargetCell.Resize(rngSource.Columns.Count, rngSource.Rows.Count).Value = _ 
     Application.WorksheetFunction.Transpose(rngSource) 
End Sub 

Вы можете просто назвать это так:

CopyTransposed [A1:A4], [C1] 

или быть более явным

CopyTransposed Sheets("SourceSheet").Range("A1:A4"),Sheets("TargetSheet").Range("C1") 
3

Если вам нужно только перенести данные, (т.е. без форматов) попробовать это

Sub zx() 
    Dim rng As Range 
    Dim dat As Variant 

    With ActiveSheet ' can be any sheet 
     Set rng = .[A1:A5] ' get refernce to your data, by any means 
     dat = rng ' copy data to array 
     rng.Clear ' clear old data 

     ' paste transposed data 
     .Range(rng.Cells(1, 1), Cells(rng.Row, rng.Rows.Count)) = Application.Transpose(dat) 
    End With 
End Sub 
+0

+1 очень-очень красивый 'VBA'! – whytheq

0

Ctrl + C для копирования и вставки с использованием специальной вставки. В диалоговом окне выберите транспонирование.

Вставиться как значения, хотя ....

Смежные вопросы