日々のコンピュータ情報の集積と整理

Dr.ウーパのコンピュータ備忘録

2014年4月22日火曜日

Excel:VBAマクロを使わないで、グラフに使用するデータを手軽に切り替える方法(3) - 3系列以下を選択して表示する

記事「Excel:VBAマクロを使わないで、グラフに使用するデータを手軽に切り替える方法(2) - 2系列を選択して表示する」では、VBAマクロを使わないで、グラフに使用する2系列のデータを手軽に切り替える方法を紹介しました。

今回はそこに更に一工夫を加え、任意に選んだ3つのデータをグラフに表示できるようにしてみましょう。

なお、データをグラフとして表示しないことも可能です。

画面

グラフ用シート

excel_graph_change_list_3item_control

「管理」シート

データシート1

excel_graph_change_list_3item_data1

「1日」シート

データシート2

excel_graph_change_list_3item_data2

「2日」シート

:

(データシート3~4は省略)

:

データシート5

excel_graph_change_list_3item_data5

「5日」シート

 

表示するグラフの切り替え操作

表示するグラフの切り替えを行うには、グラフが表示されている「管理」シートのグラフ化するシートを選択するためのセルを選択します。(系列1、もしくは系列2、もしくは系列3)

excel_graph_change_list_3item_control

初期状態

すると、表示できるグラフのシート名がリストとして表示されるので、別のシート(5)を選択します。

excel_graph_change_list_3item_control_exp1

リストから 5 を選択。

すぐに元々表示されていた「3日」シートのデータから、「5日」シートのデータに切り替わります。

excel_graph_change_list_3item_control_exp2

グラフが「5日」シートのデータに切り替わる

このように非常に手軽に表示するデータの切り替えを行うことができます。

更に、以下のように系列1、系列2、系列3とも変更して、自由にデータを比較することができます。

excel_graph_change_list_3item_control_exp3

系列1、系列2、系列3とも変更して、自由にデータを比較することができる

系列に何も選択しないことで、系列の数を減らして、データを比較することもできます。

excel_graph_change_list_3item_control_exp4

系列に何も選択しないことで、系列の数を減らして、データを比較することもできる

 

表示するグラフの切り替えの仕組み

「管理」シートを次のエリアに分けて説明します。

excel_graph_change_list_3item_control_area

「管理」シート エリア分け

(1) グラフの表示用データ 系列1 エリア

ここに記載されているデータを基に系列1のグラフを作成しています。

このデータは次の数式により、セルI2で選択されたシートのデータを表示するようになっています。

例)セルA2の場合:(他のセルはオートセル機能によって自動でセルの参照が更新されています。)

セルA2の数式:

=INDIRECT(ADDRESS(ROW(A2),COLUMN(A2),1,1,$I$2&$J$2),TRUE)

ADDRESS 関数で、現在の行・列にある別のシート($I$2&$J$2 でシート名を作成)の参照文字列を作り出しています。

その参照文字列をINDIRECT関数に渡し、その参照文字列が指し示すセルの内容を取得しています。

 

例)セルB1の場合:

グラフの凡例にどのシートのデータを表示しているのか示すために、凡例にシート名(I2&J2)を加えています。

セルB1の数式:

=INDIRECT(ADDRESS(ROW(B1),COLUMN(B1),1,1,$I$2&$J$2),TRUE)&"-"&I2&J2

 

(2) グラフの表示用データ 系列2 エリア

ここに記載されているデータを基に系列2のグラフを作成しています。

このデータは次の数式により、セルI3で選択されたシートのデータを表示するようになっています。

例)セルC2の場合:(他のセルはオートセル機能によって自動でセルの参照が更新されています。)

セルC2の数式:

=INDIRECT(ADDRESS(ROW(A2),COLUMN(A2),1,1,$I$3&$J$3),TRUE)

ADDRESS 関数で、現在の行・列にある別のシート($I$3&$J$3 でシート名を作成)の参照文字列を作り出しています。

その参照文字列をINDIRECT関数に渡し、その参照文字列が指し示すセルの内容を取得しています。

 

例)セルD1の場合:

グラフの凡例にどのシートのデータを表示しているのか示すために、凡例にシート名(I3&J3)を加えています。

セルD1の数式:

=INDIRECT(ADDRESS(ROW(B1),COLUMN(B1),1,1,$I$3&$J$3),TRUE)&"-"&I3&J3

 

(3) グラフの表示用データ 系列3 エリア

ここに記載されているデータを基に系列3のグラフを作成しています。

このデータは次の数式により、セルI4で選択されたシートのデータを表示するようになっています。

例)セルE2の場合:(他のセルはオートセル機能によって自動でセルの参照が更新されています。)

セルE2の数式:

=INDIRECT(ADDRESS(ROW(A2),COLUMN(A2),1,1,$I$4&$J$4),TRUE)

ADDRESS 関数で、現在の行・列にある別のシート($I$4&$J$4 でシート名を作成)の参照文字列を作り出しています。

その参照文字列をINDIRECT関数に渡し、その参照文字列が指し示すセルの内容を取得しています。

 

例)セルF1の場合:

グラフの凡例にどのシートのデータを表示しているのか示すために、凡例にシート名(I4&J4)を加えています。

セルF1の数式:

=INDIRECT(ADDRESS(ROW(B1),COLUMN(B1),1,1,$I$4&$J$4),TRUE)&"-"&I4&J4

 

(4) グラフ化するシート選択 エリア

セルI2, I3, I4にはデータの入力規則を設定し、その下にあるデータ範囲のセルの内容をリストとして表示し、そこから値を選択できるようになっています。

excel_graph_change_list_3item_control_exp5

データの入力規則を設定し、リストから値を選べるようにする

以上の設定で、ユーザが選んだシートのグラフを動的に表示できるようになっています。

VBAマクロなどを使用せず、Excel の標準的な機能で動的なグラフの変更を実現できるため、非常に手軽です。

 

サンプルファイルのダウンロード

 excel_sample_graph_change_list_3item_ver1_0_0_public.xlsx (23.0 KB (23,614 バイト))

 

まとめ

リストから3系列分のデータを選択して、グラフのデータを動的に切り替える方法をご紹介しました。

今回ご紹介した Excel のテクニックを用いれば、データをグラフで比較する場合など、比較したいデータを任意に選んで比較できるので、作業の効率化につながると思います。

Excel入門5冊分! <基本操作と計算 関数 グラフ データベース マクロ> Excel2013対応





関連記事

関連記事を読み込み中...

同じラベルの記事を読み込み中...