Meilleure réponse
Les courbes de tendance Excel correspondent aux moindres carrés correspondant à vos données. Vous pouvez (et devriez) demander à Excel dafficher léquation de la courbe de tendance ainsi que la statistique R-carré (plus proche de 1, mieux cest).
La courbe de tendance Power utilise une équation de la forme y = a * x ^ b, où a et b sont des constantes trouvées par lanalyse de régression effectuée par lassistant de courbe de tendance.
Notez quExcel naffiche pas suffisamment de chiffres dans léquation de courbe de tendance. Si vous essayez de calculer des points à l’aide de l’équation initialement affichée, vous pouvez conclure à tort qu’Excel n’a aucune idée. En fait, la chaussure est sur lautre pied – comme vous le verrez lorsque vous cliquez avec le bouton droit sur léquation de la courbe de tendance, choisissez Formater létiquette de la courbe de tendance… dans la fenêtre contextuelle, puis augmentez le nombre de chiffres après la virgule décimale dans le volet Office qui en résulte.
Réponse
Comme dautres lont mentionné, je ne pense pas que VBA soit nécessaire dans ce cas.
Pour une simple courbe de tendance linéaire, vous pouvez déterminer le valeur de toute valeur Y basée sur une valeur X en utilisant les formules SLOPE et INTERCEPT. La formule prendrait la forme de
y = mx + b
où «y» est la variable dépendante, «m» est la pente de la ligne, «x» est la variable indépendante et «b» est lordonnée à lorigine. En supposant les valeurs X dans les cellules A2: A10, les valeurs Y dans les cellules B2: B10 et la variable «X» souhaitée dans la cellule C1, vous devez entrer ceci comme suit:
= PENTE (B2: B10, A2: A10 ) * C1 + INTERCEPT (B2: B10, A2: A10)
Cependant, votre question indique que vous êtes intéressé par une courbe de tendance moyenne mobile. Dans ce cas, vous pouvez calculer nimporte quel point de données en prenant la moyenne des «n» observations précédentes, où «n» est le nombre de périodes de votre moyenne mobile.
Par exemple, pour calculer un Moyenne mobile sur 2 périodes («n» = 2), moyenne simplement les deux dernières valeurs. Un exemple simple est copié ci-dessous.
Si vous êtes prêt à utiliser VBA, alors ce code devrait faire laffaire avec mineur modifications comme bon vous semble. En létat, cela devrait fonctionner pour simplement sélectionner une plage de paires X / Y et exécuter la macro. Le résultat sera un diagramme de dispersion XY très basique avec le titre du graphique indiquant la prochaine paire XY de la séquence.
Jespère que cela vous aidera.
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