Excelでデータの行と列を入れ替える操作は、データの整理やレイアウト変更を簡単に行うのに役立ちます。TRANSPOSE関数をはじめ、行列を入れ替える方法をわかりやすく解説します。また、関数以外の方法も紹介します。
TRANSPOSE関数を使って行と列を入れ替える
TRANSPOSE関数は、Excelで行と列を動的に入れ替えるための関数です。
【基本的な使い方】
- データを選択
 入れ替えたいデータ(例: A1:C3)を確認します。
- TRANSPOSE関数を入力- 入力先のセルを選択し、以下のように入力します。
 
- 入力先のセルを選択し、以下のように入力します。
- 配列数式として確定- 古いバージョン(Excel 2019以前)では、Ctrl + Shift + Enterを押して確定します。
- 最新バージョン(Microsoft 365以降)では、Enterを押すだけでOKです。
 
- 古いバージョン(Excel 2019以前)では、
注意点
- 動的なリンク
 TRANSPOSE関数を使うと、元のデータが変更されると、入れ替え後のデータも自動的に更新されます。
- 行列のサイズに注意
 入力先のセルが不足していると、#SPILL!エラーが表示されます。十分な範囲を確保してください。
コピー&ペーストで行列を入れ替える
TRANSPOSE関数を使わずに、簡単に行と列を入れ替える方法です。
手順
- データをコピー- 入れ替えたいデータを選択して、Ctrl + Cを押します。
 
- 入れ替えたいデータを選択して、
- 貼り付けオプションで「行列の入れ替え」を選択- 入力先のセルを右クリックし、「貼り付けオプション」→「行列の入れ替え」を選択します。
 
注意点
- この方法では元のデータとリンクされません。データを修正するときは、手動で更新する必要があります。
行列の入れ替えをVBAで自動化する
大量のデータを頻繁に入れ替える場合、VBAを使うと作業を効率化できます。
サンプルコード
以下のVBAコードを使うと、選択範囲の行と列を入れ替えた結果を指定したセルに出力できます。
Sub TransposeData()
Dim SourceRange As Range
 Dim TargetRange As Range
' 入れ替え元の範囲を選択
 Set SourceRange = Application.InputBox("行列を入れ替える範囲を選択してください", Type:=8)
' 入れ替え先の開始セルを選択
 Set TargetRange = Application.InputBox("入れ替え後のデータを開始するセルを選択してください", Type:=8).Cells(1, 1)
' 行列を入れ替えて貼り付け
 TargetRange.Resize(SourceRange.Columns.Count, SourceRange.Rows.Count).Value = _
 Application.WorksheetFunction.Transpose(SourceRange.Value)
MsgBox "行列の入れ替えが完了しました!"
End Sub
VBAの使い方
- VBAエディタを開く- Alt + F11でVBAエディタを起動します。
 
- 新しいモジュールを作成- 「挿入」→「モジュール」を選択します。
 
- コードを貼り付ける- 上記のコードをコピーして貼り付けます。
 
- マクロを実行- Alt + F8でマクロを選択し、「実行」をクリックします。
 
POWER QUERYを使って行列を入れ替える
ExcelのPower Queryを活用すると、大規模データの行列入れ替えが簡単に行えます。
手順
- Power Queryを起動- 「データ」タブ→「テーブルまたは範囲から」→Power Queryエディタが開きます。
 
- データを変換- Power Queryエディタで「変換」タブ→「列と行を入れ替え」を選択します。
 
- Excelに戻す- 「ホーム」タブ→「閉じて読み込む」でExcelに戻します。
 
メリット
- データの自動更新が可能。
- 大量のデータでも高速に処理。
よくあるトラブルと解決策
- #SPILL!エラー- 確保したセル範囲が不足している可能性があります。範囲を拡大してください。
 
- データが動的に更新されない- コピー&ペーストで行列を入れ替えた場合、元データとのリンクが切れます。動的更新が必要な場合はTRANSPOSE関数を使いましょう。
 
- 数式がコピーされない- 数式を含むデータを入れ替える場合は、値として貼り付けるか、関数を手動で修正してください。
 
まとめ
Excelで行と列を入れ替えるには、TRANSPOSE関数を使う方法、コピー&ペーストの手動操作、VBAの自動化など、さまざまな方法があります。作業内容やデータ量に応じて最適な方法を選びましょう。特に、データの動的更新が必要な場合は、TRANSPOSE関数やPower Queryが便利です。