• ベストアンサー

エクセルデータベースからグラフ作成

お伺いいたします。 ある強度の管理図を作成したいのですが sheets1にデータ  A  、B   、C  1 No、日付、強度、 2 1、2/1、21、 3 2、2/2 22、 4 3、2/3 21.5、 . . と数100行のデータがありますが ロット単位(30個)で管理図1枚目、2枚目と順次、 表示したいのですが、どの様に考えればよいのでしょうか? エクセル関数だけで出来れば、ベターなのですが 簡易なVBAなら多少理解できますが よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。ご質問の意味を微妙にカン違いしているかもしれませんが、 『管理図』=グラフの事だとして、可変範囲のグラフを作成したいという意味であれば、以下。 作業エリアとしてD1:D2セルを使います。 D1:=(D2-1)*30 D2:1 [Ctrl]+[F3]の[名前定義]で 『date』=OFFSET($B$2,$D$1,,30,) 『data』=OFFSET($C$2,$D$1,,30,) グラフを作成し、その系列をクリックした時に表示される数式バーに =SERIES(Sheet1!$C$1,Sheet1!date,Sheet1!data,1) これで、D2セルに 1...2...と入力する度に範囲が切り替わります。 スクロールバーなどを配置したりすると使い易いかもしれません。 上の作業をマクロで作ると Sub sample() '可変範囲グラフ作成サンプル。1回のみの実行   Dim s As String   Dim n As Long   Dim r As Range      With ActiveSheet 'Sheets("sheet1")     s = .Name     n = WorksheetFunction.Floor(.Range("A1").End(xlDown).Row, 30)     Set r = .Range("D2")     With .ScrollBars.Add(r.Left, r.Top, r.Width, r.Height)       .Value = 0       .Min = 0       .Max = n       .SmallChange = 30       .LargeChange = 30       .LinkedCell = "D1"     End With     .Names.Add "date", "=OFFSET($B$2,$D$1,,30,)"     .Names.Add "data", "=OFFSET($C$2,$D$1,,30,)"     With .ChartObjects.Add(.Range("E1").Left, 0, 500, 300).Chart       .ChartType = xlLine       .SeriesCollection.NewSeries.FormulaR1C1 = _         "=SERIES(" & s & "!R1C3," & s & "!date," & s & "!data,1)"       .HasTitle = False     End With   End With   Set r = Nothing End Sub

acenoh
質問者

お礼

ありがとうございます。 以下のように自己解決いたしました。 Sheet1のデータベースと グラフのある管理図シートを用意 n = 何ロット目かをグラフシートのセルA1に入れた後 シート上に配置したコマンドボタン1を押し SUB コマンドボタン1() n = Sheets("管理図シート").Range("a1") ' Sheets("データシート").Select Range(Cells(30 * (n - 1) + 2, 1), Cells(30 * n + 1, 4)).Select Selection.Copy Range("AA2").Select ActiveSheet.Paste End Sub 目的のデータを データベースシートのセルAA2:AD31にコピーし そのデータをグラフシートのグラフに反映させました。 >『管理図』=グラフの事だとして、可変範囲のグラフを作成したいという >意味であれば、以下。 その通りです 早速、試させていただきます

関連するQ&A

  • Excelでのグラフ作成について

    私はあるデータをExcelで管理しています。それを折れ線グラフにしようと思います。私のデータは6項目の数値が横に並び、その右横に日付を入れてあります。同じ項目のデータが月単位で累積されるので、それらが下に伸びていく形を採っています。しかしグラフウィザードだと、こうして総てのものが横に並んでいると、日付を項目名としてY軸にすることができませんでした。打ち込んだデータを90度回転させた形で並べ替えることができればよいのでしょうが、残念ながら、それを一発で変換することができません。お願いします。どなたか、Excelのグラフウィザードで、私のような表を折れ線グラフにするよい方法を教えてください。

  • エクセルVBAでデータベースを作成しています。

    エクセルVBAでデータベースを作成しています。 A列には日付データが日付が古い順に上から入っています。 B列以降は出荷数や次回納品日などの付属データが入っています。 A列(日付) B列(出荷数) 7/1     10 7/15      20 7/31     5 8/2     10 8/4     25 8/23    10 8/30    20 9/2     15 9/20    21 9/30     3 出荷データを更新する度に、最終行の次の行に新しいデータが追加されます。 上記データベースは3か月分のデータだけでも行数が3万近くになるため、エクセルの 限界行数に達する前に、何か手を打ちたいのです。 例えば、予め6万行を限界行数に決めておき、データ更新する際に、データベースの限界行数までの残り行数と、追加するデータの行数を比較して、後者が大きいときには、データ、つまりデータベースの行を消去する。というマクロを組みたいと考えています。上記の例で説明すると、10月分のデータを追加しようとして限界行数に達することが分かった場合、7月に該当する行を一括して消去する。という流れです。 限界行数に達したときに、MsgBoxで「1か月分のデータを削除してよろしいですか?」→OKのときに処理を実行するという流れで行いたいのですが、何かよいアイデアがあれば教えてください。

  • AccessのデータをExcelに貼り付け

    AccessのデータをフィルターしてExcelに貼り付けるには、AccessとExcelのどちらのVBAを使えば良いでしょうか。 前提:Accessに10フィールド100行くらいのデータがあり、Excelに氏名と日付を入力する欄がある。 処理:AccessのデータをExcelに入力した氏名と日付でフィルター(AND検索)→フィルターしたままExcelに貼り付け→そのデータをExcelの関数とVBAで処理(複雑な関数なのでAccessで処理できない)

  • エクセルでのデータベース作成

    今,顧客の訪問日付の管理をしようと思っています。顧客の名前(A1),日付(B1)に入力し,次に訪問した日をC1に入力していくという方法で,データを作成しようと思っています。 そこで問題は,このデータを基に訪問日付の古い顧客を選び出したいのです。フィルタを使用してもなかなかうまくいかず悩んでいます。 Accessは使ったことがなく,エクセルでどうにかならないものか考えています。何か良い方法はありますか?また、Accessを使用するとすれば,どうすれば良いでしょうか。 漠然とした質問で申し訳ありませんが,よろしくお願いします。

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

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

  • EXCELの検索方法について教えて下さい。

    EXCELの検索方法について教えて下さい。 A列には日付(1月1日から12月31日まで)が記載されていて、1行目に品名を記載しています。 B2からデータが入っているのですが、品名と日付を入力したら中のデータが返ってくる方法がありますか。 多少ならVBA、マクロ、関数など使えるつもりです。 使う人は素人なので、出来るだけコマンドボタンなどを使って、簡単に検索または数値を返す方法があれば助かります。 宜しくお願いします。

  • EXCEL2010で動的なグラフを作りたい。

    行が増えていく表(図1)があり、この表を折れ線グラフにしておき行が増えて行った場合でもグラフが動的に行を認識してグラフの設定を触らずしてグラフが更新されていくようにしたいです。 図1   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF 1商品名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2 りんご 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3 いちご 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 4 すいか 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 5 カボチャ 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 • • • ※ヘッダー行は、部署名、日付(1~31日)で列はこれ以上増えません。 ※A列は商品名で動的に増減します。 ※B列~AF列は日付毎に集計したデータを入れて行きます。 SERIES関数、OFFSET関数では対応ができず、EXCEL VBAでないとできなさそうと思っていますがVBAがまったく分からず••詳しい方お知恵を拝借させてください。

  • エクセルで日付単位のグラフを時間単位にしたい

    エクセルの質問です。 パチンコの収支をエクセルで記録しているのですが1つ悩みがあります。 現在の「収支データ」のシートはこうなっています。 データ単位(行) : 日付 データ項目(列) : 日付、収支、遊技時間 このデータを元に、横軸を日付ではなく遊技時間にしたグラフを作りたいのです。 (例1)を参照下さい。 何か良い方法はないでしょうか? (例1) ●収支データ 日付  収支  遊技時間 ------------------------- 1月1日 +2000円 2時間 1月2日 -3000円 5時間 1月3日 -1000円 1時間 ↓  ●グラフにしたいデータ(行を時間単位にしたい) 収支  ------ +1000 +1000 -600 -600 -600 -600 -600 -1000 よろしくお願いいたします。

  • エクセルの関数、VBAの使い分け

    エクセルでデータを管理しているのですが現在5つのシートで各シートが10列7000行程度データが入っていてファイルサイズが10MBを超えています。 データの行数は今後も増えていく予定で、最大行(約65000行)まで使いたいと思っているのですが、そうなるとファイルサイズが100Mぐらいになってしまいそうなのですが使用上問題はないでしょうか? 関数を多用しているのですがそれをVBAに置き換えるとファイルサイズを小さく出来るでしょうか?もし、VBAに変えた場合に使用上、関数に比べ不便が出るようなことはないでしょうか?

  • エクセルのデータベース関数を教えてください。

    エクセルのデータベース関数を教えてください。 自分で考える能力が無いものですみません(._.)。 テーマはゴルフのスコア分析とお考え下さい。1行目が各ホールのパーの数字、2行目がそれに対応するスコアが入っているというデータがあります。 Par---- 4 4 3 5 4 ・・・ Score-- 5 4 5 4 4 ・・・ このような感じです。 このデータで、Parが4のスコアだけを集計する方法が分かりません。 DSUMでは、列の見出しが無いのでうまく作動してくれません。どうも、行と列が逆のようです。1ラウンドのデータが2行に分かれていて、1行目がパー、2行目がスコアという形になっているので、このデータの行と列を入れ替えるという作業は避けたいのです。 エクセル関数初心者にご指導をよろしくお願いします。

専門家に質問してみよう