はじめまして
早速ですが現在、先物取引等で毎日物品の価格数値をEXCELファイルで記録しています。
20品目ぐらい記録しているのですが1つ悩んでいる事があります。
それは日毎の価格変動をグラフで見たいのですがどうしても簡単にいい形でグラフに表示することができませんでした。
以下の通りにグラフに表したいのですがどうしたらよいのでしょうか?
シートA
品名 MIN(\) MAX(\)
ag001 96 100
ag002 102 103
ag003 302 305
シートB
品名 MIN(\) MAX(\)
ag001 97 100
ag002 103 104
ag003 303 305
シートC
品名 MIN(\) MAX(\)
ag001 98 100
ag002 104 105
ag003 305 307
↓↓↓↓↓↓↓↓↓↓↓
これを同ファイル内又は同フォルダ内の別ファイルでグラフag001、グラフag002、グラフag003のように日毎の数値が見られるグラフに分けたい。
宜しくお願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
こういう問題を機動的に行うのは、VBAが適当と思います。
品目別に別シートの、日付順、MIN・MAXの表に再構成すれば良い。
Sub test01()
Dim ws As Worksheet
Set tws = Worksheets("tws") '再編成した一時的な表
For i = 2 To 4 '第2行目から3日分
j = 2 'データは第2行目から開始
For Each ws In Worksheets
If ws.Name <> "tws" Then
tws.Cells(1, "B") = ws.Cells(i, "A")
tws.Cells(j, "A") = ws.Cells(1, "A")
tws.Cells(j, "B") = ws.Cells(i, "B")
tws.Cells(j, "C") = ws.Cells(i, "C")
j = j + 1 '日にちごとに次行に書きに行く
End If
Next
tws.Range("a1:d20").PrintOut 'a1:d20は適当に
Next i
End Sub
簡単のため、3日分の例でやって見ました。
シート3-1(3月1日の積もり。どんな名でも良い)
2004/3/1
a1191
b1292
c1393
シート3-2
2004/3/2
a2181
b2282
c2383
シート3-3
2004/3/3
a3171
b3272
c3373
「必ず日付順にシートを並べておいてください。」
実行すると
a
2004/3/1 11 91
2004/3/2 21 81
2004/3/3 31 71
---
b
2004/3/1 12 92
2004/3/2 22 82
2004/3/3 32 72
----
c
2004/3/1 13 93
2004/3/2 23 83
2004/3/3 33 73
の3枚の紙が印刷されます。これはこれで使い道があると思いますが、上記のtws.Range("a1:d20").PrintOutの前の部分に、グラフを書くマクロの記録を取り、コピーして挟みこんで下さい。
本番ではどこを少し変えれば良いか試行して掴んでください。
No.4
- 回答日時:
ANo.#2です。
補足をありがとうございました。> 下記のとおりにやりたいのです。
> シートA (3月1日)
> 品名 MIN(\) MAX(\)
> ag001 96 100
> ag002 102 103
> ag003 302 305
シートは日ごとに分かれているのですね。ということは最大31枚あるということですね。
品名は固定なのでしょうか。それとも増減があるのでしょうか?
余り関係ないですけれどあまりにも増減が激しければ何か対策を打たなくてはいけないでしょうから。
今回は3銘柄だけという事でお話させていただきます。
とにかく、日ごとに分けられているデータを品名ごとに分けたいというご希望からスタート、ということになります。
まず、グラフの元になるデータを、各シートから集めておくシートを作りましょう。「3月」シートという名前にします。
各シートからセル参照式で値を引っ張って来る手もありますが、処理が重く、数式も複雑になります。
ですから手作業で毎日シート「3月」に転記という進め方でいいでしょうか?
シート「3月」のフォーマットは
A1から右に
空白 ag001MIN ag001MAX 空白 ag002MIN ag002MAX 空白 ag003MIN ag003MAX
A2とD2とG2から下に、その日に入力したデータのみ日付を入れます。
1日
2日
3日
4日
5日
続く・・
グラフの最大参照範囲は
ag001が A1:C32 ←あとで名前をつけて可変にします
ag002が D1:F32 ←あとで名前をつけて可変にします
ag003が G1:I32 ←あとで名前をつけて可変にします
元のデータの縦横が入れ替わり、間に日付が入った形になります。
あとはエクセル技道場の数式の応用なのですが、いかがでしょうか。
これでOKという事で具体的に進められていってまた分かりにくいところがありましたらご質問ください。
No.3
- 回答日時:
作業用シートを別に作り、そこに同じ銘柄のデータを
並べるようにするしかないと思います。
作業用シート上では=Sheet1!A1などと元データが記入されているセルを参照するようにしてください。
下に向かって順番に
=Sheet1!A1
=Sheet2!A1
=Sheet3!A1
…
=Sheet31!A1
(31日分のシートなのでSheet31まで)
などと記入します。この作業用シートをつくるのが面倒かも知れませんが、一度作ってしまえば、あとは元データのみ書き換えるだけで済みます。
この作業用シートを使ってグラフを描いてください。
No.2
- 回答日時:
ご希望は
1.各シートのデータで作ったグラフを一つのシートに集めたい。
2.データが増えるごとにグラフに自動的にデータを追加したい。
でしょうか。
「エクセル技道場」というサイトに「可変範囲のグラフ」があります。
このページの要領で、一つ一つのデータ範囲(表)に名前をつけ、
それを元にグラフを描かれてはいかがでしょうか。
データは高値と安値しかないのでしょうか。
始値、高値、安値、終値の4つが揃えばローソクチャートが描けます。
http://www.datamining.jp/jirei/j005_1.htm
高値、安値しかないのでしたら、折れ線グラフはいかがでしょうか。
私も補足をお願いいたします。
この回答への補足
回答ありがとうございます。
1,2の希望通りにしたいのですがいまいちできませんでした。
補足します。
「エクセル技道場」ローソクチャートでは同じシート内で日毎のデータが入力されていますが私がしたいのは、
(1)日毎(例えば3月1日)に各品名データを入力する。
(2)高値、安値のみ
(3)各1品目のみの高値、低値の折れ線グラフの表示
No.1
- 回答日時:
横軸に日、縦軸に金額をとって
MIN、MAXごとに折れ線グラフでいいと思いますが。
いまいち、ご要望がわかりません。
補足お願い致します。
この回答への補足
回答ありがとうございます。
補足します。
下記のとおりにやりたいのです。
シートA (3月1日)
品名 MIN(\) MAX(\)
ag001 96 100
ag002 102 103
ag003 302 305
シートB (3月2日)
品名 MIN(\) MAX(\)
ag001 97 100
ag002 103 104
ag003 303 305
シートC (3月3日)
品名 MIN(\) MAX(\)
ag001 98 100
ag002 104 105
ag003 305 307
→これを日毎にシートに書込み保存。(3月分ファイルに)
月末後にグラフにまとめるのだが横軸に日、縦軸に金額をとってMIN、MAXを記入するととても面倒臭い。
↓
シート内の日毎の各品名記録を同ファイル内に各品のグラフ(たとえばag001品グラフ<3月1日~31日までの>、ag002品グラフ・・)というように作りたい。
わからなければまた補足します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
Excel 複数のシートからグラフ...
-
VBA セルの値と同じ名前のシー...
-
エクセル シフト勤務表から、...
-
ExcelVBAで、指定したシートに...
-
エクセルのワークシートが重く...
-
エクセルで入力→日付を自動判別...
-
エクセルについて質問です 日付...
-
IF, ISNUMBER, INDIRECTの組み...
-
質問:特定文字列から空白行ま...
-
エクセルのシートを自動で
-
VBAのoffsetの動き方について教...
-
エクセルVBAで
-
エクセルVBA:表の内容を担当者...
-
該当するデータを書式設定ごと...
-
EXCEL VBA 一致しないデータの...
-
各顧客をシートごとに作成した...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
Excelで行ごとコピー、同じ行を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの中央値の複数条件について
-
エクセルで入力シートから別シ...
-
VBA セルの値と同じ名前のシー...
-
Excel 複数のシートからグラフ...
-
ExcelVBAで、指定したシートに...
-
エクセルのワークシートが重く...
-
エクセル マクロを使って日々...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルVBA:表の内容を担当者...
-
エクセルについて質問です 日付...
-
Excel ハイパーリンク先のセル...
-
質問:特定文字列から空白行ま...
-
【Excel】VLOOKUP関数で複数の...
-
該当するデータを書式設定ごと...
-
Excelの選択肢をポップアップリ...
-
エクセルで入力→日付を自動判別...
-
エクセル自動の年月
-
VBAのoffsetの動き方について教...
-
VBAを利用しオートフィルタで日...
-
エクセル シフト勤務表から、...
おすすめ情報