KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel でデータを転置する5 の方法(ステップバイステップチュートリアル)

著者アマンダ・リー変更日

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


動画:Excel でデータを転置する方法


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

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

手順1:転置する範囲をコピーする

行と列を入れ替えたいセル範囲を選択し、「Ctrl」+「C」キーを押してコピーしてください。

行と列を入れ替えたいセル範囲を選択してコピーします

手順2:「形式を選択して貼り付け」の「転置」オプションを選択する

貼り付け先範囲の最初のセルを右クリックし、コンテキストメニューの「選択的貼り付け」セクションにある「転置」アイコンをクリックしてください。

転置先の最初のセルを右クリックし、右クリックメニューから「転置」アイコンをクリックします

結果

できました!範囲が瞬時に転置されました!

範囲が転置されました

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

(広告)Kutools でテーブルの次元を変換を簡単に

二次元テーブル(二次元表)をフラットリスト(一次元リスト)に、あるいはその逆にExcel で変換するのは、いつも多大な時間と手間がかかります。でも、Kutools for Excel をインストールすれば、「テーブルの次元を変換」ツールがこの作業を瞬時にカンタンにこなしてくれます!

Kutools for Excelの「表の次元を転置」ツール

「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))

結果

行と列が入れ替えられました。

TRANSPOSE関数を使用して表が転置されました

注: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)))

数式は転置先範囲の左上端のセルに入力されています

注記:
  • 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:数式を右および下のセルにコピーする

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

結果

列と行が瞬時に切り替わりました。

列と行が即座に入れ替わります

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

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

特殊貼り付けメソッドと検索・置換機能を組み合わせれば、データを転置するだけでなく、転置後のセルを元のセルにリンクさせることも可能です。

手順1:転置する範囲をコピーする

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

転置するセル範囲を選択してコピーします

手順2:「リンク貼り付け」オプションを適用する

  1. 空白セルを右クリックして、「特殊貼り付け」を選択してください。

    空白セルを右クリックし、「形式を選択して貼り付け」をクリックします

  2. 「リンク貼り付け」ボタンをクリックしてください。

    「リンクとして貼り付け」をクリックします

次のように結果が得られます。

コピーしたセルへのリンクが貼り付けられます

手順3:リンク貼り付け結果から等号(=)を検索と置換

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

    [検索と置換]ダイアログで「=」を「@EO」に置き換えます

  2. 「すべて置換」をクリックした後、ダイアログを閉じてください。以下はそのデータの表示例です。

    置換結果

手順4:置換後のリンク貼り付け結果を転置する

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

空白セル(ここではA11を選択)を右クリックし、[貼り付けのオプション]から「転置」アイコンを選択します

手順5:転置結果を元データにリンクさせるために等号(=)を戻す

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

    置換結果

  2. 「すべて置換」をクリックした後、ダイアログを閉じてください。

結果

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

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

Power Query で転置してデータのリンクを元データにリンクする

Power Query は強力なデータ自動化ツールで、Excel でのデータ転置を簡単に実現できます。以下の手順に従って、作業を完了してください。

手順1:転置する範囲を選択し、Power Query エディターを開く

転置したいデータ範囲を選択し、「データ」タブの「データの取得と変換」グループにある「テーブル/範囲から」をクリックします。

リボン上の[テーブル/範囲から]ボタン

注記:
  • データがテーブル形式でない場合は、「テーブルの作成」ダイアログボックスが表示されますので、「OK」をクリックしてテーブルを作成してください。
  • Excel 2013 または 2010 をご利用の場合、「データ」タブに「テーブル/範囲から」が表示されない場合は、「Microsoft Power Query for Excel」ページからダウンロードしてインストールしてください。インストール後は、「Power Query」タブの「Excel データ」グループにある「テーブルから」をクリックしてください。

手順2:Power Query で列を行に変換する

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

    [変換]タブに移動し、[最初の行をヘッダーとして使用]ドロップダウンメニューから[ヘッダーを行として使用]を選択します

  2. 「転置」をクリックしてください。

    [転置]をクリックします

手順3:転置したデータをシートに保存する

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

[閉じて読み込む]をクリックします

結果

転置されたデータは、新しく作成されたワークシートにテーブルとして配置されます。

転置されたデータが新しく作成されたワークシート内でテーブルに変換されます

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

(広告)Kutools で数回のクリックで範囲の変換

Kutools for Excel の「範囲の変換」ユーティリティを使えば、縦の列を複数の列に、あるいはその逆に、さらにを行を複数の行に、あるいはその逆に、簡単に変換できます。

Kutools for Excelの「範囲を変換」ツール

「Kutools for Excel」には300 以上の便利な機能が搭載されており、作業が大幅にラクになります!今すぐ、30 日間の全機能無料トライアルをお試しください!