先日こんなツイートをしました。
行と列を入れ替えてコピペする方法は、以下のブログ記事で紹介しました。
しかし、この方法はすでに値が入力されている場合のみ有効で、元の値が修正されたとき、貼り付け先の値は反映されません。
今回、行と列を入れ替えて「コピー」ではなく、行と列を入れ替えて「参照」する方法を紹介します。
「コピペ」と「参照」の違い
「コピペ」と「参照」は違います。
コピペした場合、元のセルの値が変わっても、貼り付け先のセルには反映されません。
参照の場合、元のセルの値が変わると、貼り付け先のセルに反映されます。
これ、G1セルに「=A1」、G2に「=B1」・・・と入力しても参照になりますが、全て手入力する必要があります。
これは面倒です。
TRANSPOSE関数
TRANSPOSE関数は、行と列を入れ替える関数です。
もちろん、表全体の行と列を入れ替えて参照するときも使えます。
関数 | TRANSPOSE |
---|---|
説明 | 縦方向のセル範囲を横方向に、横方向のセル範囲を縦方向に変換します。 |
書式 | =TRANSPOSE(配列) |
リンク | Microsoft Office公式サポート |
Ctrl+Shift+Enterで確定(Excel2019以前)
Excel2019以前ではスピル機能が使えないため、数式を「{}」で囲む必要があります。
配列を扱う数式の場合、数式全体を「{}」で囲まないといけません。
最後にEnterではなく、Ctrl+Shift+Enterで確定しましょう。
Microsoft365やExcel2021などの最新版では、普通にEnterでOKです。
INDEXとROW関数を組み合わせる
TRANSPOSE関数の存在を知らなかった私は、INDEX関数とROW関数(もしくはCOLUMN関数)を組み合わせて、行と列を入れ替えて参照していました。
細かい説明は省略しますが、要は1列下にずれる度に、参照元を1行右にずらすためにINDEX関数とROW関数を組み合わせたのです。
縦横逆の場合は、INDEX関数とCOLUMN関数を組み合わせます。
関数 | INDEX |
---|---|
説明 | 行と列番号のインデックスによって選択された、テーブルまたは配列内の要素の値を返します。1番目の引数が配列定数のときは、配列形式を使います。 |
書式 |
=INDEX(配列, 行番号, [列番号]) =INDEX(参照, 行番号, [列番号], [領域番号]) |
リンク | Microsoft Office公式サポート |
関数 | ROW |
---|---|
説明 | 引数として指定された配列の行番号を返します。 |
書式 | =ROW([範囲]) |
リンク | Microsoft Office公式サポート |
関数 | COLUMN |
---|---|
説明 | 縦方向のセル範囲を横方向に、横方向のセル範囲を縦方向に変換します。 |
書式 | =TRANSPOSE(配列) |
リンク | Microsoft Office公式サポート |
まとめ
いかがでしたでしょうか。
行と列を入れ替えて参照する方法を紹介しました。
- TRANSPOSE関数
- INDEX関数とROW関数(or COLUMN関数)を組み合わせる
ぜひ、使ってみてください。
おすすめのExcel本はこちら。
おすすめのExcel勉強法はこちら。