Excelでn行ごとに行を列に転置する2つの簡単な方法
大きなMicrosoft Excelのデータを扱っていると、n行ごとのデータを行から列へ転置(入れ替え)したい場面が出てくることがあります。転置作業自体は簡単ですが、手作業で行うと時間がかかってしまいます。そこで本記事では、Excelでn行ごとに行を列に効率よく転置する2つの便利な方法を、実際の画面例を交えながらわかりやすく解説します。
Excelでn行ごとに行を列に転置する2つの方法
ここでは、アルマーニグループの複数の営業担当者に関する情報が入力された大きなExcelワークシートを例に説明します。営業担当者の氏名、ID番号、売上高がそれぞれB列、C列、D列に入力されています。このデータを例に、INDEX関数を使った方法とVBAコードを使った方法の2通りで、4行ごとに行を列に転置してみましょう。

方法1:INDEX関数を使ってn行ごとに行を列に転置する
INDEX関数を使えば、Excelでn行ごとのデータを列に簡単に転置できます。時間も節約できるおすすめの方法です。以下の手順に従って、4行ごとに行を列に転置してみましょう。
ステップ1:
- まず、元データを確認します。今回は4行ごとに列へ転置します。

- 次に、結果を出力するセルを選択します。ここでは作業しやすいよう、セルF5を選択します。

- セルF5を選択したら、以下の数式を入力します。
=INDEX($B:$B,ROW(B5)*4-4+COLUMN(B5))

- キーボードのEnterキーを押すと、セルF5にINDEX関数の結果として「David」が表示されます。

ステップ2:
- 続いて、オートフィル機能を使ってINDEX関数をF列の残りのセルにコピーします。

- さらに、G列・H列・I列にもオートフィルで関数を展開すると、下のスクリーンショットのような目的の出力結果が得られます。

ポイント: 数式内の「*4-4」の部分の「4」を任意の数字に変更すれば、5行ごと、10行ごとなど、好きな間隔で転置できます。
方法2:VBAコードを実行してn行ごとに行を列に転置する
次に、シンプルなVBAコードを使ってn行ごとに行を列に転置する方法をご紹介します。大量のデータを扱う場合や繰り返し作業が必要な場合に特に便利です。こちらも同じデータセットを使い、4行ごとに行を列に転置していきます。
ステップ1:
- まずモジュールを開きます。開発タブから以下の順にクリックしてください。
開発 → Visual Basic

- Visual Basicをクリックすると、「Microsoft Visual Basic for Applications」というウィンドウが開きます。このウィンドウでVBAコード用のモジュールを挿入します。以下の順に操作してください。
挿入 → 標準モジュール

ステップ2:
- 表示されたモジュールに、以下のVBAコードを記述します。
Sub Transpose_Rows_to_Columns()
Dim x As Long
Dim y As Long
Dim z As Long
Application.ScreenUpdating = False
z = Cells(1, Columns.Count).End(xlToLeft).Column
For y = 1 To z Step 2
x = x + 1
Cells(1, y).Copy Destination:=Cells(x, 1)
x = x + 1
Cells(1, y + 1).Copy Destination:=Cells(x, 1)
Next y
Cells(1, 2).Resize(1, z - 1).Clear
Application.ScreenUpdating = True
End Sub

- コードを入力したら、VBAを実行します。以下の順に操作してください。
実行 → Sub/ユーザーフォームの実行

- VBAコードを実行すると、下のスクリーンショットのように4行ごとのデータが列に転置されます。

覚えておきたいポイント
👉 Alt + F11キーを同時に押すことで、「Microsoft Visual Basic for Applications」のウィンドウをすぐに開くことができます。
👉 リボンに開発タブが表示されていない場合は、設定で表示させることができます。以下の順に操作してください。
ファイル → オプション → リボンのユーザー設定
まとめ
本記事では、Excelでn行ごとに行を列に転置する2つの方法(INDEX関数とVBAコード)を解説しました。どちらの方法も実務での生産性向上に役立つテクニックですので、ぜひ自分のスプレッドシートで活用してみてください。ご不明な点や質問がある場合は、お気軽にコメントでお知らせください。
関連記事
- Excelで逆転置を行う3つの簡単な方法
- Excelで列を行に転置する6つの方法
- Power Queryを使ってExcelで列を行に変換する方法
- セルの値に基づいてExcelで列を行に変換する方法
- Excelでの条件付き転置(2つの例)
- 列をシングルクォーテーション付きのカンマ区切りリストに変換する方法
- Excel VBAで転置を行う3つの方法
-
Excelで依存関係をトレースする2つの簡単な方法
Excelでデータを扱う際、依存関係のトレース(Trace Dependents)の使い方を知っておくことは非常に重要です。あるセルの値が他のどのセルに依存しているのかを把握できれば、ワークブック全体の構造理解やトラブルシューティングが格段にしやすくなります。この記事では、Excelで依存関係をトレースする2つの簡単で実用的な方法を解説します。 練習用ワークブックをダウンロードして、実際に手を動かしながら試してみてください。 Excelで依存関係をトレースする2つの方法 ここでは、「ABC商事の上半期売上」というサンプルデータセットを使用します。データは3列構成で、列B・C・Dにはそれぞれ月・
-
Excelでサンプルごとの行数を指定したANOVA(分散分析)を実行する2つの簡単な方法
ANOVA(分散分析:Analysis of Variance)とは、グループ内またはグループ間の平均値の差を検出するために、複数の統計モデルを組み合わせた手法です。Microsoft Excelでは、ANOVA分析のさまざまな機能を活用して結果を解釈することができます。この記事では、Excelでサンプルごとの行数を指定してANOVAを実行する2つの簡単な方法をわかりやすく解説します。シンプルかつ効率的にANOVAを活用したい方は、ぜひ参考にしてください。 Excelでサンプルごとの行数を指定したANOVAを実行する2つの方法 2つの独立変数を用いて分析を行う場合は、二元配置分散分析(Two-