【Excel】エクセルで横を縦にコピー・貼り付け(行列の文字を入れ替えで入力・関数・条件抽出) | モアイライフ(more E life)
エクセル初心者向けの関数note販売中♪

~実務で即使えるサンプル付きで徹底解説~

→エクセルで人生が大変化する第一歩♪

【Excel】エクセルで横を縦にコピー・貼り付け(行列の文字を入れ替えで入力・関数・条件抽出)

Excelのスキルアップ
本サイトでは記事内に広告が含まれています

エクセルで横に並んだデータを縦に並べ替えたいとき、「行と列を入れ替えてコピーする方法がわからない」「TRANSPOSE関数を使いたいが使い方がわからない」「大量のデータを効率よく行列変換したい」と困った経験はありませんか。

この記事では【Excel】エクセルで横を縦にコピーする方法(行列を入れ替えてコピー・貼り付け)について解説していきます。

ポイントは・行列を入れ替えて貼り付けオプションで横を縦に変換する方法
・TRANSPOSE関数を使って行列を入れ替える方法
・大量データを効率よく行列変換するVBAの活用方法です。

それでは詳しく見ていきましょう。

 

 

スポンサーリンク

エクセルで横を縦にコピーする方法1【貼り付けオプションで行列を入れ替える】

貼り付けオプションの「行列を入れ替える」機能を使って横を縦に変換する方法を確認しましょう。

変換したい横方向のデータ範囲を選択してCtrl+Cでコピーします。貼り付け先のセルを選択してCtrl+Alt+Vで「形式を選択して貼り付け」ダイアログを開きます。ダイアログ下部にある「行列を入れ替える」のチェックボックスにチェックを入れて「OK」をクリックします。


この操作により、横方向(行方向)に並んでいたデータが縦方向(列方向)に変換されて貼り付けられます。たとえばA1からE1の5列に横並びのデータがある場合、行列入れ替えで貼り付けると貼り付け先のA1からA5の5行に縦並びで展開されます。

「行列を入れ替える」と同時に「値」を選択して貼り付けることで、数式は引き継がずに計算結果の値だけを行列入れ替えで貼り付けることができます。参照先が変わることで数式がエラーになる場合はこの方法で対処しましょう。

リボンのショートカットではAlt→H→V→Eの順にキーを押すと行列を入れ替えた貼り付けが実行されます。

【操作のポイント】
Ctrl+C→Ctrl+Alt+V→「行列を入れ替える」にチェック→OKで横を縦に変換して貼り付け。値と組み合わせることで数式のエラーを防ぎながら変換できます。

 

 

エクセルで横を縦にコピーする方法2【TRANSPOSE関数を使う】

TRANSPOSE関数を使って横のデータを縦に変換する方法を確認しましょう。

TRANSPOSE関数は指定した範囲の行と列を入れ替えた結果を返す関数です。数式の構造は以下の通りです。

=TRANSPOSE(配列)

たとえばA1からE1の横一行のデータをG1からG5に縦に変換して表示したい場合は、G1セルに以下のように入力します。

=TRANSPOSE(A1:E1)


Microsoft 365およびExcel 2021以降ではTRANSPOSE関数がスピル対応のため、G1に数式を入力するだけで自動的にG1からG5に結果が展開されます。

Excel 2019以前では配列数式として入力する必要があります。変換後のデータが入る範囲(G1:G5)を先に選択してから数式を入力し、Ctrl+Shift+Enterで確定します。

TRANSPOSE関数はコピー元のデータと動的にリンクするため、元のデータが変更されると自動的に変換後のデータも更新されます。元データと連動させたい場合に特に便利な方法です。

【操作のポイント】
=TRANSPOSE(A1:E1)で横データを縦に変換。Microsoft 365・Excel 2021以降はスピルで自動展開。Excel 2019以前は変換先の範囲を選択してからCtrl+Shift+Enterで配列数式として入力します。

 

 

エクセルで表全体の行列を入れ替えてコピーする方法

1行だけでなく表全体の行と列を入れ替えてコピーする方法を確認しましょう。

以下のような売上データの表があるとします。1行目がヘッダーで2行目以降にデータが入力されているとします。

 

商品名 1月 2月 3月
商品A 100 120 130
商品B 200 210 220
商品C 150 160 170

この表全体(A1:D4)を行列入れ替えして貼り付けると、行と列が入れ替わり商品名が横方向・月が縦方向に並び替わった表になります。

表全体を選択してCtrl+Cでコピーし、貼り付け先の左上のセルを選択してCtrl+Alt+Vで「形式を選択して貼り付け」ダイアログを開きます。「行列を入れ替える」にチェックを入れて「OK」をクリックします。

表全体を行列入れ替えして貼り付ける際は、貼り付け先がコピー元の範囲と重ならない場所を選択することが重要です。範囲が重なるとエラーが発生する場合があります。

貼り付け後に元の表と行列入れ替えした表が両方残る場合は、不要な方を削除して整理しましょう。

【操作のポイント】
表全体を選択してCtrl+C→貼り付け先はコピー元と重ならない位置を選択→Ctrl+Alt+V→行列を入れ替えるにチェック→OKで表全体の行列を入れ替えて貼り付けできます。

 

 

エクセルでVBAを使って行列を入れ替えてコピーする方法

大量のデータや複数のシートにわたって行列を入れ替えたい場合はVBAを活用する方法が効率的です。

以下はSheet1の指定範囲の行列を入れ替えてSheet2に貼り付けるサンプルコードです。

Sub 行列入れ替えコピー()
    Dim srcRange As Range
    Dim dstRange As Range
    
    Set srcRange = Sheets("Sheet1").Range("A1:D4")
    Set dstRange = Sheets("Sheet2").Range("A1")
    
    srcRange.Copy
    dstRange.PasteSpecial Paste:=xlPasteAll, Transpose:=True
    
    Application.CutCopyMode = False
    MsgBox "行列入れ替えコピーが完了しました。"
End Sub


このコードはSheet1のA1からD4の範囲をコピーして、Sheet2のA1を起点に行列を入れ替えて貼り付けるものです。PasteSpecialのTransposeパラメーターをTrueに設定することで行列入れ替えを指定します。

       

値のみを行列入れ替えして貼り付けたい場合はPaste:=xlPasteAllをPaste:=xlPasteValuesに変更します。

VBAを使うことで複数のシートや大量のデータに対して行列入れ替えを自動化できます。定期的に行列入れ替え作業が発生する場合は、マクロとして登録しておくと大幅な時間短縮につながります。

【操作のポイント】
VBAのPasteSpecialでTranspose:=Trueを指定することで行列入れ替えを自動化。値のみの場合はPaste:=xlPasteValuesに変更。定期的な作業はマクロとして登録しておくと効率的です。

 

 

エクセルで行列入れ替えに関するよくある問題と対処法

行列入れ替えの操作でよく発生する問題と対処法を確認しましょう。

貼り付け先がコピー元の範囲と重なっている場合は「この操作を行うには、コピーエリアと貼り付け先が重なってはいけません」というエラーが表示されます。コピー元の範囲と重ならない別の位置に貼り付け先を変更してから操作しましょう。

TRANSPOSE関数を使った場合に元データを削除するとエラーが発生します。TRANSPOSE関数は元データへの参照を持つため、元データが削除されると#REF!エラーになります。元データを削除したい場合はTRANSPOSEの結果を「値のみ貼り付け」で別のセルに固定してから元データを削除しましょう。

結合セルが含まれる範囲を行列入れ替えしようとするとエラーが発生します。行列入れ替えを行う前に結合セルをすべて解除してからコピーすることで問題を回避できます。

行列入れ替え後に書式が意図した通りにならない場合は、貼り付け後に「書式のコピー」ボタンを使って別途書式を適用し直す方法で対処しましょう。

【操作のポイント】
範囲が重なるエラーは貼り付け先を変更して対処。TRANSPOSE関数のエラーは値のみ貼り付けで固定してから元データを削除。結合セルは事前に解除してから行列入れ替えを実行しましょう。

 

まとめ エクセルで横と横の文字を入れ替え・変換(行列・関数・条件抽出)

エクセルで横を縦にコピーする方法をまとめると

・貼り付けオプションで変換:Ctrl+C→Ctrl+Alt+V→「行列を入れ替える」にチェック→OKで横を縦に変換して貼り付け
・TRANSPOSE関数で変換:=TRANSPOSE(範囲)で元データと連動した動的な行列変換、Microsoft 365・2021以降はスピルで自動展開
・表全体の行列入れ替え:コピー元と重ならない位置に貼り付け先を指定してから行列入れ替えで貼り付け
・VBAによる自動化:PasteSpecialのTranspose:=Trueで行列入れ替えを自動化、定期作業はマクロとして登録
・よくある問題:範囲の重なりエラーは貼り付け先を変更・TRANSPOSE関数は値のみ貼り付けで固定・結合セルは事前に解除

行列の入れ替えは貼り付けオプションとTRANSPOSE関数の2つの方法を状況に応じて使い分けることが重要です。元データと連動させたい場合はTRANSPOSE関数、値として固定したい場合は貼り付けオプションの行列入れ替えが適しています。

大量データや繰り返し作業が必要な場合はVBAによる自動化を活用することで、作業時間を大幅に短縮することができます。それぞれの方法の特徴を理解して、目的に合った方法を選んでいきましょう。

コメント

スポンサーリンク
タイトルとURLをコピーしました