Paras vastaus
Excelin trendiviivat ovat vähiten neliöitä, jotka sopivat tietoihisi. Voit (ja sinun pitäisi) pyytää Exceliä näyttämään trendiviivan yhtälö sekä R-neliön tilasto (lähempänä yhtä, sitä parempi).
Power-trendiviiva käyttää yhtälöä muodossa y = a * x ^ b, jossa a ja b ovat vakioita, jotka ohjatun trendiviivan suorittama regressioanalyysi löytää.
Huomaa, että Excel ei näytä riittävästi numeroita trendiviivan yhtälössä. Jos yrität laskea pisteitä käyttämällä yhtälöä alun perin näytetyllä tavalla, saatat virheellisesti päätellä, että Excelillä ei ole aavistustakaan. Itse asiassa kenkä on toisella jalalla – kuten näet, kun napsautat hiiren kakkospainikkeella trendiviivayhtälöä, valitset ponnahdusikkunasta Muotoile trendiviivan nimi ja lisää sitten numeroiden määrää desimaalipilkun jälkeen tuloksena olevassa tehtäväpalkissa.
Vastaus
Kuten muut ovat maininneet, mielestäni VBA ei ole välttämätön tässä tapauksessa.
Yksinkertaisen lineaarisen trendiviivan saamiseksi voit määrittää minkä tahansa arvon Y arvo, joka perustuu arvoon X käyttäen KÄYTTÖ- ja INTERCEPT-kaavia. Kaava olisi muodossa
y = mx + b
missä ”y” on riippuva muuttuja, ”m” on linjan kaltevuus, ”x” on riippumaton muuttuja ja “b” on Y-leikkaus. Oletetaan, että X-arvot soluissa A2: A10, Y-arvot soluissa B2: B10 ja haluamasi “X” -muuttuja solussa C1 kirjoitat tämän seuraavasti:
= KALPA (B2: B10, A2: A10 ) * C1 + INTERCEPT (B2: B10, A2: A10)
Kysymyksesi kuitenkin osoittaa, että olet kiinnostunut liukuvan keskiarvon trendiviivasta. Tässä tapauksessa voit laskea minkä tahansa tietopisteen ottamalla aikaisempien n: n havaintojen keskiarvon, jossa n on liukuvan keskiarvosi jaksojen lukumäärä.
Esimerkiksi laskeaksesi Kahden jakson liukuva keskiarvo (“n” = 2), keskimäärin kahden viimeisen arvon keskiarvo. Yksinkertainen esimerkki kopioidaan alla.
Jos olet asettanut VBA: n käytön, tämän koodin pitäisi tehdä temppu pienillä muutokset mielesi mukaan. Sellaisena kuin se on, sen pitäisi toimia yksinkertaisesti valitsemalla X / Y-parien alue ja suorittamalla makro. Tuloksena on hyvin yksinkertainen XY-hajontakaavio, jossa kaavion otsikko osoittaa sarjan seuraavan XY-parin.
Toivottavasti tämä auttaa.
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