Excelでデータを扱う際、行と列を自動で入れ替わったら便利だと思うことありませんか?
手動でコピー&ペーストを使うのは面倒ですが、関数やVBAを活用すれば、データを自動で連続変換できます。
この記事では、Excel の行列入れ替えを自動で行う方法(関数・ショートカット・VBA)について解説します。
目次
関数を使って自動で列を入れ替える
Excelには、元データと連動して自動で列を変換する関数が用意されています。
✅TRANSPOSE関数を使う(動的に行列を置く)
「元データが変わったら、自動で連続変換したい!」という場合、TRANSPOSE
関数が便利です。
📌 手順
- 列を見つけたいデータ範囲を選択
- 貼り付け先のセルを選択
- 以下の数字を入力してください=TRANSPOSE(A1:C3)
- Excel 365/2019以外の場合は、「Ctrl + Shift + Enter」で確定
- 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 実行方法
- 「Alt + F11」でVBAエディタを開く
- 「挿入」→「モジュール」
- 上記のコードを貼り付け
- 「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 実行方法
- ない範囲を選択
- 「Alt + F11」でVBAエディタを開く
- 「挿入」→「モジュール」
- 上記のコードを貼り付け
- 「Alt + F8」で「AutoTransposeSelection」を実行
✅結果:選択したデータが、隣の列に自動で並びます!
ショートカットキーを活用した自動列変換
手作業でも一連を続けたい場合は、ショートカットキーを活用しましょう。
✅ 「列を入れ替える」
以下のショートカットキーを使うと、行と列を簡単に置き換えられます。
📌 手順
- 代わりたいデータを選択
Ctrl + C
(コピー)- 貼り付け先のセルを選択
Ctrl + Alt + V
(形式を選択して貼り付け)E
(列を入れ替える) →Enter
✅結果:行と列が入れ替わって貼り付けられる!
まとめ
Excelで列を自動で切り替える方法は、状況に応じて最適な手法を選ぶと効率的です。
📌 並び替えを自動化する方法まとめ
方法 | おすすめのシーン |
---|---|
TRANSPOSE 関数を使う | 元データが変更されたら自動で並び替え |
INDEX 関数を使う | 特定の条件で変わりたい |
SORT 関数を使う | 並び替えも同時に行いたい(Excel 365以降) |
VBAによる自動変換 | 大量のデータを瞬時に列入れ替え |
ショートカットを活用 | 手動で逐次変換 |
📌どのような方法を使えばいいですか?
✔データが更新されたら自動で代わり →TRANSPOSE
関数
✔数式で動的に変わる →INDEX
関数 orSORT
関数
✔マクロで一瞬で処理 → VBAを活用
✔手作業でも効率化 → 「Ctrl + Alt + V → E」