Note: The other languages of the website are Google-translated. Back to English
ログイン  \/ 
x
or
x
今すぐ登録  \/ 
x

or

5行またはn行ごとにXNUMXつの列から複数の列に転置するにはどうすればよいですか?

docは5行ごとに転置します1

列Aに長いデータがあり、5行ごとに列Aから複数の列に転置したいとします。たとえば、A1:A5からC6:G6、A6:A10からC7:G7などを転置します。次のスクリーンショットを示します。 Excelで繰り返しコピーして貼り付けることなく、このタスクをどのように処理できますか?

式を使用して、5行またはn行ごとにXNUMXつの列から複数の列に転置します。

VBAコードを使用して、5行またはn行ごとにXNUMXつの列から複数の列に転置します。

Kutools for Excelを使用して、5行またはn行ごとにXNUMXつの列から複数の列に転置します。


Excelでは、次の数式を適用して、n行ごとにXNUMXつの列から複数の列に転置できます。次のようにしてください。

1。 結果を入力する空白のセルに次の数式を入力します。たとえば、C1、 = INDEX($ A:$ A、ROW(A1)* 5-5 + COLUMN(A1))、スクリーンショットを参照してください:

docは5行ごとに転置します2

ノート:上記の式では、 A:A 転置する列参照であり、 A1 使用される列の最初のセルである番号 5 データが配置する列の数を示します。必要に応じて変更できます。 また、リストの最初のセルは、ワークシートの最初の行に配置する必要があります。

2。 次に、塗りつぶしハンドルを右に0つのセルにドラッグし、XNUMXが表示されるまで塗りつぶしハンドルをセルの範囲までドラッグします。スクリーンショットを参照してください。

docは5行ごとに転置します3


5行またはn行ごとにXNUMXつの列から複数の列に変換します。

5行またはn行ごとにXNUMXつの列から複数の列に変換するには、 Kutools for Excel's 変換範囲 ユーティリティは、このジョブをできるだけ早く解決するのに役立ちます。 また、データの範囲を単一の行または列に転置するのにも役立ちます。 クリックしてKutoolsfor Excelをダウンロードしてください!

docは5行ごとに転置します10

Kutools for Excel:300以上の便利なExcelアドインがあり、30日以内に制限なしで無料で試すことができます。 今すぐダウンロードして無料トライアル!


式を正しく適用できない場合は、次のVBAコードも役立ちます。

1。 を押し続けます Alt + F11 キーを押して Microsoft Visual Basic for Applications 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュール 窓。

VBAコード:5行またはn行ごとにXNUMXつの列から複数の列に転置します。

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、結果を別のポップアウトボックスに配置するセルをXNUMXつ選択します。スクリーンショットを参照してください。

docは5行ごとに転置します5

5。 をクリックします OK、列のデータは必要なXNUMXつの列に変換されています。スクリーンショットを参照してください。

docは5行ごとに転置します6

ノート:上記のコードでは、番号を変更できます 5 あなたが必要とする他の番号に。


あなたが持っている場合 Kutools for Excelそのと 変換範囲 ユーティリティを使用すると、XNUMXつの列または行を複数の列および行にすばやく転置できます。

Kutools for Excel : 300以上の便利なExcelアドインがあり、30日以内に制限なしで無料で試すことができます. 

インストールした後 Kutools for Excel、次のようにしてください。

1。 列のデータを選択し、をクリックします クツール > 範囲 > 変換範囲、スクリーンショットを参照してください:

2。 の中に 変換範囲 ダイアログボックスで 範囲に単一の列 オプションの下に 変換タイプ、次にチェックする 固定値レコードあたりの行数、次に転置する列の数を指定します 固定値 ボックス、スクリーンショットを参照してください:

docは5行ごとに転置します8

3。 そして、 Ok ボタンをクリックし、ポップアウトされたボックスで、結果を出力するセルを選択してください。スクリーンショットを参照してください。

docは5行ごとに転置します9

4。 次に、をクリックします OK ボタンをクリックすると、次のスクリーンショットのように、列データが5行ごとに転置されます。

docは5行ごとに転置します6

今すぐExcel用のKutoolsをダウンロードして無料トライアル!


Kutools for Excel:300以上の便利なExcelアドインがあり、30日以内に制限なしで無料で試すことができます。 今すぐダウンロードして無料トライアル!

最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300以上の強力な機能。 Office / Excel2007-2019および365をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 全機能30日間の無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性が50%向上し、毎日何百ものマウスクリックが減ります。
officetab下部
Say something here...
symbols left.
You are guest
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.
    Pradeep · 1 years ago
    Hi, How to do this for Colms to rows. Thank you
    • To post as a guest, your comment is unpublished.
      Jan steihn · 11 months ago
      I've rewritten the command to this one:
      =INDEX($A:$A,ROW(A1)+((COLUMN(A1)-2)*5))
      This executes it inverted.
      So:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      ...
      becomes
      1, 6
      2, 7
      3, 8
      4, 9
      5, ...
  • To post as a guest, your comment is unpublished.
    Maha · 1 years 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 · 1 years 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 · 2 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 · 3 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 · 3 years ago
    It was great! Thank you! You saved me hours of manual work!
  • To post as a guest, your comment is unpublished.
    xplode · 3 years ago
    Thank you so much!
    It was really helpful. :)
  • To post as a guest, your comment is unpublished.
    MTVN · 4 years ago
    What formula to transpose every 5 rows to a single column?
  • To post as a guest, your comment is unpublished.
    hgimongu · 4 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
    • To post as a guest, your comment is unpublished.
      Mark.lewis2020 · 11 months ago
      I have the same issue , where the columns are not fixed, and there are empty lines, but I have a same character and end of each data set , that is "=" can I use this as delimiter , that breaks the loop, and next line is considered as new data set ?
    • To post as a guest, your comment is unpublished.
      Mark · 11 months ago
      did you get an answer for the same as i have the same issue , columns are not fixed in numbers, what should I do , can I use a particular character as a delimiter that breaks the loop and count next line and new data set ?