Excelで縦の列を横の行に変更する6つの簡単な方法
Excelでは、縦方向に並んだデータ(列)を横方向(行)へ変更したい場面がよくあります。例えば、報告書やプレゼン資料のレイアウト調整、データベースの形式変換など、縦持ちデータを横持ちに切り替えるニーズは意外と多いものです。本記事では、Excelで縦の列を横の行に変更できる6つの方法を、初心者の方にもわかりやすく順を追って解説します。
サンプルデータについて
ここでは、複数の販売者(Seller)ごとの売上金額(Sales Amount)を記録したデータセットを使用します。この縦に並んだデータを、以下のように横方向の行へ入れ替えます(いわゆる「転置」という操作です)。

変換後のイメージは次の通りです。

方法1:「形式を選択して貼り付け」で行と列を入れ替える
最も手軽なのが、Excel標準機能の「形式を選択して貼り付け」を使う方法です。元の書式もそのまま引き継げるため、変換後に再度装飾を施す必要がないのが大きなメリットです。
手順:
- まず、横方向に変更したい範囲を選択します。ここではB4:C10を選択します。
- 選択範囲上で右クリックし、メニューから「コピー」を選びます。ショートカットキーのCtrl + Cでも同様です。

- 次に、貼り付け先となるセルを選択します。ここではセルB12を選びます。
- ホームタブの「貼り付け」アイコンをクリックし、ドロップダウンメニューから「形式を選択して貼り付け」を選択します。Ctrl + Alt + Vのショートカットでも開けます。

- ダイアログボックス内の「行/列の入れ替え(Transpose)」にチェックを入れ、OKをクリックします。

- これで、縦の列が横の行として貼り付けられます。

注意点:この方法は非常に簡単ですが、元の縦データを後から編集しても、貼り付けた横データは自動的に更新されません。動的な連動が必要な場合は、以降で紹介する関数を使った方法がおすすめです。
方法2:TRANSPOSE関数で縦列を横行に変換する
関数を使えば、元データの変更が横の行に自動的に反映されるという利点があります。ここではTRANSPOSE(転置)関数を使用します。ただし、関数による変換では元の書式は引き継がれないため、変換後に書式を設定し直す必要があります。
手順:
- まずセルB12を選択し、以下の数式を入力します。
=TRANSPOSE(B4:C10)

- 続いてCtrl + Shift + Enterを押します(配列数式として確定)。結果は下図のようになります。

注意点:変換された行には書式が適用されていないため、必要に応じて罫線や塗りつぶしなどを再設定してください。
方法3:数式を文字列として入力してから置換する裏ワザ
少し変わったテクニックとして、まず数式を文字列として入力しておき、後から等号(=)に一括置換する方法があります。大量のセルを効率的に処理したい場合に便利です。
手順:
- まずセルB12に「EdB4」、セルB13に「EdC4」と入力します。

ここでは、セルB12に「Seller(販売者)」、セルB13に「Sales Amount(売上金額)」を表示させたいと考えます。セルB4にはSellerの値が入っているためB12には「EdB4」、その右隣の売上金額(セルC4)を表示したいB13には「EdC4」と入力しています。「Ed」は仮の接頭辞で、後ほど「=」に置き換えます。
- セルB12とセルB13の両方を選択します。
- フィルハンドル(セル右下の小さな四角)をH列まで右方向へドラッグします。

- 次に、範囲B12:H13を選択した状態でCtrl + Hを押し、「検索と置換」ダイアログを開きます。
- 「検索する文字列」にEd、「置換後の文字列」に=を入力し、「すべて置換」をクリックします。

- 確認メッセージが表示されたらOKをクリックします。

- すると、下図のようにすべてのセルに数式が入り、縦データが横方向へ展開されます。

方法4:INDEX関数で縦列を横行に入れ替える
INDEX関数は、指定した行番号と列番号が交差する位置にあるセルの値を返す関数です。これにROW関数とCOLUMN関数を組み合わせることで、行列の入れ替えを実現できます。
手順:
- まずセルB12に以下の数式を入力します。
=INDEX($B$4:$C$10,COLUMN(A1),ROW(A1))

第1引数は変換元の範囲B4:C10です。COLUMN(A1)はセルA1の列番号「1」を、ROW(A1)はセルA1の行番号「1」を返します。つまりこの数式はINDEX($B$4:$C$10,1,1)となり、範囲内の最初の値である「Seller」がセルB12に表示されます。
- Enterを押したら、フィルハンドルを下方向へセルB13までドラッグします。

- セルB12とB13を選択し、今度はフィルハンドルを右方向へドラッグします。

- これで縦の列が横の行に変換されます。

- 最後に書式を整えれば完成です。

方法5:OFFSET関数で縦列を横行に切り替える
OFFSET関数は、基準となるセルから指定した行数・列数だけ離れた位置にあるセルの値を返す関数です。こちらもROW関数・COLUMN関数と組み合わせて使用します。
手順:
- まずセルB12に以下の数式を入力します。
=OFFSET($B$4,COLUMN(A1)-1,ROW(A1)-1)

ここではセルB4が基準位置となります。COLUMN(A1)-1とROW(A1)-1が、それぞれ基準からの列オフセットと行オフセットを表しています。
- Enterを押したら、フィルハンドルを下方向へドラッグします。

- セルB12とB13を選択し、フィルハンドルをH列まで右方向へドラッグします。

- これで縦の列が横の行として展開されます。

- 最後に書式を適用すれば、見た目も整った表になります。

方法6:INDIRECT関数で縦列を横行に転置する
最後に紹介するのはINDIRECT関数を使う方法です。INDIRECT関数は、文字列で指定したセル参照の値を返す関数で、COLUMN関数と組み合わせることで柔軟な転置が可能になります。
手順:
- まずセルC12に以下の数式を入力します。
=INDIRECT("B"&COLUMN()+1)

セルC12におけるCOLUMN()の戻り値は「3」なので、数式はINDIRECT(B4)と同じ意味になり、結果として「Seller」がセルC12に表示されます。
- Enterを押したら、隣のセルに以下の数式を入力します。
=INDIRECT("C"&COLUMN()+1)

- その後、両方のセルを選択し、フィルハンドルをI列まで右方向へドラッグします。

- これで、下図のように縦の列を横の行へ転置できます。

まとめ
本記事では、Excelで縦の列を横の行に変更する6つの方法を解説しました。
- 手軽さ重視なら:「形式を選択して貼り付け」(書式も保持される)
- 動的な更新が必要なら:TRANSPOSE・INDEX・OFFSET・INDIRECTなどの関数
- 大量データを効率処理したいなら:文字列入力+置換の裏ワザ
用途に応じて最適な方法を選べば、作業効率は大きく向上します。ぜひ実際のデータで試してみてください。ご不明点やご要望があれば、コメント欄でお気軽にお知らせください。
-
Excelでセルを分割する5つの簡単な方法【初心者向け完全ガイド】
Microsoft Excelでは、セルを複数に分割するためのさまざまなテクニックが用意されています。数式や標準ツール、さらにはPower Queryを使って、セルや列を2つ以上に分けることが可能です。この記事では、わかりやすい手順とともに、セルやテキストを分割するための複数の方法をご紹介します。 この記事で使用しているサンプルのExcelブックもダウンロードできますので、実際に操作しながら学習できます。 Excelでセルを分割する5つの簡単な方法 1. 「区切り位置」機能を使ってセルを分割する 以下の表には、「テキスト」列に氏名データが入力されています。ここでは、各氏名を「名」と「姓」
-
Excelで横方向のデータをフィルターする3つの方法【FILTER関数・転置・ユーザー設定のビュー】
この記事では、Excelで横方向に並んだデータをフィルター処理する3つの方法を解説します。縦方向のデータであれば、標準のフィルター機能やピボットテーブルなどを使えば簡単に絞り込めますが、横方向のデータを絞り込むには、少し工夫や別の機能の活用が必要です。 Excelで横方向のデータをフィルターする3つの方法 この記事では、以下のデータセットを使用します。8つの商品に関する売上データが含まれており、それぞれ「果物」「野菜」「魚」の3つのカテゴリに分類されています。このデータセットをカテゴリ別に絞り込むための3つの方法を順番に紹介していきます。 方法1:FILTER関数を使って横方向のデータをフィ