簡體   English   中英

如何在Excel中將列轉置為行

[英]How do I transpose a column into a row in Excel

我有以下Excel工作表:

   A
1 foo
2 bar
3 baz
4 bam

(實際上,該列要長很多,因此無法手動傳輸)。 我怎樣才能把這張紙變成

   A   B   C   D
1 foo bar baz bam

我已經嘗試了數據透視表功能,但無法獲取所需的輸出。 我也可以編寫一個(php)腳本來讀取和轉換Excel,但是我無法想象這在Excel中不容易完成。 但是,我一直找不到這個問題的答案。 你能幫我嗎?

有兩種簡單的非編程方式:

  1. 復制數據,然后在目標處使用選擇性粘貼 -> 轉置
  2. 應用TRANSPOSE工作表函數:選擇轉置大小的范圍(在您的示例中為1行x 4列,然后輸入=TRANSPOSE(A1:A4) 。您需要將此作為數組公式輸入,即按Ctrl - Shift - Enter

如果出於某些原因需要通過代碼執行此操作,則此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")

如果只需要轉置數據(即沒有格式),請嘗試此

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

Ctrl + C使用“選擇性粘貼”進行復制和粘貼。 單擊對話框上的移調。

但這會將其粘貼為值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM