Excel。表を行列入れ替えてして、さらにリンクさせる方法はないですか?だって。
配列+TRANSPOSE関数
先日雑談中に、表を作ったんだけど、横に長くなったので、縦にして印刷できるようにしたいんだけど、
入力するから出来たら元のデータはそのままでっていうことは出来ないかなぁ~と、
質問されて、何をいっているかよくわからなかったので、よく聞いてみたら。
上の表みたいなものがあって、縦で印刷させたいと、
そこで、別のシートに、行列を入れ替えてコピーするだけではなくて、
上の表のデータを変更したら、別シートの数値もリンクされたように変わってくれないか?
ってことらしいので、今回はそれに挑戦したいと思います。
別シートだとわかりにくいので、同じシート上でやっていきたいと思います。
では、確認で、行列を入れ替えてコピーする方法から確認していきましょう。
このようなことをやっていきます。
まずは、A3:D7を範囲選択します。ホームタブのコピーボタンを押して、A10をクリックします。
そして貼り付けボタンの▼をクリックして、行列の入れ替えボタンをクリックしてみましょう。
すると、行列を入れ替えて貼り付けることが出来ましたね。
あとは、B10:E10までを中央揃えにしたりするといいですね。
まぁ、行列を入れ替えてのコピーだけならいいのですが、今回は、リンクさせたい訳ですね。
このままでは今回は片手落ちなのですね。
では、一つずつのセルをセル参照させていくとしたら、大変な処理になりますよね。
そこで、配列関数+TRANSPOSE関数を使うことによって、
今回のリクエストをかなえることができるのです。
TRANSPOSE関数ってなじみが全然ないですよね。
これは、行と列を入れ替る関数なのですが、配列関数で処理をしないといけません。
配列関数を説明は避けるとして、手順としては、TRANSPOSE関数を作ったら、
その関数を範囲選択して、
Ctrl+Shift+Enter
を押すと、数式が配列関数に変化することができます。では、やっていきましょう。
ポイントは先に範囲選択をする必要があります。必要な範囲を先に確認しておきましょう。
今回は、G3:K6を範囲選択します。
そして、TRANSPOSE関数ダイアログボックスを表示しましょう
配列には、元のデータの範囲である、A3:D7と入力してOKボタンをクリックします。
#VALUE!というエラーが表示されていますけど、無視して、
数式バーの数式を範囲選択しましょう。
ここで、配列関数にチェンジしますので、Ctrl+Shift+Enterキーを押します。
すると、
{=TRANSPOSE(A3:D7)}と数式の前後に { }のカッコがついたら大成功。
配列関数になりました。G3:K6をみてみると、
エラーがなくなり、数値が反映されていますね。
では、2011年4月のデータを100に変えてみましょう。
H4は100に変わりましたが、単なる貼り付けしたB11はそのままなのが確認できますね。
Excelは、配列というアイディアも含めていくと、さらに奥深いものになりますので、
まずは、基本スキルを定着させてから、奥深い所に進んでいくのがいいでしょうね。