- 締切済み
EXCELでグラフのデータ範囲を自動化したい
EXCELについて質問があります。 いまあるデータをグラフ化しようと思っているのですが、グラフのデータ範囲を自動で指定したいのです。 詳しく話しますと、A列に日付データ、B~Fに数値データが入っています。 なお、B~F列には他のシート(同一ファイル)のデータからVLOOKUPによって日付を検索値にて抜き出した数字が入っております。 そして、グラフ化するデータ範囲は一番古い日付から前日までのB~Fのデータになります。また、A列を項目軸ラベルとして使用します。自動化するのはこの、「前日まで」という部分です。 ちなみにA列には、2003年から2008年までの日付が予め入っています。 ですので、B~F列にはVLOOKUPで検索している関係で現在の日付以降の欄には最後に入力された日付のデータが下にずらずらと表示されています。 現在は手動でグラフの範囲の更新をしている為、未来の日付にデータが入っていることには支障はありません。もし、自動化するにあたって他の方法を用いてデータを抜き出した方がよいのであればその点も明記していただけますと助かります。 よろしくお願い致します。 ※データ詳細 ・4行目からデータが入っています。 ・A列には2003年3月31日から1日ずつ日付が入っています。 ・B~F列には数値データが入っており、B列はsheet2に元データがありA列に日付、E列に抜き出すデータが入っています。C列以降もsheet3,4…と元データが入っており、A列に日付がありますが、抜き出すデータはシートごとに列が違います。 ・元データの日付の開始日はシートによって異なります。(全て03/03/31からあるわけではないという意味です。) ・グラフ形式は積み上げ面です。B~Fの合計値の推移を見る為です。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問を読むのに苦労する。私なら質問を下記のように書く。 例データ 本日11/22現在として A列 B-D列(計数) 2007/11/18 23 23 23 2007/11/19 21 21 21 2007/11/20 43 43 43 2007/11/21 45 45 45 2007/11/22 34 34 34 2007/11/23 2007/11/24 2007/11/25 2007/11/26 2007/11/27 2007/11/28 2007/11/29 前もって日付は先まで入れてあり、日に日にをデータ追加してゆく。 「前日までの」データを自動的にグラフにしたい。 ーーー VBAでやる方法もあります。 Sub Macro1() Dim myR With Worksheets("Sheet1") .Range("H1") = Date - 1 myR = Application.WorksheetFunction.Match(.Range("H1"), .Range("A1:A1000"), 0) d = myR End With '-- Charts.Add ActiveChart.ChartType = xlAreaStacked ActiveChart.SetSourceData Source:=Worksheets("Sheet1").Range("A1:D" & d) ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" Application.CommandBars("Chart").Visible = False End Sub 後半は、ほとんどマクロの記録です。 Range("A1:A1000"), の1000 Worksheets("Sheet1")のSeet1(シート名) Range("A1:D" & d)のD列 Range("H1") = Date - 1 のH1(ワーク作業セル) など自分の場合に合わせて変えてください。
- zap35
- ベストアンサー率44% (1383/3079)
数日前にも同じ内容の質問がありましたが、名前定義を用いてデータが増えたらグラフの範囲を自動的に変更することが可能です http://www2.odn.ne.jp/excel/waza/graph.html#SEC13 の「可変範囲のグラフ」 をご覧ください。言葉で説明するよりわかりやすいと思います
補足
回答ありがとうございます。 教えていただいたアドレスの内容は質問以前に読みました。 しかし、なかなか応用で上手くいきませんでした。ですので今回質問させていただいた次第なのです。
補足
回答ありがとうございます。 説明が上手くなく申し訳なく思ってます。 回答いただきました内容ですが、 記述内容がよくわかりません。VBAが分かる人ならいいと思うのですが…。 ですが、回答いただきましたことに感謝いたします。