2017-02-15 6 views
0

私の問題は、Excelでデータを処理するプロセスです。このプロセスはチャートを生成し、チャートの2つのポイントを選択することができます。グラフ上の2点間のライン推定VBA Excel

私は選択したポイントのインデックスをピックアップし、それらを変数に格納しています。私は、これらの2点間の回帰直線の直接係数を取り戻すために、線形回帰直線を作ることが可能かどうかを知りたいと思います。


(元フランスの質問)

月problèmeESTルsuivant:帝traiteデdonnéesDANS宇根Excelマクロ、CE traitementgénèreデgraphiques。選択したマクロは、グラフ上に表示されます。変数は、変数の指数関数的ではありません。私は、可能な限り多くの人が自分の欲望を満たしていると考えています。

+0

あなたは[LINEST関数](https://support.office.com/en-us/article/LINEST-function-84D7D0D9-6E50-4101-977A-FA7ABF772B6D)をお探しですか? –

+0

はい、私は2点間で動作させる方法がわかりません –

+0

これらの2点間の値の「範囲」を取り戻せますか? –

答えて

1

次の関数は、グラフオブジェクトの系列上の2点を与えられた最小二乗線を計算します。

' Calculates the "a" and "b" of the least squares line 
' given a series and two indexes on the series 
' returns an array(1 to 2) where a is (1) and b is (2) 
Function linest(s As Series, idx1 As Long, idx2 As Long) 
    ReDim Xs(idx1 To idx2) ' The X values 
    ReDim Ys(idx1 To idx2) ' The Y values 
    Dim i As Long 
    For i = idx1 To idx2 
     Xs(i) = s.XValues(i) 
     Ys(i) = s.values(i) 
    Next 
    linest = WorksheetFunction.linest(Ys, Xs) 
End Function 

使用

この試験は、シート1の列からグラフを作成する(Xさん)とB(Y'S)。 次に、上記の関数を使用して、5番目と15番目の間の値の最小二乗直線を計算します。

Sub Test() 
    ' first let us create a chart object and a series 
    Dim ch As ChartObject, s As Series 
    Set ch = Sheet1.ChartObjects.Add(10, 10, 500, 250) 
    Set s = ch.Chart.SeriesCollection.NewSeries 
    s.XValues = Sheet1.Range("A1:A20") 
    s.values = Sheet1.Range("B1:B20") 

    ' calculate the least-squares line between 5th and 15th points 
    Dim eq: eq = linest(s, 5, 15) 

    ' display the results 
    Debug.Print " The least squares line is:" & vbCrLf & vbCrLf & _ 
       " Y = " & eq(1) & "*X + " & eq(2) 
End Sub 
+0

明日の朝にこれを試してみて、それについて話します。私の問題を解決しようとしてくれてありがとうございました(そして、私の英語は残念です) –

+0

ありがとうございました –

+0

@ K.Fanedoulよろしくお願いします。 –

関連する問題