• ベストアンサー

エクセル(EXCEL)で、データを3行置きに使ってグラフを書きたい

1/30秒ごとに取った時系列のデータを使って グラフを書こうとしています。しかし、データが大きすぎて 手持ちのグラフソフトで上手く扱えません。 このため、エクセルを使ってデータを小さくしようと頑張っています。 (エクセルでも警告が出ますが) まずは、データを3行置き(例えば)に使って1/10毎のデータに したいのです。今までのところ、なかなか上手く行っていません。 指定範囲をドラッグしても上手く2,5,8,11,...とならなかったりして 何か関数を使えばいいのかとも思うんですが、いろいろな仕事が重なり 疲れてしまって頭が働きません。手持ちのマニュアルも英語のものしかなく 日本語で質問できるここに来ました。 3万行前後の時系列のデータが2つ、という状況です。 コンピュータはG3マック、ソフトはOffice 2001 エクセルです。 他のソフトとして、GraphPad Prism3, kaleidaGraph, StatViewが 使えます(使い方は別として)。

  • Yui-s
  • お礼率90% (45/50)

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

  • ベストアンサー
  • SNAPPER
  • ベストアンサー率44% (151/337)
回答No.1

もっとスマートな方法があると思いますが、とりあえず思いつく範囲で。(私の使っているのはExcel2000英語版なのでコマンドは英語のままで書きますが、わかりますよね?) データが A1 1 A2 2 ・ ・ A10 10 になっているとして、 B1のセルで 関数"=IF(MOD(ROW(),3)=0,A1)"を使い、B2からB10までコピペ。すると3で割り切れるRow No.の数値は残り、それ以外のセルは"FALSE"の表示になります。このままでは"FALSE"が消せないので、コピー→特殊ペーストでvalueのみのペーストにして隣のcolumn "C"へ移す。C column全体を選択しておいて"Find"→"Replace All"でFALSEを空白に変換(Replace withの欄を空白にしたままで実行)すると消えてくれます。これと時間データの間でグラフを書けば間の二つのデータをスキップしたグラフを書いてくれます。

Yui-s
質問者

お礼

SNAPPER さん、お答え大変ありがとうございました。 エクセル上でグラフを書くところまで、この方法でできました。 ただ、このグラフのMarkerを消して、データを線で結ぶ設定をすると グラフが消えてしまいました。 空欄を含めて行数が1/3になってもいないので、手持ちのグラフソフトも 使えませんでした。 しかしながら、お答え本当にありがとうございました。 この方法は別のところでぜひ応用させていただきたいです! m(__)m

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

例えば、1行目が表題として、データの横の列に1からの連番を振ります。これをC列としてD列に =MOD(C2,3) として、データ数分コピーします。 後はオートフィルタでD列で『2』を指定して、抽出結果を他シートにコピーしてグラフを書いてみてはどうでしょうか。 元のデータはCSVファイル?テキストファイル?のような気がしますが、もしそうなら、データ数が多いと全部読み込めないことがあります。 私は、Excelに読み込んでデータの間引きを行うのではなく、データを間引きしてExcelに読み込むようにしています。 下記は処理例です。ただ、windowsのExcelVBAです。macで動くかは不明です。 ご参考に。 Sub mabikiTest()   Dim srcFileName As String '元ファイル名   Dim desFileName As String '間引き後ファイル名   Dim dt As String 'レコードデータ   Dim cot As Long 'カウンタ   srcFileName = "C:\My Documents\・・・\・・・.txt" '元ファイル名を指定   desFileName = "C:\My Documents\・・・\・・・.txt" '作成する間引き後ファイル名を指定   Open srcFileName For Input As #1 '読み込み用の元ファイルを開く   Open desFileName For Output As #2 '間引きファイルを書き出し用に開く   '読み込み用ファイルのデータが終わるまで読み込む   While Not EOF(1)     'カンマがあるかもしれないので1レコード単位で読み込む     Line Input #1, dt       'レコード数をカウント       cot = cot + 1       '2から3飛びで書き出し用ファイルに書く。カウンタを3で割った余りで判断       If cot Mod 3 = 2 Then         Print #2, dt       End If   Wend   Close End Sub

Yui-s
質問者

お礼

nishi6 さん、お答えありがとうございます。 実は、ちょっとの差で解決してしまったところです。 但し、教えていただいた方法は明日にでも試してみたいと思います。 が、理解できるかどうか…。 簡単な表計算しかできないと思いこんでいるので壁は厚そうです。 私の解決方法は何だかあまりに芸がなかったというか…。

  • SNAPPER
  • ベストアンサー率44% (151/337)
回答No.2

そうですか、残念。 空白行をつめるやり方はわかりません。どなたかマクロの出来る方の回答を待ちましょう。ちなみに私のコンピュータ(Win98、メモリ128 MB)で試しにやってみたところ、データ縮小などしなくとも3万行の時系列データ2本のグラフがExcel2000で難なく描けました(どんな書式でも)。 メモリがいくらか知りませんが、G3だったら同じ事ができないことはないと思うのですが。ダメモトで 1)Excelの割り当てメモリを増やす 2)データのみでなく横軸の時間値の方も2行飛ばし(残す場所をデータの方と一致させて)にする 3)支障がなければ縮小度を上げる(5行に1行とか) をやってみてください。あと周囲にWindows機(高スペックのもの)を持っている人がいればちょっと借りてやらしてもらっては?Excelのデータは互換性があるし、多分これなら出来ると思いますよ。

Yui-s
質問者

お礼

SNAPPER さん、再度ご返答ありがとうございます。 実は、何とか答えを見いだしましたので報告させていただきます。 列Aが時間だとして、どこか(例えば列B)に 「 A2, A5, A8,...」という別の列を作ります。 (A2, A5と入力・ドラッグするなどして) そうすると、「=indirect(B2), =indirect(B5),...」という列が、 求めていた新しい時間になっていました。 (1つ入力後、残りはコピー) 本当に、ありがとうございました。エクセルで3万行は扱えますよね。 グラフも使っているのですが、慣れの問題もあって、解析の用途にだけ です。ポスター用に他のソフト(Prism)などを使いたかったのですが、 3万行が扱えず、エクセルで量を減らせないか模索していたわけです。

関連するQ&A

  • Excelで複数行のデータを1つのグラフに

    Excel2002(officeXP)を使っています。それで80000点のデータを1つの折れ線グラフに表示したいのですが、32000を超えると複数行にして系列を分けてください。とコメントされてます。それで複数行に分けて系列を分けたのですが、そうすると番号順にグラフを描画するため系列が重なってしまいます。 80000点すべてでなくても、32000点以上のデータを1つのグラフに表示する方法をご存知の方は教えてください。

  • グラフ上でデータの変更ができるEXCEL以外のソフトを探しています

    お世話になります。 仕事柄、データをEXCELで整理する必要があるのですが、その際にグラフ上のデータ系列をドラッグしてセルの値を変更する作業を行っていました。 EXCEL2003までは問題なかったのですが、EXCEL2007になってからこの「グラフ上の系列をドラッグする」機能が失われてしまい、困っています。 会社の都合上、EXCEL2003がインストールされたパソコンがなくなってしまい、また、ソフトもない状況なので、EXCELの2003と2007を共存させることもできない状況です。 (今月からすべてのPCが新しいものに入れ替わってしまった状況なのです) そこで、上記のような「グラフ上で値を変更できる」ようなEXCEL以外のソフトを探しているのですが、何か良いものはございますでしょうか。 有償・無償は問いません。 データをグラフにして評価する際は、散布図を主に使っています。 データー数は1アイテムで約100~200個程度です。 アイテムによって傾向が違うため、近似曲線を用いることもできません。 誠に恐れ入りますが、ご教授いただきたくよろしくお願いいたします。

  • 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で折れ線グラフを作る Sheet1で3000個の数字をドラッグして、折れ線グラフができました。 その後、Sheet2で同様に3000個ぐらいの数字をドラッグしてグラフを作ろうとしたらエラーになりました。 エラーメッセージは「使用可能なデータ系列の数は1グラフあたり最大255個です。」 そこで質問です。 255を超える数字の折れ線グラフはできないのでしょうか?そしてどのようにしたらできるのでしょうか? Sheet1ではなぜできたのでしょうか? よろしくお願いします。

  • Excel 折れ線グラフのデータ描画時間を改善したい

    Excel 折れ線グラフのデータ描画時間を改善したい Excel 2003を使用しています。 15000行20列ほどのデータを折れ線グラフとして表示していますが 系列が20と、データ数が膨大なためグラフの描画時間がかかってしまいます。 グラフデータを図面化するなどといった方法で、 なんとか描画時間を少なくしてExcelオープン時の負担を軽くしたいのです。 よい方法をご存知の方は教えてください。 よろしくお願いします。

  • エクセルデータをVB2008のMSChartでグラフ化する方法を教えてください!!

    はじめまして。VB初心者です。 エクセルからデータを取り出し、VB2008のMSChartコントロールを使って、マーカー無しの平滑線の散布図を作ろうと思っています。まだVB初心者で、プログラム作るのに苦労しています(汗)。エクセルから下記のようにランダムにデータを取り出して表示する方法わかる方いましたらご教示お願いします。(サンプルコードありましたら助かります!!) ★VB2008のMSChartコントロールで下記のように表示したいです!! (1)エクセルにあるデータは、A1からデータがはじまっているのではなく、AFの3からはじまり、3,6,9,12(行)に系列ごとにデータが入力されます(下記のエクセルデータ例参考)。 (2)VBでの表示は下記のエクセルで作ったグラフのようにしたいです!!データはエクセルデータの行に入力されている黄色の部分です。(X軸目盛りは1単位となります)、 (3)系列はエクセルの行となり、表示は系列をすべて重ねて表示します。(系列の数は列のセルの最後まである場合があります) 参考にエクセルでグラフ作りましたのでみて頂ければ幸いです

  • エクセルでこんなグラフが描けるのですか。

    エクセル初心者の質問ですみませんが、エクセルでこのようなグラフが描けるのでしょうか。 よろしくお願いいたします。 ○データ系列(?)が3あるグラフを描きたいのです。  ■系列A:縦棒グラフです。(例えばその月の総売上計画額)  ■系列B:積み上げグラフの下側です。(例えばその月の実際の家電う売上額)  ■系列b:積み上げグラフの上側です。(例えばその月の実際のカメラ売上額)  ■系列C:折れ線グラフです。(例えばB/(B+b)など) ○12ヶ月分の作成という感じで、横軸が時系列になります。 どうしても、3ツの種類のグラフをエクセルでは作成できないのですが、“できる”“できない”ということだけでも、あるいはヒントだけでも結構ですので、教えていただけないでしょうか。 よろしくお願いいたします。

  • エクセル2007のグラフにデータを追加したいのですが

    これまでエクセル2000を使っていて、日々増加するデータをグラフに追加反映させるには、その追加セルをグラフ上にドラッグ・ドロップしてました。 ところがエクセル2007ではこの方法が使えません。旧エクセルのように簡単にグラフにデータを追加する方法はないでしょうか。 形式を旧エクセルにしてもダメなようです。 よろしくお願いします。

  • Excelのグラフ、データ範囲にて

    只今Excelのグラフを使っているのですが、問題があります。 グラフのデータ範囲を可変にしたいと思っています。 グラフの基となるデータは以下のようになります。       |  1 |  2 |  3 |  4 ----------------------------------------------- 9/11~9/17 |    | 10 | 30 | 40 9/18~9/25 | 20 |    |    | 50 9/26~10/2 |    |    | 40 | 20 系列を1、2、3、4とします。 グラフの値は全て埋まるとは限りません。 全て空白もあれば、飛び飛びに値が入っていることもあります。 日付の方はこれ以上項目は触れることはないですが、系列の方はデータが増えることがもあれば、減ることもあります。 以上のような機能を網羅するようなグラフを作りたいのですが、どのようにしたら良いでしょうか?? この機能をつける為にマクロを使用しても使用しなくても構いません。 宜しくお願いします。

  • エクセルグラフ 横軸データの入れ替え

    変なタイトルでわかりづらくて大変申し訳ありませんが、 エクセルのグラフで、 縦の棒グラフを使って年間別の売上を作っております。 横軸が、(左)新しい年 ⇒⇒⇒(右)古い年 になってしまいます。 その逆の (左)古い年 ⇒⇒⇒(右)新しい年 にしたいのですが、 (1)データをいじらず、逆にすることは出来ますか? (例えば、系列の順序を変更する時に データ系列の書式設定→系列の順序 ように変更する場所があれば。) (2)やはり、元のデータを並び替えなければならないのでしょうか? 因みに、エクセルのバージョンは、EXCEL 2003 です。 宜しくお願い致します。

専門家に質問してみよう