Excelを利用したグラフ作成方法と小数点以下の桁数の問題

このQ&Aのポイント
  • Windows VistaのExcel2007を使用して、A列に年月日、B列に値を入力し、グラフを作成しましたが、特定の日付を代入すると正しい値にならず、異なる値が表示されます。どのように対処すれば良いでしょうか。
  • さらに、式によって計算される値が小数点以下の桁数によって異なることがわかりました。小数点以下の桁数が最適なのは何桁なのか、一発で分かる方法はありますか。
  • Excelを利用したグラフ作成の際に発生する問題について、Windows VistaのExcel2007を使用してA列に年月日を、B列に値を入力し、グラフを作成しましたが、特定の日付を代入すると正しい値にならず、異なる値が表示されます。また、式によって計算される値が小数点以下の桁数によって異なることもわかりました。どのように対処すれば良いでしょうか。
回答を見る
  • ベストアンサー

Excelを利用したグラフについて質問

Windows Vista Excel2007です。 下記に示すように、A列には年月日を、B列には値を入力し、 グラフを作成しました。(添付図を参照ください) A列         B列 2013/5/15    15096.03 2013/5/24    14612.45 2013/5/31    13774.54 2013/6/20    13014.58 2013/7/19    14589.91 2013/8/22    13365.17 2013/9/11    14425.07 2013/9/20    14742.42 質問 1.グラフの式のXに2013/5/15(=41409:シリアル)を代入すると  15096.03にはならず、1.05712E+21となります。  小数点以下の桁数を、5,8,9,10,20,25桁のそれぞれの式に  2013/5/15(=41409:シリアル)を代入しましたが、それらしい値にはなりません。  どのように対処すれば宜しいのでしょうか。 2.仮に、小数点以下の桁数が問題だとした場合、何桁が最適なのかを一発で分かる  方法がありますか。 ちなみに、式はy=-2E-07x^6+0.0473x^5-4903.7x^4+3E+08x^3-8E+12x^2+1E+17x-1E+21 です。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

#1です。 私は、この質問には回答したのでこれで終わりです。 「お礼」のコードは全然CDecを使っていないから、期待する結果にならないのは当然です。 「お礼」や{補足」で質問内容を拡大していくルールにはなっていないと思います。 「お礼」にある、 コードを書いてれというのは、また別の依頼で、本質問にはないのだから、改めて質問を立てましょう。 私が書くとは限りませんし、誰かがコードを書いてくれるかどうかもわかりませんが。

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

1. EXCELの精度は15桁です。15桁を超える精度では計算できません。質問での数値の計算は20桁以上になるので、下から6~7桁は無視されて、0で埋められます。15096.03は整数部5桁しかありませんから、20桁以上の計算では引っかかってきません。したがって、質問者の期待する計算は、このままではEXCELでは計算できません。 2. グラフから6次の近似式を求めたものと思いますが、係数の桁数が足りません。仮に20桁以上の精度で計算ができるとしてもこの係数では、期待する計算はできません。 3. グラフに表示の数式を選んで右クリック、「データラベルの書式設定」―「表示設定」から、「指数」、「15桁」にするなど、適当な表示形式を選びましょう。なお、ここで最大の精度を選んでも15桁までなので、質問の計算の精度は出ません。 4. VBAで、CDec関数を使って、回帰式を求めたり計算をしたりすれば、これは29桁くらいの精度なので、期待する結果を得られるでしょう。 また、EXCELで他の解決策があるかもしれませんが・・・・・・たぶん期待薄。

kakehasi
質問者

お礼

okormazd さん、ありがとうございます。 VBAで、CDec関数を使って、……期待する結果を得られるでしょう。 下記かなと思ってやってみましたが、 Sub CDecの使い方() Dim x As Variant Dim y As Variant x = 41409 y = -1.9005363811192E-07 * x ^ 6 + 4.72938013427015E-02 * x ^ 5 _ - 4903.66606712912 * x ^ 4 + 271166572.537445 * x ^ 3 _ - 8434781057218.07 * x ^ 2 + 1.39929755570149E+17 * x - 9.67241599532183E+20 MsgBox y End Sub 結果は違うようです。 VBAのプロセジャーを書いていただけると幸いです。 宜しくお願いいたします。

関連するQ&A

  • エクセルの補助円グラフについて

    Excel2003を使用しています。 パーセンテージのデータラベルを表示させた補助円グラフを作ったのですが、 左の円グラフの「他」は24.4%…なのに 右の補助円グラフは「値A」7.0%「値B」5.0%「値C」4.7%「値D」7.8%と 合計しても「他」の24.4%になりません。 小数点を増やして計算を何回かしてみたのですが、 小数点以下が奇数桁の時は値が一致せず、偶数桁の時に一致する傾向があるようです。 これは何故でしょうか?

  • エクセルのグラフ作成で教えてください

    エクセル 2010でのグラフ 作成で困っております。 できれば、大至急教えて下さる方がおられましたら、とても助かります。 グラフの散布図を作成したいのですが、うまくグラフに表示されません。数値は  X軸・・・0.98、0.95、0.86、0.57 → のような、1以下の小数点2ケタ数ばかり、最小値0.54  Y軸・・・5.4、 4,7、 6,7、4,5→ のような、1以上の小数点一桁 最大値10、です。  入力は、半角数字でしております。 範囲選択→挿入→散布図、と、買い求めたガイドブックの  通りにやっているのですが、グラフには、タイトルの欄にずらっと数値が並び、グラフになりません。  どうすれば散布図になるでしょう。 どうぞ、よろしくお願いします。

  • エクセルの関数

    セルAとセルBに小数点の値があります。 セルAとセルBどちらか、 (1)0.2以下の値がある場合には、セルAかセルBの値の大きい方を別の列のセルCに入力。 (2)両方とも0.2以上の時には、上記とはまた別の列のセルDに【セルA×セルB】の値を入力。(小数点2桁まで表示、以下四捨五入) (1)と(2)で表示されたものを、またまた別の列のセルEにまとめて、 (1)は 値×5(小数点切り上げ) (2)は 値×25(小数点切り上げ) というものを作りたいのです。 IFとANDとROUNDUPなど使ってやってみましたが、わけがわからなくなってしまったので、 どなたか教えていただけたらありがたいです。

  • Excel グラフの単位が1000%になってしまう

    Excelで棒グラフを作ったら、軸の表示が10%、20%・・・のはずが1000%、2000%・・・というふうに2桁多いのです。 軸の表示形式は「パーセンテージ」、小数点以下の桁数は「0」に設定しています。他のパターンのグラフでは、軸を同じように設定して、ちゃんと10%、20%・・・となっています。 どこで調整すればよいのでしょう??

  • Excelについて(グラフ作成)

    Excelでグラフを作成するときに、 例えば、x軸をA列の値、y軸をB列の値にしたいのなら2列を選択して グラフは簡単にできるのですが、それでは x軸をA列の値、y軸はある関数の値(例えばB1に入っているy=2*xのyの値)にしたいときはどうすれば良いのでしょうか? 分りやすくいうと、A列には1行目から 0 、2 、 4 、 6 、 8 、 10 、 12 ・・・・・ B1に、y = 2 * xが入っていてここから x=0 のとき y=0 x=2 のとき y=4 x=4 のとき y=8 x=6 のとき y=12 x=8 のとき y=16 x=10 のとき y=20 よりグラフを作りたいのです。 よろしくお願いします。

  • Excel 2000 四捨五入について教えて下さい

    セルの書式設定で 表示形式        通貨 小数点以下の桁数    0 としてます。 そうすると、四捨五入されてしまうのですが、止める方法はありますか。 やりたいこと・・・・・・  A列         B列 整数部       小数点以下 A列に小数混じりの数字を記入するとB列に少数以下の文字を返す。 A列は整数部のみを表示する。 A列に25.5を記述すると A | B 25 | 5 B列関数  =IF(A6="","",IF((A6-INT(A6))*10=0,"",(A6-INT(A6))*10)) A列には関数は入れてません。 すみません。宜しくお願いします。 ついでに・・・・・ 623,154,241.5 上の値を桁区切りでセル別に表示させることは可能でしょうか?? A | B | C | D | 623 | 154 | 241 | 5 | の様にさせたい。 無理なら良いです。 なるべくVBAを使用したくありません。 最悪は使用してみようと思いますが。 宜しくお願いします。

  • エクセルで、、、桁数を自分で決めたい

    例えば、 A    B 279   235 455   145 448   361 288   288 379   216 っと、ある場合 A/BをC列に実行したら桁数がばらばらになって表示されました 288/288も1ではなくて、1.000と表示したいのですが 小数点三桁まで表示する命令はどうすればいいのですか?

  • EXCEL 小数点以下の桁数を条件によって変えるには

    G列の書式設定を数値、小数点以下0桁に設定してあります D列にある特定の文字が入力された時だけ、小数点以下の桁数を1桁にしたいのですが、どのようにすればよいでしょうか? それと小数点以下0桁、1桁の数字の桁位置をそろえることはできますか

  • EXCELの計算式(%に応じて点数を割り振る)

    以下のようなEXCELのセルがあります。 A列 任意の数字 B列 任意の数字 C列 任意の数字 D列 C列÷(A列-B列)の結果を、小数点2ケタ以下切り捨て E列 D列の数字を10倍した値 この時、D列、E列にはどのような数式が入るのでしょうか? 関数がよくわかりません。 恐れ入りますが教えて頂けますでしょうか。

  • 3点を通る二次関数のグラフの求め方

    3点を通る二次関数の式を求めたいです。 条件は以下の通りです。 ・(3,3)を通る ・軸は(0,y) ・(a,b)を通る ただし(-3≧a≧3)(b≧0) 取得された(a,b)の座標を代入すればグラフ表示されるようにしたいです。 どのような式になりますか? 以下試しましたがうまくいきませんでした。 頂点(0,z),点(3,3)を通る二次関数 y=ax^(2)+z a=-1/9z+1/3 よって y=(-1/9z+1/3)x^(2)+z ”y=(-1/9z+1/3)x^(2)+z”この式に (1.5,1.5)を通る放物線を求めようと代入してzを求め、 z=-1 としてY=4/9x^(2)-1をだしましたが(3,3)を通りませんでした。 よろしくお願いいたします。