Excel 表の行・列を入れ替える(TRANSPOSE関数)

2020年10月28日

TRANSPOSE関数はセル範囲の行・列を入れ替える関数です。

この記事では関数の仕様と使用例、及び類似機能との比較を紹介します。

仕様

=TRANSPOSE(配列)
引数省略時の値説明
配列省略不可行・列を入れ替える範囲を指定。
引数の詳細

使用例

サンプルとして、この表の行列を入れ替えます。

サンプル表

スピルに対応したExcelバージョン

Excel2019以降やOffice365ではスピルで利用します。

それには、まずTRANSPOSE関数の引数に表のセル範囲を指定します。

元の表に行追加の可能性がある場合は多めにセル範囲を指定します。

TRANSPOSE関数の指定例(スピル)

数式を確定すれば必要な分だけ自動拡大されて完了です。

数式を確定すれば必要な分だけ自動拡大

スピル未対応のExcelバージョン

スピルに対応していない場合は配列数式が必要です。

それには、まずTRANSPOSE関数の引数に表のセル範囲を指定します。

元の表に行追加の可能性がある場合は多めにセル範囲を指定します。

TRANSPOSE関数の指定例(配列数式)

TRANSPOSE関数をセルコピーします。

全て#VALUE!エラーになりますが、この時点ではこのままで正解です。

TRANSPOSE関数をセルコピー

TRANSPOSE関数のセルを最も左上のセルから初めて全て選択し

(セル範囲を絶対参照にしていれば、どのセルから選択を初めても構いません)

数式バーで入力モードにします。

セル範囲を選択し、最も左上の数式バーで入力モードに設定

その状態で[Ctrl]+[Shift]を押しながら[Enter]を押下します。

{}で囲まれた配列数式になり、行列の入れ替わった結果が表示され、

セル範囲外になる場合は、#N/Aエラーになります。

配列数式になりTRANSPOSE関数が正常に実行された例

同様の機能との比較

行列を入れ替えて貼り付け

セル範囲を選択した上でコピーして「形式を選択して貼り付け」を選択します。

そして「行/列の入れ替え」をチェックし、

「OK」ボタンを押下すると行列が入れ替わった状態でペーストされます。

セル範囲を選択した上でコピーし「形式を選択して貼り付け」を選択

TRUNSPOSE関数の場合、リンク貼り付けと同様の状態(セル参照)になるため

元の表を更新すると関数の方も表示が変わりますが、

こちらの方法は値貼り付けとなるため元の表の更新は反映されません。

OFFSET・ROW・COLUMN関数

OFFSET関数ROW関数、COLUMN関数の組み合わせでも実現可能です。

=OFFSET(参照元表の開始セル【絶対参照,COLUMN()-OFFSET関数の開始セルの列数,ROW()-OFFSET関数の開始セルの行数)

数式はややこしくなりますが、配列数式を使用しない分、使い勝手の良い方法です。

ただスピルが使えるバージョンでは、そちらの方が良いでしょう。

OFFSET・ROW・COLUMN関数で代替する例

活用例と関連記事