6/03/2015

Excel。TRANSPOSE関数。表を行列入れ替えてして、さらにリンクさせる方法はないですか?だって。


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は、配列というアイディアも含めていくと、さらに奥深いものになりますので、
まずは、基本スキルを定着させてから、奥深い所に進んでいくのがいいでしょうね。