提示:其他語言是Google翻譯的。 你可以訪問 English 版本。
登入
x
or
x
x
註冊
x

or

如何將每列5或n行從一列轉置到多列?

doc轉換每個5行1

假設您在列A中有很長的數據,現在想要將A列中的每個5行轉置為多列,例如將A1:A5轉換為C6:G6,A6:A10轉換為C7:G7,等等下面的截圖顯示。 你如何處理這個任務,而無需在Excel中重複複製和粘貼?

將每列5或n行從一列轉換為具有公式的多列

將每列5或n行從一列轉移到具有VBA代碼的多列

使用Kutools for Excel將每列5或n行從一列轉換為多列


將每列5或n行從一列轉換為多列:

要將每列5或n行從一列轉換為多列, Kutools for Excel's 變換範圍 實用程序可以幫助您盡快解決這項工作。 它還可以幫助您將一系列數據轉換為單個行或一列。

doc轉換每個5行10

Kutools for Excel:比200方便的Excel加載項,可以在60天免費試用。 下載並免費試用現在!



在Excel中,可以應用以下公式將每列中的每n行轉置為多列,具體操作如下:

1。 例如,將下列公式輸入到要放置結果的空白單元格C1中, = INDEX($ A:$ A,ROW(A1)* 5-5 + COLUMN(A1)),看截圖:

doc轉換每個5行2

注意:在上面的公式中, 答: 是要轉置的列引用,並且 A1 是使用列的第一個單元格,即數字 5 表示您的數據將找到的列數,您可以將其更改為您的需要。 列表的第一個單元格必須位於工作表的第一行。

2。 然後將填充手柄右移到五個單元格,然後將填充手柄向下拖動到單元格範圍,直到顯示0,請參見截圖:

doc轉換每個5行3


如果您無法正確應用公式,以下VBA代碼也可以幫助您。

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,並將以下代碼粘貼到 模塊 窗口。

VBA代碼:將每個5或n行從一列轉置為多列:

Public Sub TransposeData()
'updateby Extendoffice 20151207
    Dim xLRow As Long
    Dim xNRow As Long
    Dim i As Long
    Dim xUpdate As Boolean
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select data range(only one column):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count > 1) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range only contain one column", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xUpdate = Application.ScreenUpdating
    Application.ScreenUpdating = False
    xLRow = xRg.Rows.Count
    For i = 1 To xLRow Step 5
        xRg.Cells(i).Resize(5).Copy
        xOutRg.Offset(xNRow, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
        xNRow = xNRow + 1
    Next
    Application.ScreenUpdating = xUpdate
End Sub

3。 粘貼代碼後,請按 F5 鍵運行它,並彈出提示框提醒您選擇要轉置的列,請參閱屏幕截圖:

doc轉換每個5行4

4。 然後點擊 OK,然後選擇一個您希望將結果放入另一個彈出框的單元格,請參閱截圖:

doc轉換每個5行5

5。 並點擊 OK,該列中的數據已轉換為您需要的五列,請參閱截圖:

doc轉換每個5行6

注意:在上面的代碼中,您可以更改數字 5 到你需要的其他號碼。


如果你有 Kutools for Excel,其 變換範圍 實用程序,您可以快速將一列或一行轉換為多列和多行。

Kutools for Excel : 與超過300方便的Excel加載項,在60天免費試用沒有限制.

安裝後 Kutools for Excel請按照以下步驟進行:

1。 選擇列中的數據,然後單擊 Kutools > 範圍 > 變換範圍,看截圖:

doc轉換每個5行7

2。 在 變換範圍 對話框中選擇 單列到範圍 選項下 變換類型,然後檢查 固定值每條記錄的行數,然後指定要轉置到的列的數量 固定值 框中,看截圖:

doc轉換每個5行8

3。 然後點擊 Ok 按鈕,在彈出的框中,請選擇一個單元格輸出結果,參見截圖:

doc轉換每個5行9

4。 然後點擊 OK 按鈕,並且您的列數據已按每個5行進行轉置,如下面的屏幕截圖所示:

doc轉換每個5行6

立即下載並免費試用Kutools for Excel!


Kutools for Excel:比200方便的Excel加載項,可以在60天免費試用。 下載並免費試用現在!


Kutools for Excel解決了您的大多數問題,並使您的生產率提高了80%

  • 重用: 快速插入 複雜的公式,圖表 以及你以前用過的任何東西; 加密單元格 密碼; 創建郵件列表 並發送電子郵件...
  • 超級方程式酒吧 (輕鬆編輯多行文字和公式); 閱讀佈局 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不丟失數據; 分裂細胞含量; 組合重複的行/列...防止重複的細胞; 比較範圍...
  • 選擇複製或唯一 行; 選擇空行 (所有細胞都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇......
  • 精確複製 多個單元格而不更改公式參考; 自動創建參考 多張表; 插入項目符號,複選框等等......
  • 提取文本,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級過濾器 (將過濾方案保存並應用到其他工作表); 高級排序 按月/週/日,頻率等; 特殊過濾器 用粗體,斜體......
  • 結合工作簿和工作表; 根據鍵列合併表; 將數據拆分為多個表格; 批量轉換xls,xlsx和PDF...
  • 超過300強大的功能。 支持Office / Excel 2007-2019和365。 支持所有語言。 在您的企業或組織中輕鬆部署。 全功能30天免費試用。
kte tab 201905

Office選項卡為Office提供選項卡式界面,使您的工作更輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,Publisher,Access,Visio和Project。
  • 在同一窗口的新選項卡中打開並創建多個文檔,而不是在新窗口中。
  • 通過50%提高您的工作效率,每天為您減少數百次鼠標點擊!
官方底部
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Maha · 4 months ago
    Thanks alot _/\_ Awesome job with =INDEX($A:$A,ROW(B1)*5-5+COLUMN(B1))
    worked perfectly
  • To post as a guest, your comment is unpublished.
    Arun Balaji VN · 4 months ago
    I tried only the the formula option and it worked great. Till now have been using (Transpose formula with ctrl+shift+enter) but there the disadvantage for we have delete many extra rows. when the rows to be transposed for large in the order of lakhs, then deleting them in excel is either impossible or takes a lot of time.
    this approach made the life easier by only copying the required rows... Thanks
  • To post as a guest, your comment is unpublished.
    Sian · 1 years ago
    This is fricking AWESOME!!! Thank you SO much. Your example was exactly what I needed and it worked beautifully.
  • To post as a guest, your comment is unpublished.
    hamidreza · 1 years ago
    =INDEX($A:$A,ROW(A1)*5-5+COLUMN(A1))
    It was very simple and really useful. Thank you so much
  • To post as a guest, your comment is unpublished.
    Thank · 1 years ago
    It was great! Thank you! You saved me hours of manual work!
  • To post as a guest, your comment is unpublished.
    xplode · 2 years ago
    Thank you so much!
    It was really helpful. :)
  • To post as a guest, your comment is unpublished.
    MTVN · 2 years ago
    What formula to transpose every 5 rows to a single column?
  • To post as a guest, your comment is unpublished.
    hgimongu · 2 years ago
    Hi!

    May I ask you how to add Blank cell delimits records, instead of 5 as the data I am handling hasn't got fix number of rows. I believe the part which I should change may be around this part of the code:

    For i = 1 To xLRow Step 5
    xRg.Cells(i).Resize(5).Copy
    xOutRg.Offset(xNRow, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
    xNRow = xNRow + 1

    Best