• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでグラフを最新の50個のデータにしたい)

エクセルで最新の50個のデータを含むグラフを作成したい

HohoPapaの回答

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.8

>本チャンのブック のデータレイアウトが未詳のままではありますが、 >データ範囲が41行目から79行目に固定されてしまうようです。 の問題は、以下にポストするコードで解決するはずです。 なお、1列目は、 データ開始行(17行目)以下、 有効行末まで空行なく埋まっている前提です。 >横軸の指定がグラフ要素になってしまう これは多少予想していました。 横(項目)軸ラベルの範囲設定と データ要素群の範囲設定の区別方法についての 私の理解が浅く手探りだからです。 ともあれ、 期待のグラフを右クリックし、 データの選択を選び、 表示される設定画面、凡例項目に余分な行があれば削除し 横(項目)軸ラベルは、編集を選び 明示的に範囲を指定してみてください。 その後、以下にコードを2種類ポストしますので それぞれ試してみてください。 ポストしたコードはそれぞれデータ要素が2つある前提で 前者は、横(項目)軸ラベルを指定するコード 後者は、横(項目)軸ラベルを指定しないコードです。 Sub GraphSauceChange2()  Const MaxRows = 10  'データ範囲に指定する最大行数  Const TgShNum = 2  '対象シート番号 ' Const ColNum0 = 8  'x軸要素名列  Const ColNum1 = 3  '1つ目データ格納列  Const ColNum2 = 5  '2つ目データ格納列  Const SRowNum = 17  'データ開始行番号  Const KoumokuRow = 5 '項目名格納行番号    Dim SRow As Long   'グラフ用データ開始行  Dim ERow As Long   'グラフ用データ終了行 ' Dim tgRange0 As Range 'X軸ラベル  Dim tgRange1 As Range 'データ群1つ目範囲  Dim tgRange2 As Range 'データ群2つ目範囲  Dim tgRangeA As Range '上記合計範囲    With ThisWorkbook.Sheets(TgShNum)      ERow = .Cells(.Rows.Count, 1).End(xlUp).Row   If ERow < MaxRows + SRowNum Then    SRow = SRowNum   Else    SRow = ERow - MaxRows + 1   End If     MsgBox (SRow & "-" & ERow)  'デバック用コード    ' Set tgRange0 = _    Range(.Cells(SRow, ColNum0), .Cells(ERow, ColNum0))   Set tgRange1 = _    Range(.Cells(SRow, ColNum1), .Cells(ERow, ColNum1))   Set tgRange2 = _    Range(.Cells(SRow, ColNum2), .Cells(ERow, ColNum2))   ' Set tgRangeA = Union(tgRange0, tgRange1, tgRange2)   '結合   Set tgRangeA = Union(tgRange1, tgRange2)    '結合   .ChartObjects(1).Chart.SetSourceData Source:=tgRangeA  'セット      .ChartObjects(1).Chart.SeriesCollection(1).Name = _    .Cells(KoumokuRow, ColNum1).Value   .ChartObjects(1).Chart.SeriesCollection(2).Name = _    .Cells(KoumokuRow, ColNum2).Value    End With End Sub Option Explicit Sub GraphSauceChange2()  Const MaxRows = 10  'データ範囲に指定する最大行数  Const TgShNum = 2  '対象シート番号  Const ColNum0 = 8  'x軸要素名列  Const ColNum1 = 3  '1つ目データ格納列  Const ColNum2 = 5  '2つ目データ格納列  Const SRowNum = 17  'データ開始行番号  Const KoumokuRow = 5 '項目名格納行番号    Dim SRow As Long   'グラフ用データ開始行  Dim ERow As Long   'グラフ用データ終了行  Dim tgRange0 As Range 'X軸ラベル  Dim tgRange1 As Range 'データ群1つ目範囲  Dim tgRange2 As Range 'データ群2つ目範囲  Dim tgRangeA As Range '上記合計範囲    With ThisWorkbook.Sheets(TgShNum)      ERow = .Cells(.Rows.Count, 1).End(xlUp).Row   If ERow < MaxRows + SRowNum Then    SRow = SRowNum   Else    SRow = ERow - MaxRows + 1   End If     MsgBox (SRow & "-" & ERow)  'デバック用コード     Set tgRange0 = _    Range(.Cells(SRow, ColNum0), .Cells(ERow, ColNum0))   Set tgRange1 = _    Range(.Cells(SRow, ColNum1), .Cells(ERow, ColNum1))   Set tgRange2 = _    Range(.Cells(SRow, ColNum2), .Cells(ERow, ColNum2))   Set tgRangeA = Union(tgRange0, tgRange1, tgRange2)   '結合   'Set tgRangeA = Union(tgRange1, tgRange2)    '結合   .ChartObjects(1).Chart.SetSourceData Source:=tgRangeA  'セット      .ChartObjects(1).Chart.SeriesCollection(1).Name = _    .Cells(KoumokuRow, ColNum1).Value   .ChartObjects(1).Chart.SeriesCollection(2).Name = _    .Cells(KoumokuRow, ColNum2).Value    End With End Sub

akira0723
質問者

お礼

ものすごい大作を提示していただいて恐縮なのですが、当方には使えそうにない(全く動かず)ので再度具体的な表の構成を添付して別の質問にしましたのでいったん締め切らせていただきます。 お手数をおかけしました。

akira0723
質問者

補足

毎度お世話になっております。 いつもと違って心苦しい報告です。 ご回答の#1、#2、#3、を昨夕より試してみたのですが、#2、#3は全く動く気配なし。 エラーメッセージで目標の行数は正しく表示されます。(81-100等) 行数が足りないときは17-3と出るようです。 その後「エラー400」と出ます。 これ以上は当方にはお手上げ状態。 不思議なのは#1で、再度試しましたが既報の通りやっぱりダミーシートでは行数が足りていれば期待通りに動くのですが、本チャンのシートだとなぜか動く気配なし。何度も同じコードをコピペして、上部の行数も合わせて確認したのですが違いが判らず。 とほほ・・・・ また、#1はX軸に数字以外の列を指定すればちゃんとX軸に反映されますが、指定列が数字のみの場合はグラフ系列に取り込まれてしまって要素が3本のグラフができます。 X軸はデータ数になります。ただし、データ数が指定個数以下だと列の数字がX軸に反映されます。(当方には全く不可解ですが情報として) これまでの経験からHohoPapaさんのご回答でこれほど思うようにいかないのは当方の表の問題だと思います。 そこでいったんこの質問を閉めて本チャンのダミーシートを添付して再度質問させていただくことにさせてください。 もしこれ以上のおんぶは負担が大きいようなら当然ですが無視して、次の機会?に体力温存でお願いします。 本当にいつも質問の不備と知識のなさでお手間をおかけし、重ね重ね申し訳ありません。

関連するQ&A

  • Excelのグラフ表示時の警告を出ないようにしたい

    Excel2000で質問です。 要素の数が多いデータのグラフを作成する時に出る「2-Dグラフで入力できるデータ要素の数は・・・」 というメッセージを出ないようにする方法ってありますでしょうか? もちろんデータ数を減らせば出なくなるのは知っていますが、 大量のデータの最初の方をグラフにしたくて、 1列全て選択してグラフ化するのが簡単なのでそうしているのですが、 いちいちメッセージが出るのでウザいです。 よろしくお願いします。

  • エクセル:最新データ12件でグラフを作る

    いつもお世話になっております エクセルで、経済指標のデータを入力しています それをグラフにしているのですが 毎月更新されるため、最新の12件(直近一年)だけを抽出し グラフにしたいと考えています 例    A    B   C     列1 2007/07 2007/08 2007/09・・・・・2008/05 2008/06 列2 数字   数字   数字 ・・・・ 数字  数字 2008年6月時点では、この数字でグラフが作成されるが 2008年7月の数値を入力すると    A    B   C    列1 2007/08 2007/09 2007/10・・・・・2008/06 2008/07 列2 数字   数字   数字 ・・・・ 数字  数字 のデータを基にしたグラフが作成される http://oshiete1.goo.ne.jp/qa645288.html のページを参考にしようとしたのですが 12件分なのでうまくいきませんでした。 よろしくお願いします わかりにくかったらすみません・・・

  • Excelのグラフ(2000)

    お世話になります 教えてください。 EXCEL2000です。 グラフを作成しています。 行のデータ数は39634行あります。 B列に時間、C列に数値があって、それをグラフにしたいのです。 x軸に時間、Y軸に数値にします。 でも、作成しても、エラーが出るのです。 「2-Dグラフで入力できるデータ要素の数は1系列あたり最大32000個です。32000個以上のデータ要素を使用する場合は、複数の系列を作成してください。」 というようなエラーです。 まあ、たしかにデータ数は32000個以上ありますが。。。 これはいったいどういうことでしょうか? じゃあ、2系列作成すればいいのかと、グラフウィザードの、(散布図)系列タブで、「系列」のところに「系列1」しかないのをその下の「追加」ボタンを押して「系列2」を追加しました。 エラーによると、「系列1」だけでは作成されないグラフ分を系列2でおぎなっているのだろうかと思いましたが、出来上がったグラフを見ると、すっかり系列1と系列2が重なっているのです。すっかりわからなくなりました。 デフォルト設定が系列1が青色、2がピンクだったので、 どちらも同じ色にしたいと思いましたが、系列2のほうが上にかさなっていて、おかげで系列1が選択できず、「データ系列の書式設定」をしようにもできません。 すっかりかさなっているグラフをそれぞれの系列を選択するにはどうしたらよいでしょうか? グラフをきちんと作成するにはどうしたらよいでしょうか?2系列?うまくつくるにはどうしたらよいでしょうか?

  • Excelマクロ:配列データからグラフを作成するには?

    マクロ初心者です。 Excel VBAのマクロで、2つの配列データから、散布図グラフを作成したいのですが、セルに配列データを書き込まず、直接グラフ化するにはどうしたらよいでしょうか? 配列データの要素数がexcelの行と列の最大数(65536,256)?を超えてしまっているので、配列データから直接グラフ化したいと思っています。 よろしくお願いいたします。

  • エクセルのグラフについて教えてください。

    エクセルでグラフを作成したいのですが、データエリアが10列あり その中にデータを入れてグラフを作成したいのですが、10列中、データが5列で終わった場合、6列~10列が0なのでグラフが最下行になってしまいます。これを5列で終わる方法はないでしょうか?

  • 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の合計値の推移を見る為です。

  • エクセル ミリ秒表記の大量データをグラフX軸に

     今晩は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Excel2010 でございます。  A列に 2010/07/17 21:20:30:365 2010/07/17 21:20:30:522 2010/07/17 21:20:30:691 2010/07/17 21:20:30:855    :    : のようにミリ秒まで表記された 実験データが30万行ほどございます。 B列は0.100~3.000までの間の計測データになります。 A列をX軸にしたB列のグラフを作りたいのでございますが、A列の日時をX軸に表示させる事が出来ず悩んでおります。(1900/01/01から始まったりいたします。)  X軸のラベルは30個もあれば良いと考えております。(=1000行間隔ずつ程度?) なお2-Dグラフで入力できるデータ要素の数は1系列あたり最大32000個なので、10本の系列を横に並べて1本に見えるようにしております。  何か良い方法がございましたら是非お教えいただけないでしょうか。 もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

  • 【エクセル】グラフの作成方法を教えてください

    以下のデータから希望のグラフを作成したいのですが、うまく出来ません。。 教えてください、宜しくお願い致します。 (1)データ  A列   B列   C列   D列   E列 ・ ・ ・ ・           名前A  名前B  名前C ・ ・ ・ ・  日付   時刻 2016/1/22 15:00  1    2    3 2016/1/22 16:00  0    4    0 2016/1/22 17:00  2    5    1 (2)希望のグラフ 15:00  16:00 17:00     2016/1/22 2016/1/23 2016/24 ←約1ヶ月あります。 中のデータを件数で表示したいです。 グラフ形式は問いません(縦、折れ線など)

  • EXCELグラフ作成

    EXCELのグラフ作成について EXCELでグラフを作るとき、通常はA1からA10などに日付を入力し、B2からB10までにデータを入力しますが 元のデータが横に入力されている場合(B1、C1、D1・・・・K1に日付が入力されていて B2、C2、D2・・・・K2にデータが入力されている)場合どのようにグラフを作成すればよろしいでしょうか。ひとつづつデータを横から縦へ入力するにもデータ量が多すぎて困っています。せめて横に入力されているデータを縦にまとめて入力できればグラフは作成できるのですが・・・誰かいい方法を教えてください。よろしくおねがいします。

  • EXCELグラフ作成

    Excel2000を使用しています。 X軸に日付け項目 Y軸にデータ数量が入っています。 上記データよりグラフを作成しようとしたところ、 2-Dグラフで入力できる要素の数は、1系列あたり最大32000個です。のメッセージがでます。 グラフ作成するにはどうすればよいのですか? X軸の項目数が43000行分のデータがあります。 OFFICE2007の購入予定はありません。