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

No.003

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

2003/2007/2010/2013/2016/2019

行と列の入れ替えといえば、範囲をコピーして貼り付けるときに[行列を入れ替える]です。
そのときの結果は、元データが左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 関数>(関数の分類: 検索/行列)
指定した配列の行と列を入れ替えて返します。

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

関連ヘルプ

新規メールが開くハイパーリンクをまとめて設定するには 《HYPERLINK》
重複データを調べる 《COUNTIF》
VLOOKUP関数の結果がエラー値の場合には空白で表示させる 《IFERROR・IF・ISERROR》
0を抜いた最小値を調べるには 《MIN・SMALL・COUNTIF・IF》
3つ以上ある範囲に条件分岐するには(多分岐) 《IF》
データに連番をふる、同じデータには同じ番号 《INDEX・MATCH・COUNTIF・MAX》
規則性がない空白セルを除いた行に連番をふるには 《IF・COUNTA・COUNTIFS》
複数条件を満たすデータの件数を求めるには 《COUNTIF・COUNTIFS・SUMPRODUCT》
奇数行の合計、偶数行の合計、n行おきの合計を求める 《配列数式/IF・SUM・MOD》
時刻を5分単位で切り上げまたは切り捨てて表示するには 《CEILING・FLOOR・ROUNDUP》
参照式の参照セルが移動しても固定されるようにしたい 《INDIRECT》
VLOOKUP関数で、複数テーブルから検索したい 《VLOOKUP・アンパサンド》
2つのデータを比較し、他方にない(両方にある)データを探す 《VLOOKUP・COUNTIF》
OR条件に当てはまるデータの合計を求める 《SUMIF・SUMIFS・SUMPRODUCT・DSUM》
日付を表す8桁の数値データを、6桁の和暦にしたい 《DATE・TEXT》