- ベストアンサー
エクセルの散布図の近似式の係数をセルに取り込む
図の中で表現されている5次の式の係数(6個あります)を セルの中に書き出すマクロは可能でしょうか。可能であれば方法を ご教授ください。 さらに可能であれば、図から得られる近似式(図のグラフ線図を 右クリックして項目を設定することで得られる)の表示をVBAで可能に したいのですが。これもお分かりであればお願いします。
- みんなの回答 (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
その他の回答 (2)
- mitarashi
- ベストアンサー率59% (574/965)
セルへの取り込みは、グラフ上からでなく、LINEST関数を用いるのが良さそうです。参考URLは相当前のバージョンのXL対象ですが、おそらく最近のバージョンにも通用すると思います。 linest 多項式 エクセルで検索すると沢山ヒットするので、もっと分かりやすい解説記事があるかもしれません。
お礼
ありがとうございました。当方はグラフも表示する必要があるので(縦横目盛りを揃えて)このグラフを活かした手法をとりたいと思います。 Linest関数は便利そうですね。
- xls88
- ベストアンサー率56% (669/1189)
>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
お礼
早速のご教授ありがとうございました。後半の部分はマクロで追尾してコードを組んでいるところでしたが、アドバイスの方が簡潔ですね。 可能であればrange"A1:A6"に式ではなくて係数を取り込みたいのですが。 (ここが質問の本質です。参考URLのグラフはデータによって変化します。その変化に対応できるようにしたいのです。6次の次数は一定です)
お礼
ありがとうございます。ちょっと試してみます。 これが可能になると数値演算処理に現実味が・・・。 うまくうけば明後日あたりに報告します。