- ベストアンサー
Excel2000でグラフを書くときの質問
いくつかの日付と数値があってそれをグラフにします その日付の間隔は一定ではありません グラフを書くときにそれを一定にしたいです つまり1/1 1/2 1/4とあったらグラフで書くとき 1/2と1/4の間を1/1と1/2の間隔の2倍にしたいです どなたかわかるかた教えて下さい
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
あまり難しく考える必要はありません。 グラフの元になる表を作る時に日付の列の表示形式を日付にしておけば、グラフにする時ちゃんと間隔を空けてくれます。 これが、文字列なんかだと等間隔のデータとして認識されてしまします。 既に文字列になっている場合入れ直さなければならないかもしれません。
その他の回答 (5)
- nishi6
- ベストアンサー率67% (869/1280)
表示方法の問題ではなく、データ数の問題だったようですね。 日付が無い箇所に自動的に必要数の空白行を挿入します。 日付が入力された列の、一番上の日付を選択状態にして実行します 標準モジュールに貼り付けて下さい。 Public Sub InsertRow() Dim col As Integer '日付のある列 Dim rw As Long, rwStart As Long, rwMax As Long '行カウンタ、最初と最後の行 rwStart = Selection.Row '日付の最初の行 col = Selection.Column '日付のある列 '空白行があったら面倒なので、あったら削除して詰めてしまう rwMax = Cells(65536, col).End(xlUp).Row '最終行 For rw = rwMax To rwStart Step -1 'そのセルに入力がなければ行を削除する。最終行から上に向かって実行 If Cells(rw, col) = "" Then Rows(rw).Delete '削除 End If Next '空いた日付分の空白行を挿入する Dim rwSpc As Integer, rwIns As Integer '挿入する行数とカウンタ rwMax = Cells(65536, col).End(xlUp).Row '再計算した最終行 For rw = rwMax To rwStart + 1 Step -1 '上のセルとの日付の差を計算。最終行から上に向かって実行 rwSpc = Cells(rw, col) - Cells(rw - 1, col) If rwSpc > 1 Then '日付が2日以上空いていたら『空いた日付-1』行を挿入 For rwIns = 1 To rwSpc - 1 Rows(rw).Insert '挿入 Next End If Next End Sub
お礼
回答ありがとうございます 質問の回答としてはNo6のようなことになってしまいましたが このマクロはほかの事でも色々と応用ができそうです
- comv
- ベストアンサー率52% (322/612)
こんばんは! >1/1 1/2 1/4 この入力は文字になっているのでしょうか それとも日付(数式バーには 2002/1/1と表示されます) となっているのでしょうか! 日付となっていれば 通常でもX軸は時系列になると思いますが、項目になって いるようなら ・余白上で右クリック グラフオプション ・軸タブ X/項目軸 時系列 にチェック ・X軸の文字上でダブルクリック 表示形式タブ 日付 3月14日 目盛タブ 日付の表示間隔を指定 ・もし間隔内に消したい日付が有る場合 表示形式タブ ユーザー定義 [=37259]"";[=37262];m"月"d"日" のような指定で2ヶ所までは非表示可能です [=数値]"";[=数値];m"月"d"日" 数値は、日付のシリアル値で、値を確認するには 適当なセルに日付を入力して、表示形式 標準 にしてみて下さい!
お礼
回答ありがとうございます
- hashiro
- ベストアンサー率41% (13/31)
たぶん、横軸を日付にしたいのですね。 このばあい、折れ線グラフみたいのを作られると仮定します。 A列に日付を入力し、B列には数値を入力する時、 A列の一番最初に「1」と言う数字を入れて 右クリックの「セルの書式」から「表示形式」「日付」を選択すると、「1997/3/4」のような表示が種類の欄にあって、それ選択するとサンプルが「1900/1/1」になります。 それでOKを選択してください。 すると、セルには「1900/1/1」と表示されます。 ここで必要な西暦はこのセルの中で変更してください。 A列の日付はこのセルを選択したまま下にドラッグすれば 出てきます。不必要な日付は行ごと削除してください。 あとは数値を入れてみてください。 それで、入力したセルを全て選択してグラフウィザードのグラフの種類から、折れ線または散布図を選択すればできます。 A列の表示が西暦のあるのがいやなら、「セルの書式」から「表示形式」「日付」で「1/1」という種類を選択してください。 なお、ここで「表示形式」「標準」または「数値」を選択 すると、「1900/1/1」からのカウント数値になります。 ここが、日付が飛び飛びになっている場合のグラフを作成する時のミソです。
お礼
回答ありがとうございます でも・・・ 私の理解力のせいかおっしゃってることがよくわかりません 日付を表示させ不必要なとこを削除するのと 日付を普通に入力するので何が違うのか理解できません
- nishi6
- ベストアンサー率67% (869/1280)
例えば、日付が行方向に入力されていれば、1/2と1/4の間に1行、2日飛んでいれば2行挿入したらどうでしょうか。 グラフ範囲は空白行も含んで指定します。 折れ線グラフなら余り違和感はないようですが。
お礼
回答ありがとうございます 私の作りたいグラフでは日付が数か月分あるので空白を入れるのが大変です 何か関数・マクロ等を使ってやる方法はありませんか?
- hitoshipon
- ベストアンサー率38% (24/62)
どのようなグラフを描きたいのか解りませんが、質問の例だけから判断するとグラフの種類で「散布図」を選べばよいのではないでしょうか?折れ線グラフならグラフウィザードを使えば一発ですよ。
お礼
解凍ありがとうございます 折れ線グラフを作りたいのですが 二つの日付が三日離れてても四日離れててもグラフでは同じになってしまう のでそれを日付であわせたいです
補足
大変申し訳ありません解答の字が間違っていました 解凍→回答です
お礼
回答ありがとうございます 考えすぎでしたExcelって便利ですね! まさか自動で間隔を設定していたとは