excel如何轉置

Excel 如何轉置 (Transpose) — 完整教學#

在 Excel 裡進行「轉置」操作(把行列互換)往往是處理資料時最常見的需求之一。本文將深入探討轉置的原因、提供三種不同的分步解決方案(公式、剪貼簿、VBA),並整理常見問題解答,幫助你快速、靈活地完成轉置任務。


為什麼需要轉置?#

典型場景 轉置的好處
資料整理 把行資料變成列,方便對比、統計或做圖表
報表合併 把多張表格的列合併成一張表,提升閱讀性
資料遞交 某些系統或第三方工具只接受列式輸入,必須轉置
節省空間 把寬列縮短,節省工作表空間
自動化 在宏或腳本中,動態切換行列位置

注意:轉置會改變資料結構,若要保留原始資料,請先複製一份。


方案一:使用 Paste Special → Transpose(最簡單)#

步驟#

  1. 選擇要轉置的範圍
    例如 A1:C3(3 行 × 3 列)。

  2. 複製
    Ctrl + C 或右鍵 → 複製

  3. 選擇貼上位置
    例如 E1。

  4. 貼上特殊
    Ctrl + Alt + V → 選擇 Transpose確定

提示:若要保留公式,可選擇「保留公式」或「數值」;若要保留格式,請先在“貼上特殊”中勾選「格式」。

小技巧:若想一次性轉置多個區域,先在同一個工作表中把所有範圍連續選取,然後同樣操作即可。


方案二:使用 TRANSPOSE 函數(動態轉置)#

步驟#

  1. 選擇目標範圍
    假設原始數據在 A1:C3,你想把它轉置到 E1:G3,先選取 E1:G3(相同大小)。

  2. 輸入公式
    E1 輸入:

    =TRANSPOSE(A1:C3)
  3. 使用 Ctrl+Shift+Enter(舊版 Excel)或直接輸入(Office 365 / Excel 2021+)

    • 舊版:按 Ctrl+Shift+Enter,公式會成為陣列公式,顯示 {=TRANSPOSE(A1:C3)}
    • 新版:直接按 Enter,Excel 會自動「動態陣列」。
  4. 確認結果
    E1G3 現在顯示轉置後的資料。

小技巧:如果你只想轉置一行或一列,公式會自動縮放;若目標範圍大小不符,Excel 會報錯。


方案三:使用 VBA 宏(批量處理)#

步驟#

  1. 打開 VBA 編輯器
    Alt + F11

  2. 插入新模組
    右鍵 → 插入模組

  3. 貼上以下程式碼

    Sub TransposeRange()
        Dim src As Range, dest As Range
        Dim r As Long, c As Long
    
        ' 設定來源範圍
        Set src = Application.InputBox("選擇要轉置的範圍", Type:=8)
    
        ' 設定貼上起始位置
        Set dest = Application.InputBox("選擇貼上起始位置", Type:=8)
    
        ' 轉置
        For r = 1 To src.Rows.Count
            For c = 1 To src.Columns.Count
                dest.Cells(c, r).Value = src.Cells(r, c).Value
            Next c
        Next r
    
        MsgBox "轉置完成!"
    End Sub
  4. 執行宏
    F5Run → 選擇來源範圍 → 選擇貼上位置。

小技巧:這個宏不會保留格式,只轉移數值。若需要保留格式,請把 Value 改成 Value2 或使用 Copy/PasteSpecial


常見問題解答 (FAQ)#

問題 解答
轉置後公式失效 Paste Special → Transpose 只會貼上公式的結果;若想保留公式,請使用 TRANSPOSE 函數或先複製公式再貼上。
資料中含有公式,想保持相對引用 TRANSPOSE 函數會自動調整相對引用;手動轉置則不會。
如何在工作表之間批量轉置 可以使用 VBA 或寫一個公式 =TRANSPOSE(Sheet1!A1:C3)
轉置後行列數量不對 轉置後的行數 = 原列數,列數 = 原行數;請確保目標範圍大小匹配。
轉置後數據顯示為錯誤值 可能是因為公式引用了空單元格或錯誤數據,請先檢查來源。
如何保持顏色和格式 Paste Special 時勾選「格式」;TRANSPOSE 函數不保留格式,需手動調整。
轉置後的資料太大,導致 Excel 變慢 建議先將數據複製到新工作簿,或使用 VBA 先將數據轉存到陣列再寫回。

小結#

  • Paste Special → Transpose:最直觀,適用於一次性手動轉置。
  • TRANSPOSE 函數:動態、可自動更新,適合需要隨時同步的數據。
  • VBA 宏:批量、可自動化,適合大批量或重複性工作。

根據自己的需求選擇合適的方法,掌握這三種技巧後,你就能在 Excel 中靈活處理任何行列轉換需求。祝你工作順利!