• ベストアンサー

エクセルの散布図の近似式の係数をセルに取り込む

図の中で表現されている5次の式の係数(6個あります)を セルの中に書き出すマクロは可能でしょうか。可能であれば方法を ご教授ください。 さらに可能であれば、図から得られる近似式(図のグラフ線図を 右クリックして項目を設定することで得られる)の表示をVBAで可能に したいのですが。これもお分かりであればお願いします。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

係数を取り出すのは下記のようなコードでどうでしょうか。 使えるようなら、マクロに組み込んでみてください。 Sub test()   Dim str As String   Dim strv As Variant   Dim i As Integer   str = "y = 0.0452x5 - 8.6275x4 + 658.58x3 - 25133x2 + 4795.20x - 4E+0.6"   strv = Split(str, " ")   For i = 0 To UBound(strv)     If strv(i) Like "*E+*" Then       MsgBox strv(i)     Else       If Val(strv(i)) > 0 Then         MsgBox Val(strv(i))       End If     End If   Next i End Sub

catshoes01
質問者

お礼

ありがとうございます。ちょっと試してみます。 これが可能になると数値演算処理に現実味が・・・。 うまくうけば明後日あたりに報告します。

その他の回答 (2)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

セルへの取り込みは、グラフ上からでなく、LINEST関数を用いるのが良さそうです。参考URLは相当前のバージョンのXL対象ですが、おそらく最近のバージョンにも通用すると思います。 linest 多項式 エクセルで検索すると沢山ヒットするので、もっと分かりやすい解説記事があるかもしれません。

参考URL:
http://support.microsoft.com/kb/402428/ja
catshoes01
質問者

お礼

ありがとうございました。当方はグラフも表示する必要があるので(縦横目盛りを揃えて)このグラフを活かした手法をとりたいと思います。 Linest関数は便利そうですね。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

>5次の式の係数(6個あります)を >セルの中に書き出すマクロは可能でしょうか。 下記のようなコードで系列1の近似式を取り込めます。 Range("A1").Value = ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel.Text >この図から得られる近似式(図のグラフ線図を >右クリックして項目を設定することで得られる)の表示を >VBAで可能にしたいのですが 下記のようなコードで、近似曲線を追加して近似式を表示します。 ActiveChart.SeriesCollection(2).Trendlines.Add.Select With Selection   .Type = xlPolynomial   .Order = 2   .DisplayEquation = True End With

catshoes01
質問者

お礼

早速のご教授ありがとうございました。後半の部分はマクロで追尾してコードを組んでいるところでしたが、アドバイスの方が簡潔ですね。 可能であればrange"A1:A6"に式ではなくて係数を取り込みたいのですが。 (ここが質問の本質です。参考URLのグラフはデータによって変化します。その変化に対応できるようにしたいのです。6次の次数は一定です)

関連するQ&A

  • 多項式近似の係数をセルに抜き出したい。

    以前以下のような質問がありましたが、線形近似だけではなく、多項式近似の y = ax^2 + bx + c のa、b、cをセル上に抜き出したいのですが、関数で対応できるでしょうか? もし別のソフトで可能であれば、ソフト名を教えてください。 ====以下、過去の質問から引用====== エクセルのグラフには、近似曲線を表示する機能がありますが、 その近似曲線の係数を参照元にして、セル上の関数計算をしたいと 思っています。 例えば、線形近似ならば、  y= ○○○x + ●●● という式をグラフ上に表示できるわけですが、この係数の ○○○や●●●を他のセルから参照したいんです。 グラフの元になる数値を変更した場合、リンクして変わる ようにしたいので、手入力の転記では困るのです。 もし可能でしたら、ご教授ください。

  • エクセルで、グラフ上の近似曲線の係数を参照元にすることはできますか。

    エクセル2000を使っています。 エクセルのグラフには、近似曲線を表示する機能がありますが、 その近似曲線の係数を参照元にして、セル上の関数計算をしたいと 思っています。 例えば、線形近似ならば、  y= ○○○x + ●●● という式をグラフ上に表示できるわけですが、この係数の ○○○や●●●を他のセルから参照したいんです。 グラフの元になる数値を変更した場合、リンクして変わる ようにしたいので、手入力の転記では困るのです。 もし可能でしたら、ご教授ください。

  • エクセルVBAの散布図の近似曲線の数式の取得方法を知ってる人いませんか?

    エクセルのVBAで散布図を描いたときに近似曲線を追加のオプションでR二乗の式をグラフに表示させてるのですがこのR二乗の式の右辺の数字の値を適当なセルに書き出すにはどのようにVBAで書いたらよいのでしょうか?知っている人がいたら教えてください。

  • 符号付きの係数の出力(散布図近似式)

    QNo.4257168 にて質問したものです。 図の中で表現されている5次の式の係数(6個あります)を セルの中に書き出すマクロに関して 下記のコードを教えて頂いたのですが、係数は数字のみ出力され、-の符号は出力されません。どのようにしたら符号付きの係数の出力が可能になるでしょうか。(大変簡潔なコードで感心しています) Sub test()   Dim str As String   Dim strv As Variant   Dim i As Integer   str = "y = 0.0452x5 - 8.6275x4 + 658.58x3 - 25133x2 + 4795.20x - 4E+0.6"   strv = Split(str, " ")   For i = 0 To UBound(strv)     If strv(i) Like "*E+*" Then       MsgBox strv(i)     Else       If Val(strv(i)) > 0 Then         MsgBox Val(strv(i))       End If     End If   Next i

  • エクセル2007の近似式が合わない

    x y 0 20 20 130 30 150 40 170 50 200 60 210 70 215 80 220 140 240 というデータがあります。 これをグラフにして近似式を求めると、 4次近似が最もフィットしました。 その式はy=-1e-6x^4-0.087x^2+6.605x+21.22です。 しかし、この式にまたxを代入すると 以下のようになり、元データと明らかに異なる値となってしまいます。 x y 0 21.22 20 118.36 30 140.26 40 143.66 50 127.72 60 91.36 70 33.26 80 -48.14 140 -1143.44 画像に元データのグラフ(青)と代入したグラフ(緑)を並べました。 図のように明らかに違うグラフなのに近似式は一緒です。 どこで間違ったのでしょうか? ご回答よろしくおねがいします。

  • エクセルによるデータの近似式について

    (x,y)の組が100ぐらいあり、x→yを計算するための高次多項式近似を求める問題です。やり方は定型処理ですからエクセルに任せました。エクセルだと6次式まで対応してくれました。近似式による線(自動的にグラフで表示される)とプロットした点はほぼ満足できるものでした。そもそもデータ(x,y)はプロットしてみると滑らかですし、高次多項式による近似式で十分対応できるな、と思えるものです。 ところが、です。 この高次多項式の係数を表示して、その通りの関数で表計算してみてプロットすると、グラフの右方向(すなわちXが増えると)急激にデータから離れていくのです。不思議なのはその式で計算されているはずの近似式の線(自動で出力された線)からも離れていくのです。一方、Xが小さいところではしっかり一致しています。 原因として考えられるのは、多項式の高次項の係数の桁が大雑把ということがあります。2e-9*x^6+3e-6*x^5......0.0123*x+23.194 というような感じの多項式です。x^6の項の係数が2e-9というのは有効桁数が小さすぎるように思います。これが原因かなと思っているのですが。いかがでしょうか。また、それが原因ならどうやって修正すればよいでしょうか。ほかに原因と対策がありましたら教えて頂きたいのですが。

  • エクセル 散布図が表示されない

    エクセル2003にて、ある表のデータの散布図と近似曲線(線形)10項目が作成されています。 その表にもう10項目のデータを追加したく、表を拡大して、グラフをコピーで二つにしました。 グラフの「元のデータ」で参照先などを変更しましたが、コピーしたグラフには、散布図がプロットされません。参照先などは、間違っていないのですが、どうしてプロットされないのか解りません。 教えて下さい。

  • エクセル【バブル図】近似曲線の書き方について

    エクセルでのバブル図の近似曲線の書き方について教えてください。 X・Y・バブルのサイズの3個の項目を入れて、バブル図を書きました。 このばぶるに対して、右クリックから近似曲線の追加で近似曲線をかいたのですが、バブルのサイズがうまく反映されておりません。具体的なエクセルを画像添付します・この中で黒の線がエクセルの近似曲線になりますが、バブルのサイズが考慮されているならば、赤の線(手書きのオートシェイプ)のような形になるかと思います。バブル図の近似曲線にはバブルサイズは反映されないのでしょうか。また反映させる方法はないでしょうか。よろしくお願いします。

  • 対数近似グラフの決定係数R2算出関数の求め方

    エクセルの近似曲線の内、対数近似に対する決定係数R2を関数で求める方法をご教授ください。 直線・多項式・累乗・指数に関する決定係数R2を求める関数式については情報を探し出せたのですが、対数近似グラフの決定係数R2を求める式だけが探し出せません。 よろしくお願いいたします。

  • EXCELの近似曲線の対数近似の式

    EXCELのグラフを作る機能で対数近似を選択して引くことが出来る近似曲線の式 について教えてほしいのです。 対数近似の式y=aln(x)+bの係数aとbを算出して、曲線と実際のデータとの 乖離している差をエクセルの関数を使って算出したいのです。 おかしな条件かもしれませんが、yの値は(-)負の値もとりますし、バラバラ です。 なんとなく、わかる範囲で計算したのですが、yが負の値だとエラーがでて 計算してくれなくて・・EXCELのグラフの機能であれば、問題なくグラフ化される ので、私の計算式が間違っているはずです。 例えば以下の数値だとy = -0.81387583Ln(x) + 1.05061096 です。 *小数点以下2桁以下は四捨五入になっていますので細かくはあわないかも しれませんが・・・。 X={1,2,3,・・・・10} y={1.21,2.07,-1.10,-1.55,-0.58,-0.01,-0.73,-0.67,-0.30,-0.12} yが毎回変わるため、グラフからカット&ペーストするのは手間がかかります のでしたくありません。m(__)m 算数も数学も良くわからないものですが、どなたかご教授いただければ幸いです。

専門家に質問してみよう