• ベストアンサー

エクセルでデータを追加したら自動的にグラフも更新する方法

たとえば、 1月から10月までのデータを入力してグラフを作ります。 そのデータに11月分のデータを追加すると自動的にグラフも1月から11月までのグラフに更新する方法はないですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 絵で説明できればよいのですが、私の言葉で説明して、理解して貰ったのは、五分五分というところなので、あまり重ねてご説明はするつもりはありませんので、よろしくお願いします。 '------------------------------ A1列からC列までのデータがある場合。 挿入-名前-定義 名前(W) HANNIT (任意) 参照範囲(R) =INDEX(Sheet1!$A$1:INDEX(Sheet1!$C:$C,COUNTA(Sheet1!$A:$A),1),0,1) [追加] 名前(W) HANNI1 (任意) 参照範囲(R) =INDEX(Sheet1!$A$1:INDEX(Sheet1!$C:$C,COUNTA(Sheet1!$A:$A),1),0,2) 同様に、 HANNI2 (任意) =INDEX(Sheet1!$A$1:INDEX(Sheet1!$C:$C,COUNTA(Sheet1!$A:$A),1),0,3) と名前定義をする。 グラフのプロットエリアにポインターを移して、 右クリック-元のデータ(S) 値(V) 系列1 Test1.xls!HANNI1  (Test1 は、ブック名) 系列2 Test1.xls!HANNI2 と付ける 最後に、 項目軸にラベルを使用(T) Test1.xls!HANNIT とします。  [OK] これらが、うまく認識しないときは、ブック名の代わりに、シート名を入れてみてください。登録されると、これが、ブック名に変わります。 そして、データを入れてみてください。A列をデータ量の判定に使っているので、B列・C列に入れてもすぐに反応しませんが、A列に入れると、グラフは、変化します。 もし、それぞれの入力に反応してくれるように作るのでしたら、 HANNI1は、 =INDEX(Sheet1!$A$1:INDEX(Sheet1!$C:$C,COUNTA(Sheet1!$B:$B),1),0,2) HANNI2は、 =INDEX(Sheet1!$A$1:INDEX(Sheet1!$C:$C,COUNTA(Sheet1!$C:$C),1),0,3) と替えると、入力に対して、全部反応してくれます。 そう出ない場合は、A列のどこかで、F2を押して、Enterを入れれば反応します。

plasmagnu
質問者

お礼

ありがとうございました。Wendy02さんのやり方を基本として作らせて頂きました。

その他の回答 (3)

  • takkuni
  • ベストアンサー率24% (166/676)
回答No.4

名前定義、offset及びcount関数を使えばできると思います。 月の列とデータの列にそれぞれ列全体を指定して名前定義をします。(例:月、データ) 次に同じくデータ範囲を名前定義します。挿入~名前~定義から適宜な範囲名を入力し、参照範囲にoffset及びcount関数を使って指定します。 =offset($A$1,0,0,count($A:$A),2) A1を起点とし、A列のデータ入力セルの個数を求め、そこから2列を指定という意味になります。 データを追加したら、グラフエリアを選択してメニューのグラフ~元のデータからデータ範囲を先ほど定義した範囲名を入力し、OKボタンをクリックすればグラフが追加されます。言葉だけの説明では分かりにくいと思いますのでうまくいかなかったら再度ご質問下さい。

plasmagnu
質問者

お礼

ありがとうございました。Wendy02さんのやり方を基本として、takkuniさんに教えていただいたoffsetをおりまぜつつ作らせて頂きました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

グラフが1つ、Sheet1にできている場合 Sheet1にコマンドボタンを1つ貼り付ける。 そのクリックイベントに Private Sub CommandButton1_Click() n = Worksheets("sheet1").ChartObjects(1).Name Set x = Application.InputBox("aa", "範囲", Type:=8) ActiveSheet.ChartObjects(n).Activate ActiveChart.PlotArea.Select ActiveChart.ChartArea.Select ActiveChart.SetSourceData Source:=x, PlotBy:= _ xlColumns End Sub コマンドボタンをクリックすると、グラフにするデータのセル範囲を 聞いてきますので、グラフ上で、グラフに描くデータ範囲をマウスで四角く(点線が出るのでそれで)囲み、OKをクリック。 これで指定した範囲のグラフに、一瞬で描き直されます。 質問の件では1-11月のデータを範囲指定します。 2-8月のデータを範囲指定すれば、2-b月のグラフになります。

plasmagnu
質問者

お礼

ありがとうございました。皆様のアドバイス参考になりました。

回答No.1

グラフのデーターエリヤを、最初から11月分、12月分のスペースまで指定しておけば出来ますよ。

plasmagnu
質問者

お礼

ありがとうございました。皆様のアドバイス参考になりました。

関連するQ&A