- ベストアンサー
Excel:データの数が多い場合のグラフ描画
Excel 2007を使用しています。 ID1 x11 x12 x13 x14 … ID2 x21 x22 x23 x24 … ID3 x31 x32 x33 x34 … ID1 y11 y12 y13 y14 … ID2 y21 y22 y23 y24 … ID3 y31 y32 y33 y34 … というデータがあります。 これらでIDを系列名、x1~xnをx軸、y1~ynをy軸として一つのグラフ上に 描画したいと思っています。 一つずつデータを選択して、グラフを追加していけば出来ることは出来るのですが、 IDの数が大量にあるので、一度にもしくは効率的に実現出来る方法を 教えて頂きたいです。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、マクロを使う方法を提示してみます。 抵抗感がなければ試してみてください。 2007でのマクロ実行は http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01_2007.html ここを参考にして、下記のコードをコピーペーストして使うとよいです。 Sub test() Dim r(0 To 2) As Range Dim f As Boolean Dim i As Long Dim v v = VBA.Array("系列名の範囲", "x軸の1行目", "y軸の1行目") On Error Resume Next For i = 0 To 2 Set r(i) = Application.InputBox(v(i) & "を選択", Type:=8) If r(i) Is Nothing Then f = True Exit For End If Next On Error GoTo 0 If Not f Then With ActiveSheet.ChartObjects.Add(Left:=0, Top:=0, Width:=400, Height:=300).Chart .ChartType = xlXYScatterLines For i = 1 To r(0).Count With .SeriesCollection.NewSeries .Name = r(0).Item(i) .XValues = r(1).Offset(i - 1) .Values = r(2).Offset(i - 1) End With Next End With End If For i = 0 To 2 Set r(i) = Nothing Next End Sub 上記マクロを実行すると、系列名、x軸、y軸、それぞれの範囲を入力するBoxが出ます。 A B C・・・AY 1 ID1 x1 x2・・・x50 2 ID2 : 20 ID20 21 22 ID1 y1 y2・・・y50 : 41 ID20 このようなセル配置の場合、 "系列名の範囲"として A1:A20 を選択 "x軸の1行目" として B1:AY1 を選択 "y軸の1行目" として B22:AY22 を選択 ..でシートの左上にグラフを描画します。
その他の回答 (2)
- tortue2009
- ベストアンサー率53% (24/45)
何の役にも立ちませんでしたか? このHPは、どうでしょう? まだ私には、理解できませんが、なんとなく 「yki2010」さんの場合には 参考になりそうな 気がしますが http://kiyopon.sakura.ne.jp/situmon/kaitou/index02.htm#グラフに表示させる対象データが日々増えていく場合、自動でグラフを更新させる
お礼
私の説明不足だったために、tortue2009さんに二度手間をとらせてしまいました。 私もまだ勉強中のため全部はわからないのですが、 紹介して頂いたHPはとても参考になりそうですね。 試行錯誤しながら頑張ってみます。 ありがとうございます。
- tortue2009
- ベストアンサー率53% (24/45)
まだ勉強中の者ですが グラフの種類を 散布図 データポイントを折れ線でつないだ 一つのIDで 名前(セル)・Xの値(セル範囲)・Yの値(セル範囲)3か所 入力 では まだ大変なんでしょうか?
お礼
ご回答ありがとうございます。 現在は、そのような状態で範囲をしているのですが nの数が大きいため範囲を指定するのも結構時間かかかってしまいます。 (nが50前後で、IDの数も20×50程度あります。) 特に、多量のデータに対して手作業で処理を行うと、 入力ミスなどの間違いが起こるので、出来れば手作業の割合を減らしたいと考えているのですが、 何か良い方法はないでしょうか。
補足
ご回答ありがとうございます。 マクロは使ったことがなかったのですが、 教えて頂いたとおりにやってみたら出来ました。 紹介して頂いたサイトは スクリーンショット付きでとてもわかりやすいサイトですね。 今後も参考にさせて頂きたいと思います。 ありがとうございました。