Legjobb válasz
Az Excel trendvonalak a legkevesebb négyzetek, amelyek megfelelnek az adatainak. Megkérheti (és meg kell) kérnie az Excel-t, hogy jelenítse meg a trendvonal egyenletét, valamint az R-négyzet statisztikáját (közelebb 1-hez, annál jobb).
A Power trendvonal y = a alakú egyenletet használ * x ^ b, ahol a és b a konstansok, amelyeket a trendvonal varázsló regresszióanalízise talált.
Ne feledje, hogy az Excel nem jelenít meg elég számjegyet a trendvonal egyenletében. Ha megpróbálja kiszámítani a pontokat az eredetileg megjelenített egyenlet segítségével, akkor tévesen arra a következtetésre juthat, hogy az Excel-nek nincs nyoma. Valójában a cipő a másik lábon van – amint látni fogja, amikor a jobb egérgombbal rákattint a trendvonali egyenletre, a felugró ablakban válassza a Trendline címke formázása lehetőséget, majd növelje a számjegyek számát a tizedesvessző után a kapott ablaktáblán.
Válasz
Mint mások említették, nem gondolom, hogy a VBA ebben az esetben szükséges.
Egy egyszerű lineáris trendvonal esetén megadhatja a bármely Y érték értéke X érték alapján, a SLOPE és az INTERCEPT képletek segítségével. A képlet a következő formátumú lenne:
y = mx + b
ahol „y” a függő változó, „m” a vonal meredeksége, „x” a független változó, és „b” az Y-metszéspont. Feltételezve az X értékeket az A2: A10, Y értékeket a B2: B10 cellákban és a kívánt „X” változót a C1 cellában, ezt kell beírnia:
= SLOPE (B2: B10, A2: A10 ) * C1 + INTERCEPT (B2: B10, A2: A10)
Kérdése azonban azt jelzi, hogy a mozgó átlag trendvonal érdekli. Ebben az esetben bármelyik adatpontot kiszámíthatja az előző „n” megfigyelések átlagának figyelembe vételével, ahol „n” a mozgó átlag időszakainak száma.
Például egy 2 periódusos mozgóátlag („n” = 2), egyszerűen átlagolja az utolsó két értéket. Az alábbiakban egy egyszerű példát másolunk.
Ha be van állítva a VBA használata, akkor ennek a kódnak kisebbekkel kell cselekednie módosítások tetszés szerint. Ennek megfelelően működnie kell az X / Y párok egyszerű tartományának kiválasztásán és a makró futtatásán. Az eredmény egy nagyon alapos XY Scatter diagram lesz, a diagram címe jelzi a sorozat következő XY párját.
Remélem, hogy ez segít.
Ben
Sub AddXYScatter()
Dim r As Range
Dim c As Chart
Dim x As Long
Dim s As String
Set r = Selection
If r.Columns.Count 2 Then
MsgBox "Please select your X/Y pairs and try again"
Exit Sub
End If
x = Application.InputBox("Number of Periods?", "Periods?", 2, , , , , 1)
If r.Rows.Count <= x Then
MsgBox "Not enough observations, please select more rows or reduce periods."
Exit Sub
End If
ActiveSheet.Shapes.AddChart(xlXYScatter).Select
Set c = ActiveChart
With c
.SetSourceData Source:=r
.SeriesCollection(1).Trendlines.Add
With .SeriesCollection(1).Trendlines(1)
.Type = xlMovingAvg
.Period = x
End With
.SetElement (msoElementChartTitleAboveChart)
s = "Next X | Y Pair: "
s = s & Format(WorksheetFunction.Average(r.Offset(r.Rows.Count - x, 0).Resize(x, 1)), "0.00")
s = s & " | " & Format(WorksheetFunction.Average(r.Offset(r.Rows.Count - x, 1).Resize(x, 1)), "0.00")
.ChartTitle.Text = s
End With
Set r = Nothing
Set c = Nothing
End Sub