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

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

2014年4月22日火曜日

Excel:VBAマクロを使わないで、グラフに使用するデータを手軽に切り替える方法

Excelで各シートごとにデータが記載されている場合、通常各シートごとにグラフを作成することが多いと思います。

但し、各シートごとにグラフを作成する場合、以下の問題点があります。

  • グラフの書式を統一的に変更する場合、すべてのシートのグラフをすべて変更する必要があるため、手間がかかる。
  • 目的のシートのグラフを見つけるために、タブを切り替える必要があり、シートの数が多くなると目的のタブを探すのが大変。

 

その解決策の一つとして、表示したいグラフのシート名をリストから選択して、グラフのデータを動的に切り替える方法があります。

言葉で説明するより実際の画面を見た方がわかりやすいので、以下にその画面を示します。

画面

グラフ用シート

excel_graph_change_list_control

「管理」シート

データシート1

excel_graph_change_list_data1

「1日」シート

データシート2

excel_graph_change_list_data2

「2日」シート

 

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

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

excel_graph_change_list_control

初期状態

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

excel_graph_change_list_control_selsheet

リストから 2 を選択。

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

excel_graph_change_list_control_2

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

 

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

 

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

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

excel_graph_change_list_control_exp

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

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

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

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

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

セルA2の数式:

=INDIRECT(ADDRESS(ROW(A2),COLUMN(A2),1,1,$D$2&$E$2),TRUE)

 

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

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

 

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

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

excel_graph_change_list_control_exp_datainput

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

 

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

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

 

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

excel_sample_graph_change_list_ver1_0_0_public.xlsx (16.2 KB (16,644 バイト))

 

まとめ

表示したいグラフのシート名をリストから選択して、グラフのデータを動的に切り替える方法をご紹介しました。

今回ご紹介した Excel のテクニックを用いれば、様々なデータのグラフを効率的に行える可能性があります!

外資系金融のExcel作成術: 表の見せ方&財務モデルの組み方





関連記事

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

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