ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.003

アイコン 設定されているリンクを保ちながら、行と列を入れ替えて表を貼り付けたい 《配列数式/TRANSPOSE》

Excel2003/2007/2010/2013

行と列の入れ替えといえば、範囲をコピーして貼り付けるときに[行列を入れ替える]です。
そのときの結果は、元データが左90度上下反転した状態になるわけですが、コピー元に数式が入っていた場合、数式のセル参照も相対的に移動します。

となるともちろん、リンク貼り付けされている状態の表もコピーして行列を入れ替えをすると、セルの参照元が相対的に移動するため、内容がおかしくなってしまいます。

リンクセル行列入れ替えコピー

上図の上は、リンク貼り付けしたデータセルA2:C5をコピーして、行列入れ替えでセルA9に貼り付けしました。
参照がどのように動くかを確認すべく、数式を表示したものが下です。

それでは、リンク貼り付けの参照を保って行列を入れ替えるための方法です。
まさしくそのための関数があり、TRANSPOSE関数(関数の分類: 検索/行列)を使用します。
簡単な数式でできるのですが、数式は「配列数式」を使用します。

先に配列数式の配列とは、セル範囲を1つのかたまりとして扱うことをいい、数式中の配列(範囲)をまとめて処理することができます。
重要なことは、配列数式を確定するとき、「Ctrl」+「Shift」+「Enter」を押します。

さあそれではTRANSPOSE関数を使って、セルA2:C5のリンク状態を保ちながら、セルA9に行列を入れ替えてみましょう。

まず先に、行列を入れ替えた表の範囲を選択します。
この範囲は答えが求められる範囲、行列を入れ替えて貼り付けられたデータがきっちりおさまる範囲を選択します。
今回セルA9:D11を選択しておきます。

そこにTRANSPOSE関数(関数の分類: 検索/行列)を挿入します。
1つの引数[配列]には、コピー元の表の範囲を指定します。

  =TRANSPOSE(A2:C5)

TRANSPOSE関数

最後は、「Ctrl」+「Shift」+「Enter」を押して確定します。

リンクデータ行列入れ替え

数式を確認してみましょう。
配列数式として作成された式の前後には、その印として{ }中かっこが付きます。
また、範囲のすべてのセルに同じ数式が入っています。

配列数式を用いた場合、答えを求めた一部のセルを削除したり、式を編集したりすることはできませんのでご注意ください。

一番元のセルを変更すると、すべて更新されますよ。

更新

ヘルプmemo

<TRANSPOSE関数 (検索/行列関数)>

指定した配列の行と列を入れ替えて返します。
 数式: =TRANSPOSE(配列)
 引数:
  配列... 行と列を入れ替える元のデータ範囲を指定
 ヒント:
  行列を入れ替えた範囲を選択しておいてから、式を挿入します。
  最後は「Ctrl」+「Shift」+「Enter」で確定です。

関連ヘルプ

新規メールが開くハイパーリンクをまとめて設定するには 《HYPERLINK》
データに連番をふる、同じデータには同じ番号 《INDEX・MATCH・COUNTIF・MAX》
参照式の参照セルが移動しても固定されるようにしたい 《INDIRECT》
VLOOKUP関数で、複数テーブルから検索したい 《VLOOKUP・アンパサンド》
2つのデータを比較し、他方にない(両方にある)データを探す 《VLOOKUP・COUNTIF》
ページのトップへ戻る