- 公開日:
- 更新日:
Excelの行と列を入れ替える関数(数式)
エクセルで表を作っている時などに、行と列の値を入れ替える作業が必要になる場合があります。
この記事では、関数を使って行と列を入れ替える方法をご紹介します。
関数を使うと元の値と入れ替えた値がリンクするため、後の編集がスムーズにできます。
TRANSPOSE関数を使って入れ替える
TRANSPOSE関数を使って行と列を入れ替えて、A1セルからB7セルの縦の表をD1セルからJ2セルの横の表へ変更します。

入れ替え後の値を表示したいセル範囲を選択します。今回は元の表が7行×2列なので、入れ替え後のセルを2行×7列で選択します。任意のセル(例:D1セルからJ2セル)を選択します。

TRANSPOSE関数を入力します。TRANSPOSE関数の書式は「=TRANSPOSE(配列)」です。「配列」の引数に元のデータ範囲をセル番地で入力します。セルを選択したまま「=TRANSPOSE(A1:B7)」と入力して、Ctrl + Shift + Enterを押します。

これで行と列を入れ替えた表が選択したセル範囲に表示されます。数値のみが表示されるので、必要であれば任意の書式設定を行いましょう。
INDEX関数と他の関数を組み合わせて入れ替える
INDEX関数は対象の行と列が交差する位置にあるセルまたはセルの参照を返す関数で、書式は「=INDEX(配列,行番号,[列番号])」もしくは「=INDEX(参照,行番号,[列番号],[領域番号])」です。
他の数式を組み合わせる必要はありますが一度数式を作成しておけば何度でも使えるので、表を作成しながら同時に行と列を入れ替えた表を作成することもできるようになります。
INDEX関数の引数の詳細や使用例、エラーの対処法等については以下の記事でご紹介しています。
ExcelのINDEX関数の使い方|行と列が交差する位置にあるセルを返す
INDEX関数とROW関数を使って行を列に入れ替える
INDEX関数とROW関数を使って、縦(行)のデータを横(列)に入れ替える方法をご紹介します。
ROW関数は、セルの行番号を抽出する関数で書式は「=ROW([参照])」です。
ROW関数の詳細や使い方については以下の記事をご参照ください。

今回は、上のA1セルからG2セルの表をA5セルからB11セルの縦の表にします。
A5セルを選択して、「=INDEX($A$1:$G$2,1,ROW(A1))」と入力し、Enterを押します。
INDEX関数の列番号の引数にROW関数を組み合わせることでこの後オートフィルでコピーした際に、元の表で参照するセルが右の列へとずれていくように設定できます。

オートフィルで数式をコピーします。
関数が入ったセル(例:A5セル)を選択し、セルの右下にある「■(フィルハンドル)」を下方向へドラッグします。

これで、まずは元の表の一行目が抽出できました。
次に、2行目を抽出します。
B5セルを選択して、「=INDEX($A$1:$G$2,2,ROW(A1))」と入力し、Enterを押します。

オートフィルで数式をコピーします。
関数が入ったセル(例:B5セル)を選択し、セルの右下にある「■(フィルハンドル)」を下方向へドラッグします。

これで、INDEX関数とROW関数を使って行と列を入れ替えることが出来ました。
INDEX関数とCOLUMN関数を使って列を行に入れ替える
INDEX関数とCOLUMN関数を使って、横(列)のデータを縦(行)に表示しなおす方法をご紹介します。
COLUMN関数はセルの列番号を抽出する関数で、書式は「=COLUMN([参照])」です。
COLUMN関数の詳細や使い方については以下の記事をご参照ください。
ExcelのCOLUMN関数の使い方|指定したセルの列番号を求める

今回は、上のA1セルからB7セルの表をD1セルからJ2セルの横の表にします。
D1セルを選択して、「=INDEX($A$1:$B$7,COLUMN(A1),1)」と入力し、Enterを押します。
INDEX関数の行番号の引数にCOLUMN関数を組み合わせることで、この後オートフィルでコピーした際に元の表で参照するセルが下の行へとずれていくように設定できます。

オートフィルで数式をコピーします。
関数が入ったセル(例:D1セル)を選択し、セルの右下にある「■(フィルハンドル)」を右方向へドラッグします。

これで、まずは元の表のA列が抽出できました。
次に、B列を抽出します。
D2セルを選択して、「=INDEX($A$1:$B$7,COLUMN(A1),2)」と入力し、Enterを押します。

オートフィルで数式をコピーします。
関数が入ったセル(例:D2セル)を選択し、セルの右下にある「■(フィルハンドル)」を右方向へドラッグします。

これで、INDEX関数とCOLUMN関数を使って行と列を入れ替えることが出来ました。