メインコンテンツへスキップ

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

Note:上記の式では、 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 窓。

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

Note:上記のコードでは、番号を変更できます 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 AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行   |  コードを生成  |  カスタム数式の作成  |  データを分析してグラフを生成する  |  Kutools関数を呼び出す...
人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト ツール (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 ツール (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット ツール (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

説明


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

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (15)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Bonjour,

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, Heeelllp...

Merci d'avance
Stéphane
This comment was minimized by the moderator on the site
You're a genius. Thanks!
Rated 5 out of 5
This comment was minimized by the moderator on the site
I try doing this just as written, and all I get is Error:508
This comment was minimized by the moderator on the site
Hi, How to do this for Colms to rows. Thank you
This comment was minimized by the moderator on the site
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, ...
This comment was minimized by the moderator on the site
Thanks alot _/\_ Awesome job with =INDEX($A:$A,ROW(B1)*5-5+COLUMN(B1))
worked perfectly
This comment was minimized by the moderator on the site
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
This comment was minimized by the moderator on the site
This is fricking AWESOME!!! Thank you SO much. Your example was exactly what I needed and it worked beautifully.
This comment was minimized by the moderator on the site
=INDEX($A:$A,ROW(A1)*5-5+COLUMN(A1))
It was very simple and really useful. Thank you so much
This comment was minimized by the moderator on the site
It was great! Thank you! You saved me hours of manual work!
This comment was minimized by the moderator on the site
Thank you so much! It was really helpful. :)
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations