メインコンテンツへスキップ

Excelでデータを転置する5つの方法(ステップバイステップガイド)

Author: Amanda Li Last Modified: 2025-05-23

データの転置とは、行を列に変換したり、その逆を行ったりして、配列の向きを変更することを意味します。このチュートリアルでは、配列の向きを切り替えて目的の結果を得るための5つの異なる方法をご紹介します。


ビデオ: Excelでデータを転置する


特殊貼り付けで列を行に切り替える

注意: データがExcelテーブル内にある場合、「貼り付け転置」オプションは利用できません。まず、テーブルを範囲に変換する必要があります。これを行うには、テーブルを右クリックし、コンテキストメニューから「テーブル」>「範囲に変換」を選択してください。

ステップ1: 転置する範囲をコピーする

行と列を切り替えたいセルの範囲を選択し、「Ctrl」+「C」を押して範囲をコピーします。

Select and copy the range of cells where you want to switch rows and columns

ステップ2: 貼り付け転置オプションを選択する

宛先範囲の最初のセルを右クリックし、右クリックメニューの(「貼り付けオプション」の下にある)「転置」アイコンをクリックします。

Right-click on the first cell of the destination range, and click the Transpose icon from the right-clicking menu

結果

おっと!範囲がすぐに転置されました!

The range is transposed

注意: 転置されたデータは静的であり、元のデータセットとは独立しています。元のデータに変更を加えた場合、その変更は転置されたデータには反映されません。転置されたセルを元のセルにリンクするには、次のセクションに進んでください。

(AD) Kutoolsで表の次元を簡単に転置

Excelでクロス表(二次元表)をフラットリスト(一次元リスト)に変換したり、その逆を行ったりするのは、いつも非常に時間がかかり、労力が必要です。しかし、Kutools for Excelがインストールされている場合、その「テーブルの次元を変換」ツールが、迅速かつ簡単に変換を支援します。

Kutools for Excel's Transpose Table Dimensions tool

"Kutools for Excel" - 300以上の便利な機能を含み、作業を大幅に簡素化します。今すぐ30日間の全機能無料トライアルを取得してください!


データを転置し、ソースにリンクする

範囲の向きを動的に切り替え(列を行に、またはその逆)、切り替えられた結果を元のデータセットに接続するには、以下のいずれかの方法を使用できます:


TRANSPOSE関数を使用して行を列に変更する

"TRANSPOSE"関数を使って行を列に、またはその逆に変換するには、以下の手順を実行してください。

ステップ1: 元のセルセットと同じ数の空白セルを選択するが、方向は異なる

ヒント: Excel 365またはExcel 2021を使用している場合は、このステップをスキップしてください。

例えば、元の表がA1:C4の範囲にある場合、それは4行3列の表であることを意味します。したがって、転置された表は3行4列になります。つまり、3行4列分の空白セルを選択する必要があります。

ステップ2: TRANSPOSE数式を入力する

数式バーに以下の数式を入力し、「Ctrl」+「Shift」+「Enter」を押して結果を得ます。

ヒント: Excel 365またはExcel 2021ユーザーの場合は、「Enter」を押してください。

=TRANSPOSE(A1:C4)
注意:
  • A1:C4を実際に転置したい元の範囲に変更する必要があります。
  • 元の範囲に空のセルがある場合、"TRANSPOSE"関数は空のセルを0(ゼロ)に変換します。転置中にゼロの結果を排除し、空白セルを維持するには、"IF"関数を利用することが必要です:
  • =TRANSPOSE(IF(A1:C4="","",A1:C4))

結果

行が列に変わり、列が行に変換されました。

Table is transposed by using the TRANSPOSE function

注意: Excel 365またはExcel 2021を使用している場合、「Enter」キーを押すと、結果は必要なだけの行や列に自動的に展開されます。数式を適用する前に展開範囲が空であることを確認してください。そうでない場合、#SPILLエラーが返されます。

INDIRECT、ADDRESS、COLUMN、ROW関数を使用してデータを回転させる

上記の数式は非常に理解しやすく使用も簡単ですが、欠点として、回転した表内のどのセルも編集または削除することができません。そこで、ここでは「INDIRECT」「ADDRESS」「COLUMN」「ROW」関数を使った数式を紹介します。例えば、元の表がA1:C4の範囲にある場合、列を行に変換し、回転したデータをソースデータセットに接続するには、以下の手順に従ってください。

ステップ1: 数式を入力する

宛先範囲の左上端のセル(今回の例ではA6)に以下の数式を入力し、「Enter」を押します:

=INDIRECT(ADDRESS(COLUMN(A1)-COLUMN($A$1)+ROW($A$1),ROW(A1)-ROW($A$1)+COLUMN($A$1)))

The formula is entered in the top-left-most cell of the destination range

注意:
  • A1を実際に転置する元の範囲の左上端のセルに変更し、ドル記号はそのままにしてください。列文字と行番号の前のドル記号($)は絶対参照を示しており、数式を他のセルに移動またはコピーしても列文字と行番号が変更されないようにします。
  • 元の範囲に空のセルがある場合、数式は空のセルを0(ゼロ)に変換します。転置中にゼロの結果を排除し、空白セルを維持するには、「IF」関数を利用することが必要です:
  • =IF(INDIRECT(ADDRESS(COLUMN(A1)-COLUMN($A$1)+ROW($A$1),ROW(A1)-ROW($A$1)+COLUMN($A$1)))=0,"",INDIRECT(ADDRESS(COLUMN(A1)-COLUMN($A$1)+ROW($A$1),ROW(A1)-ROW($A$1)+COLUMN($A$1))))

ステップ2: 数式を右および下のセルにコピーする

数式セルを選択し、そのフィルハンドル(セルの右下隅にある小さな緑色の四角)をドラッグして、必要な行数と列数だけ下方向および右方向にコピーします。

結果

列と行が即座に入れ替わりました。

The columns and rows are switched right away

注意: データの元の書式は転置された範囲には保存されません。必要に応じて、セルを手動で書式設定できます。

特殊貼り付けと検索&置換で列を行に変換する

特殊貼り付け方法にさらにいくつかのステップを追加し、検索と置換機能を使うことで、データを転置しながらソースセルを転置されたセルにリンクすることができます。

ステップ1: 転置する範囲をコピーする

転置したいセルの範囲を選択し、「Ctrl」+「C」を押して範囲をコピーします。

Select and copy the range of cells to transpose

ステップ2: 貼り付けリンクオプションを適用する

  1. 空白のセルを右クリックし、「特殊貼り付け」をクリックします。

    Right-click on a blank cell, and then click Paste Special

  2. 「貼り付けリンク」ボタンをクリックします。

    Click on Paste Link

以下のように結果が表示されます:

The links to the copied cells are pasted

 ステップ3: 貼り付けリンク結果から等号(=)を検索して置換する

  1. 結果範囲(A6:C9)を選択し、「Ctrl」+「H」を押し、検索と置換ダイアログで「=」を「@EO」(または選択範囲に存在しない任意の文字)に置き換えます。

    Replace = with @EO in the Find and Replace dialog

  2. 「すべて置換」をクリックし、ダイアログを閉じます。以下はデータがどのように見えるかを示しています。

    Replacement result

ステップ4: 置換された貼り付けリンク結果を転置する

範囲(A6:C9)を選択し、「Ctrl」+「C」を押してコピーします。空白のセル(ここではA11を選択しました)を右クリックし、貼り付けオプションから「転置」アイコンを選択して転置結果を貼り付けます。

Right-click on a blank cell (here I selected A11) and select the Transpose icon from Paste Options

ステップ5: 等号(=)を取り戻して転置結果を元のデータにリンクする

  1. 転置結果データA11:D13を選択したままにし、「Ctrl」+「H」を押し、「@EO」を「=」に置き換えます(ステップ3の逆操作)。

    Replacement result

  2. 「すべて置換」をクリックし、ダイアログを閉じます。

結果

データが転置され、元のセルにリンクされました。

注意: データの元の書式は失われています。必要に応じて手動で復元できます。処理後、範囲A6:C9を自由に削除してください。

Power Queryでデータを転置し、ソースにリンクする

Power Queryは強力なデータ自動化ツールで、Excelでデータを簡単に転置することができます。以下の手順に従うことで作業を完了できます:

ステップ1: 転置する範囲を選択し、Power Queryエディターを開く

転置するデータの範囲を選択します。そして、「データ」タブの「取得と変換データ」グループで、「表/範囲から」をクリックします。

From Table/Range button on the ribbon

注意:
  • 選択したデータ範囲がテーブルでない場合、「テーブルの作成」ダイアログボックスがポップアップします。「OK」をクリックしてテーブルを作成します。
  • Excel 2013または2010を使用していて、「データ」タブに「表/範囲から」が見つからない場合は、「Microsoft Power Query for Excelページ」からダウンロードしてインストールする必要があります。インストール後、「Power Query」タブに移動し、「Excelデータ」グループで「表から」をクリックします。

ステップ2: Power Queryで列を行に変換する

  1. 「変換」タブに移動します。「最初の行をヘッダーとして使用」ドロップダウンメニューで、「ヘッダーを最初の行として使用」を選択します。

    Go to the Transform tab. In the Use First Row as Headers drop-down menu, select Use Headers as First Row

  2. 「転置」をクリックします。

    Click on Transpose

ステップ3: 転置されたデータをシートに保存する

「ファイル」タブで、「閉じて読み込む」をクリックして「Power Editor」ウィンドウを閉じ、新しいワークシートを作成して転置されたデータを読み込みます。

Click Close & Load

結果

転置されたデータが新しく作成されたワークシートに表として変換されました。

The transposed data is converted to a table in a newly created worksheet

注意:
  • 上記のように、最初の行に追加の列ヘッダーが生成されます。ヘッダーの下の最初の行を列ヘッダーに昇格させるには、データ内のセルを選択し、「クエリ」>「編集」をクリックします。その後、「変換」>「最初の行をヘッダーとして使用」を選択します。最後に、「ホーム」>「閉じて読み込む」を選択します。
  • 元のデータセットに変更があった場合、「クエリと接続」ペイン内のテーブルの横にある「更新」アイコンをクリックするか、「クエリ」タブの「更新」ボタンをクリックすることで、上記の転置データを変更内容で更新できます。

(AD) Kutoolsで数クリックで範囲を変換

Kutools for Excelの「範囲の変換」ユーティリティは、垂直な列を複数の列に変換したり、その逆を行ったり、行を複数の行に変換したりするのに役立ちます。

Kutools for Excel's Transform Range tool

"Kutools for Excel" - 300以上の便利な機能を含み、作業を大幅に簡素化します。今すぐ30日間の全機能無料トライアルを取得してください!