Note: The other languages of the website are Google-translated. Back to English

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

doc每5行轉置1

假設您在A列中有較長的數據,現在,您想將A列中的每5行轉置為多列,例如將A1:A5轉換為C6:G6,將A6:A10轉換為C7:G7,依此類推顯示以下截圖。 如果不在Excel中重複複製和粘貼,如何處理此任務?

使用公式將每5或n行從一列轉置為多列

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

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


在Excel中,您可以應用以下公式將每n行從一列轉置為多列,請執行以下操作:

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

doc每5行轉置2

備註:在以上公式中, 答: 是您要轉置的列引用,並且 A1 是已使用列的第一個單元格,即數字 5 表示您的數據將定位的列數,您可以根據需要進行更改。 並且列表的第一個單元格必須位於工作表的第一行。

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

doc每5行轉置3


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

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

doc每5行轉置10

Excel的Kutools:具有300多個方便的Excel加載項,可以在30天內免費試用,沒有任何限制。 立即下載並免費試用!


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

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

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

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

Public Sub TransposeData()
'updateby Extendoffice
    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 到您需要的其他號碼。


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

Excel的Kutools : 帶有300多個便捷的Excel加載項,可以在30天內免費試用. 

安裝後 Excel的Kutools,請執行以下操作:

1。 在列中選擇數據,然後單擊 庫工具 > 範圍 > 變換範圍,請參見屏幕截圖:

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

doc每5行轉置8

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

doc每5行轉置9

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

doc每5行轉置6

立即下載和免費試用Excel的Kutools!


Excel的Kutools:具有300多個方便的Excel加載項,可以在30天內免費試用,沒有任何限制。 立即下載並免費試用!

最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

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

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (15)
5中的5評分 · 1評級
網站主持人對此評論進行了最小化
你好! 請問如何添加空白單元格分隔記錄,而不是 5,因為我正在處理的數據沒有固定的行數。 我相信我應該更改的部分可能是代碼的這一部分: For i = 1 To xLRow Step 5 xRg.Cells(i).Resize(5).Copy xOutRg.Offset(xNRow, 0).PasteSpecial Paste: =xlPasteAll,轉置:=真 xNRow = xNRow + 1 最佳
網站主持人對此評論進行了最小化
您是否得到了與我遇到相同問題相同的答案?
網站主持人對此評論進行了最小化
我有同樣的問題,列不固定,並且有空行,但我有相同的字符和每個數據集的結尾,即“=”我可以將其用作分隔符,這會破壞循環,並且下一行被視為新數據集?
網站主持人對此評論進行了最小化
什麼公式將每 5 行轉置為單列?
網站主持人對此評論進行了最小化
非常感謝! 這真的很有幫助。 :)
網站主持人對此評論進行了最小化
太好了! 謝謝! 你為我節省了數小時的體力勞動!
網站主持人對此評論進行了最小化
= INDEX($ A:$ A,ROW(A1)* 5-5 + COLUMN(A1))
它非常簡單而且非常有用。 非常感謝
網站主持人對此評論進行了最小化
這真是太棒了! 太感謝了。 你的例子正是我所需要的,而且效果很好。
網站主持人對此評論進行了最小化
我只嘗試了公式選項,效果很好。 直到現在一直在使用(使用 ctrl+shift+enter 轉置公式),但缺點是我們刪除了許多額外的行。 當要以十萬為單位的大行轉置時,那麼在 excel 中刪除它們要么是不可能的,要么需要很長時間。
這種方法通過僅複製所需的行使生活更輕鬆......謝謝
網站主持人對此評論進行了最小化
非常感謝 _/\_ =INDEX($A:$A,ROW(B1)*5-5+COLUMN(B1)) 的出色工作
工作完美
網站主持人對此評論進行了最小化
嗨,如何為 Colms 執行此操作到行。 謝謝
網站主持人對此評論進行了最小化
我已經將命令重寫為這個:
=INDEX($A:$A,行(A1)+((列(A1)-2)*5))
這會倒轉執行。
孫:
1
2
3
4
5
6
7
8
9
...
成為
1,6
2,7
3,8
4,9
5,...
網站主持人對此評論進行了最小化
我嘗試按照書面方式執行此操作,但得到的只是錯誤:508
網站主持人對此評論進行了最小化
你是個天才。 謝謝!
5中的5評分
網站主持人對此評論進行了最小化
你好,

J'ai, dans mon unique colonne de données, des cellules placées aléatoirement toutes les x lignes et qui contiennent une suite de caractères。

Je voudrait que cette cellule soit dans la première colonne de la ligne transposée, avec, dans les colonnes suivantes, la transposition des lignes qui la suivent, jusqu'à la répétition de ma chaine de caractères, qui signifierait le début de la ligne suivante。 ..

Bref, Heeellp...

謝謝你在前進
斯特凡
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護