Excel一覧 Excel操作・関数 データ操作 行列の入れ替え

【Excel】行列の入れ替えを自動で行う方法

Excelでデータを扱う際、行と列を自動で入れ替わったら便利だと思うことありませんか?
手動でコピー&ペーストを使うのは面倒ですが、関数やVBAを活用すれば、データを自動で連続変換できます。

この記事では、Excel の行列入れ替えを自動で行う方法(関数・ショートカット・VBA)について解説します

関数を使って自動で列を入れ替える

Excelには、元データと連動して自動で列を変換する関数が用意されています。

TRANSPOSE関数を使う(動的に行列を置く)

「元データが変わったら、自動で連続変換したい!」という場合、TRANSPOSE関数が便利です。

📌 手順

  1. 列を見つけたいデータ範囲を選択
  2. 貼り付け先のセルを選択
  3. 以下の数字を入力してください
    =TRANSPOSE(A1:C3)
  4. Excel 365/2019以外の場合は、「Ctrl + Shift + Enter」で確定
  5. Excel 365 以降では「Enter」のみでOK

結果:元データが変更されると、自動で行と列が入れ替わる!

注意

  • TRANSPOSE関数は「配列数式」ですので、貼り付け先の範囲が正しくないとエラーになります。
  • 数式ですので、「コピー→値のみ貼り付け」で固定することも可能です。

INDEX関数で動的に列を入れ替える

「特定の条件に従って列を変換したい」の場合は、INDEX関数を使うと便利です。

📌 例:「A1 :C3 」のデータを動的に置き換える

=INDEX(A$1:C$3, COLUMN(A1), ROW(A1))

結果:元データを自動的に列変換!

SORT関数(Excel 365以降)で自動並べ替え

Excel 365 以降では、SORT関数を使うことで、列を挟みながら並び替えもできます。

📌 例:「A1 :D10 」のデータを2行目の値で昇順ソート

=SORT(A1:D10, 2, 1, TRUE)

結果:2行目の値を基準に行列をしながら並び替え!

参考:【エクセル】表を五十音順、数値の昇順、降順の並び替え方法

VBAを使って列を自動変換する

関数ではなく、マクロ(VBA)を使ってワンクリックで並び替えたい場合は、以下のコードを使用します。

✅VBAで自動で列を入れ替える

Sub TransposeData()

Dim rng As Range, newRange As Range
Dim ws As Worksheet

Set ws = ActiveSheet
Set rng = ws.Range("A1:C3") ' 入れ替えたい範囲
Set newRange = ws.Range("E1") ' 貼り付け先

newRange.Resize(rng.Columns.Count, rng.Rows.Count).Value = Application.WorksheetFunction.Transpose(rng.Value)

MsgBox "行列の入れ替えが完了しました!", vbInformation

End Sub

📌 VBA 実行方法

  1. 「Alt + F11」でVBAエディタを開く
  2. 「挿入」→「モジュール」
  3. 上記のコードを貼り付け
  4. 「Alt + F8」で「TransposeData」を実行

結果:「A1 :C3 」のデータが「E1」から連続変換して貼り付けられる!

✅選択範囲を自動で並び替える

「範囲を手動で指定せずに、自動で変換したい!」という場合は、以下のコードを使うと便利です。

Sub AutoTransposeSelection()

Dim rng As Range, newRange As Range
Dim ws As Worksheet

Set ws = ActiveSheet
Set rng = Selection ' 選択範囲を取得
Set newRange = ws.Cells(rng.Rows(1).Row, rng.Columns(1).Column + rng.Rows.Count + 2) ' 貼り付け位置

newRange.Resize(rng.Columns.Count, rng.Rows.Count).Value = Application.WorksheetFunction.Transpose(rng.Value)

MsgBox "選択範囲の行列入れ替えが完了しました!", vbInformation

End Sub

📌 VBA 実行方法

  1. ない範囲を選択
  2. 「Alt + F11」でVBAエディタを開く
  3. 「挿入」→「モジュール」
  4. 上記のコードを貼り付け
  5. 「Alt + F8」で「AutoTransposeSelection」を実行

結果:選択したデータが、隣の列に自動で並びます!

ショートカットキーを活用した自動列変換

手作業でも一連を続けたい場合は、ショートカットキーを活用しましょう。

✅ 「列を入れ替える」

以下のショートカットキーを使うと、行と列を簡単に置き換えられます。

📌 手順

  1. 代わりたいデータを選択
  2. Ctrl + C(コピー)
  3. 貼り付け先のセルを選択
  4. Ctrl + Alt + V(形式を選択して貼り付け)
  5. E(列を入れ替える) →Enter

結果:行と列が入れ替わって貼り付けられる!


まとめ

Excelで列を自動で切り替える方法は、状況に応じて最適な手法を選ぶと効率的です。

📌 並び替えを自動化する方法まとめ
方法おすすめのシーン
TRANSPOSE関数を使う元データが変更されたら自動で並び替え
INDEX関数を使う特定の条件で変わりたい
SORT関数を使う並び替えも同時に行いたい(Excel 365以降)
VBAによる自動変換大量のデータを瞬時に列入れ替え
ショートカットを活用手動で逐次変換
📌どのような方法を使えばいいですか?

データが更新されたら自動で代わり →TRANSPOSE関数
数式で動的に変わる →INDEX関数 orSORT関数
マクロで一瞬で処理 → VBAを活用
手作業でも効率化 → 「Ctrl + Alt + V → E」

-Excel一覧, Excel操作・関数, データ操作, 行列の入れ替え