エクセルで作成した表を見直したとき、「行と列が逆だったら見やすかったのに…」と感じたことはないでしょうか。
一から表を作り直すのは大変ですが、エクセルには行と列を一瞬で入れ替えられる「転置」機能が備わっています。
転置を使えば、横並びのデータを縦並びに変換したり、縦長のリストを横方向に展開したりといった作業が簡単に行えます。
エクセルの転置機能を活用する方法には、「貼り付けオプションを使う方法」と「TRANSPOSE関数を使う方法」の2種類があり、それぞれ使い方と特性が異なります。
本記事では、それぞれの転置方法の特徴・手順・注意点を詳しく解説し、業務で転置機能を使いこなすためのポイントもご紹介していきます。
エクセルの転置機能で行と列を入れ替える2つの方法とその違い
それではまず、エクセルで転置を行う代表的な2つの方法の概要と、それぞれの使い分けについて解説していきます。
転置とは、行方向(横)のデータと列方向(縦)のデータを入れ替える操作のことです。
エクセルの転置機能:2つの方法の比較
方法1「形式を選択して貼り付け」の転置オプション
・元のデータをコピーして、別のセルに転置した状態で値として貼り付ける
・元データとの連動なし(静的な転置)
・書式も一緒に転置できる
方法2「TRANSPOSE関数」を使った転置
・数式として転置を行うため、元データの変更がリアルタイムで反映される
・元データとの連動あり(動的な転置)
・配列数式として入力する必要がある(Excel 2019以降はスピル機能で簡略化)
転置が必要になる典型的なシーン
転置が必要になるのは、データの向きが用途に合っていないときです。
たとえば、年度別の売上データを横方向に並べたが、グラフ作成のために縦方向に変換したい場合があります。
また、アンケートの集計結果を縦長のリストから横並びの比較表に変換したいケースも多いでしょう。
さらに、他のシステムからエクスポートしたデータが自社の管理フォーマットとは行列の向きが逆になっているケースでも転置は役立ちます。
転置する前に確認しておくべきこと
転置を行う前に、変換後のデータがどれだけのセル範囲を占めるかを確認しておきましょう。
元のデータが5行×10列であれば、転置後は10行×5列になります。
転置先のセル範囲に既存のデータが入っている場合は、上書きされてしまう可能性があるため注意が必要です。
また、結合セルを含む範囲は転置できない場合があります。
転置前に結合セルを解除しておくと、スムーズに作業を進められるでしょう。
転置後のデータ整合性を確保するポイント
「形式を選択して貼り付け」による転置はあくまでも値のコピーであるため、元データを変更しても転記先には反映されません。
元データを後から修正する可能性がある場合は、TRANSPOSE関数を使った動的な転置を選ぶと管理がラクになります。
ただし、TRANSPOSE関数は元データの削除や行列数の変更があると参照エラーが発生することがある点も把握しておきましょう。
貼り付けオプションの転置を使って行と列を入れ替える方法
続いては、最もシンプルで直感的な転置方法である「形式を選択して貼り付け」の転置オプションについて確認していきます。
この方法はExcelのほぼすべてのバージョンで使用でき、プログラミングの知識も不要です。
形式を選択して貼り付けで転置する手順
貼り付けオプションを使った転置の手順は非常にシンプルです。
貼り付けオプションで転置する手順
1. 転置したいセル範囲を選択してコピー(Ctrl+C)
2. 転置後のデータを貼り付ける先のセル(左上隅となるセル)をクリックして選択
3. 右クリック→「形式を選択して貼り付け」を選択(またはCtrl+Alt+V)
4. 「形式を選択して貼り付け」ダイアログの右下にある「行と列を入れ替える」チェックボックスをオンにする
5. 貼り付けの種類(値のみ・すべて・書式など)を選択してOKをクリック
「すべて」を選択して転置すると、値だけでなくセルの書式(フォント・背景色・罫線など)も一緒に転置されます。
数式を含む場合は「値のみ」にすることで、数式ではなく計算結果だけを転置できるでしょう。
右クリックの貼り付けプレビューから転置する簡単な方法
Excel 2013以降では、貼り付け先を右クリックしたときに表示される「貼り付けオプション」アイコンから、転置プレビューを確認しながら貼り付けできます。
右クリックメニューの「貼り付けオプション」欄にある「転置」アイコン(行と列が入れ替わったような形のアイコン)をクリックするだけです。
このプレビュー機能を使えば、貼り付け後のイメージを確認しながら操作できるため、ミスを防ぎやすくなります。
数式を含むデータを転置する際の注意点
数式を含むセル範囲を転置すると、数式内のセル参照が転置後の位置に合わせて自動調整されます。
ただし、絶対参照($A$1など)を使っている場合は参照先が変わらないため、期待通りの結果にならないことがあります。
転置後に数式の参照先が正しいかを必ず確認し、必要に応じて参照を修正しましょう。
また、元データと転置先が同じシートの隣接する範囲に重なる場合は、転置先に十分なスペースを確保してから貼り付ける必要があります。
TRANSPOSE関数で行と列を動的に入れ替える方法
続いては、TRANSPOSE関数を使って元データの変更をリアルタイムに反映する動的な転置の方法を確認していきます。
TRANSPOSE関数は、元のデータが更新されるたびに転置結果も自動的に更新されるため、管理の手間が大幅に減ります。
TRANSPOSE関数の基本的な使い方(Excel 365・2019以降)
Microsoft 365やExcel 2019以降では、TRANSPOSE関数はスピル機能によって非常にシンプルに使えます。
TRANSPOSE関数の基本書式
=TRANSPOSE(配列)
例:A1:E3(3行5列)のデータをG1を起点に転置する場合
G1セルに以下の数式を入力するだけでOK
=TRANSPOSE(A1:E3)
→ G1:I5(5行3列)に自動的に転置された結果が表示される(スピル)
スピル機能により、数式を入力したセルから自動的に必要な範囲に結果が広がるため、従来のような配列数式の入力(Ctrl+Shift+Enter)が不要になっています。
Excel 2016以前でのTRANSPOSE関数の入力方法(配列数式)
Excel 2016以前のバージョンでは、TRANSPOSE関数は配列数式として入力する必要があります。
Excel 2016以前でのTRANSPOSE関数の入力手順
1. 転置結果を表示させたいセル範囲をあらかじめ選択する
(元データが3行5列なら、転置先は5行3列のセル範囲を選択)
2. 選択した状態で数式バーに =TRANSPOSE(A1:E3) と入力
3. Enterキーではなく Ctrl+Shift+Enter で確定する
→ 数式が {=TRANSPOSE(A1:E3)} と波括弧で囲まれた配列数式として入力される
配列数式の場合、転置後のセル範囲を一部だけ変更・削除しようとするとエラーになります。
修正する場合は転置結果の全範囲を選択してから操作する必要があるため注意しましょう。
TRANSPOSE関数と他の関数を組み合わせた活用例
TRANSPOSE関数は他の関数と組み合わせることで、さらに便利な使い方ができます。
たとえば、SORT関数とTRANSPOSEを組み合わせることで、転置しながら同時に並び替えも行えます。
| 方法 | 動的更新 | 書式の維持 | 対応バージョン | 難易度 |
|---|---|---|---|---|
| 貼り付けオプション(転置) | × | ○ | 全バージョン | 初級 |
| TRANSPOSE関数(スピル) | ○ | × | 365・2019以降 | 初中級 |
| TRANSPOSE関数(配列数式) | ○ | × | 全バージョン | 中級 |
転置機能を使いこなすための応用テクニック
続いては、転置機能をさらに実務で活かすための応用テクニックを確認していきます。
基本的な転置操作をマスターしたら、ここで紹介するテクニックを組み合わせることで作業効率がさらに上がるでしょう。
転置と同時に書式を整える方法
貼り付けオプションの転置では「すべて」を選択することで書式も転置できますが、元の表の書式がそのまま転置されるため、行と列のサイズや色が転置後の見た目と合わないことがあります。
転置後は列幅や行の高さを「ホーム」タブ→「書式」→「列幅の自動調整」などで整えると、見やすい表に仕上がります。
また、転置後の表に条件付き書式を新たに設定することで、転置した数値データを視覚的にわかりやすく表示することも可能です。
大きなデータセットを効率よく転置するコツ
行列数が多い大きなデータセットを転置する場合、TRANSPOSE関数よりも「値の貼り付け+転置オプション」の方が動作が軽快なことがあります。
特に数万行を超えるような大規模データでは、TRANSPOSE関数を使うと再計算のたびに処理が重くなる場合があります。
大規模データの転置は一度きりの変換作業であることが多いため、その場合は貼り付けオプションによる静的な転置が適しているでしょう。
VBAマクロで転置処理を自動化する方法
繰り返し転置作業が発生する場合は、VBAマクロで転置処理を自動化するのが効率的です。
VBAで転置して貼り付けるコード例
Sub 転置貼り付け()
Range(“A1:E3”).Copy
Range(“G1”).PasteSpecial Paste:=xlPasteAll, Transpose:=True
Application.CutCopyMode = False
End Sub
このVBAコードはA1:E3の範囲をコピーして、G1を起点に転置して貼り付けるものです。
Transposeオプションをtrueにするだけで転置が実現できるシンプルなコードです。
まとめ
本記事では、エクセルの転置機能で行と列を入れ替える方法として、貼り付けオプションの転置とTRANSPOSE関数の2種類の方法を詳しく解説してきました。
元データとの連動が不要な一回限りの転置には「形式を選択して貼り付け」の転置オプションが手軽で確実です。
元データが変更されるたびに転置結果も更新したい場合は、TRANSPOSE関数を使った動的な転置が有効でしょう。
Excel 365や2019以降のスピル機能により、TRANSPOSE関数の使い方は以前に比べて格段にシンプルになっています。
転置機能は一見地味な機能に思えますが、使いこなすことで表の再作成にかかる時間を大幅に削減できる強力なツールです。
ご自身の業務で行列の向きを変えたい表が出てきたときには、ぜひ今回紹介した方法を活用してみてください。