Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: einfache lineare Regression in VBA

einfache lineare Regression in VBA
08.01.2019 23:14:22
Mira
Hi ihr lieben,
ich benötige dringend eure Hilfe!
Ich habe einen neuen Job und muss ein Makro für eine lineare Regression in VBA entwickeln.
Ausgangsdaten sind Jahr (2015-2018) und Gesamtumsatz pro Jahr. Nun muss ich eine lineare Regression für die Jahre 2019 bis 2026.
Anbei meine Datei als Beispiel
https://www.herber.de/bbs/user/126586.xlsx
Wer kann mir hierbei schnell helfen?
Grüßle Mira
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mitten in der Nacht schnell?
08.01.2019 23:28:22
Rudi
dies ist ein Forum und kein Schnellimbiss.
AW: mitten in der Nacht schnell?
08.01.2019 23:30:10
Mira
Entschuldigung, so war das ja nicht gemeint :/
AW: einfache lineare Regression in VBA
08.01.2019 23:38:17
Daniel
Hi
warum neu erfinden was schon da ist.
dafür gibts die Funktionen TREND und RGP
TREND liefert dir die nächsten Werte, RGP Steigung und Achsenabschnitt der Regressionsgeraden, mit denen kannst du dann beliebige Wertepaare berechnen.
Neuprogrammierung wäre nur erforderlich, wenn die Regressionsgerade nach eigenen Regeln berechnet werden soll.
Gruß Daniel
Anzeige
AW: einfache lineare Regression in VBA
08.01.2019 23:42:10
Mira
Hi Daniel,
danke für deine schnelle Antwort.
Du hast Recht, mein Problem ist allerdings, dass ich kaum Ahnung von VBA habe und nicht weiß, wie ich den Trend und RGB in VBA nutze
Grüßle Mira
AW: einfache lineare Regression in VBA
09.01.2019 00:12:34
Daniel
Hi
wie jede andere Excelfunktion auch.
entweder mit einer Variante von .Formula entsprechend in die Zellen schreiben oder über Worksheetfunction (wobei RGP problematisch sein könnte, weil es eine Matrixformel ist)
Gruß Daniel
Anzeige
AW: einfache lineare Regression in VBA
09.01.2019 01:02:46
Mira
Hi,
okay, .Formular sagt mir im Moment leider nichts. Ich werde mal recherchieren...
Denke aber, dass mir das über die Worksheetfunction in VBA lieber ist. Mir ist im Moment nur noch nicht ganz bewusst, wie ich das am Besten anstelle
Grüßle Mira
AW: einfache lineare Regression in VBA
09.01.2019 07:59:21
Daniel
HI
ich weiß ja nicht so ganz, was du willst, wenns darum geht die restlichen Felder zur füllen:
mit Worksheetfunction:
Dim Zelle As Range
For Each Zelle In Range("B6:B13")
Zelle.Value = WorksheetFunction.Trend(Range("B2:B5"), Range("A2:A5"), Zelle.Offset(0, -1))
Next
mit .Formula (hier FormulaR1C1) in den Zellen:
With Range("B6:B13")
.FormulaR1C1 = "=Trend(R2C2:R5C2,R2C1:R5C1,RC1)"
.Formula = .Value
End With
oder, wenn dir die A1-Schreibweise lieber ist:
With Range("B6:B13")
.Formula = "=Trend($B$2:$B$5,$A$2:$A$5,A6)"
.Formula = .Value
End With
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Einfache lineare Regression in VBA


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Erstelle eine Tabelle in Excel mit deinen Ausgangsdaten. In diesem Fall sind das die Jahre (2015-2018) in einer Spalte und die Gesamtumsätze in einer anderen Spalte.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul einfügen: Klicke auf "Einfügen" und dann auf "Modul", um ein neues Modul zu erstellen.

  4. VBA-Code einfügen: Kopiere und füge den folgenden Code in das Modul ein:

    Sub LineareRegression()
       Dim Zelle As Range
       For Each Zelle In Range("B6:B13")
           Zelle.Value = WorksheetFunction.Trend(Range("B2:B5"), Range("A2:A5"), Zelle.Offset(0, -1))
       Next
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Führe das Makro aus, um die lineare Regression für die Jahre 2019 bis 2026 zu berechnen.


Häufige Fehler und Lösungen

  • Fehlermeldung bei der Ausführung: Wenn du eine Fehlermeldung erhältst, stelle sicher, dass die Bereiche in deinem Code mit deinen tatsächlichen Daten übereinstimmen.

  • Keine Werte in den Zellen: Überprüfe, ob du die richtigen Zellbezüge in deinem Code verwendet hast. Möglicherweise sind die Daten nicht im erwarteten Format.


Alternative Methoden

Wenn du keine Makros verwenden möchtest, kannst du die Funktionen TREND oder RGP direkt in Excel nutzen. Diese Funktionen ermöglichen es dir, eine lineare Regression ohne VBA zu erstellen.

  • TREND: Mit der Funktion =TREND(B2:B5; A2:A5; A6) kannst du die nächsten Werte berechnen, indem du die bestehenden Daten als Eingabewerte verwendest.

  • RGP: Diese Funktion liefert die Steigung und den Achsenabschnitt der Regressionsgerade, die du dann für weitere Berechnungen verwenden kannst.


Praktische Beispiele

Angenommen, du hast folgende Daten in Excel:

Jahr Umsatz
2015 20000
2016 25000
2017 30000
2018 35000

Um die lineare Regression für die Jahre 2019 bis 2026 zu berechnen, kannst du den oben genannten VBA-Code verwenden oder die Funktion TREND in einer Zelle wie folgt eingeben:

=TREND(B2:B5; A2:A5; A6)

Das Ergebnis in Zelle B6 gibt dir den geschätzten Umsatz für das Jahr 2019.


Tipps für Profis

  • Nutze benannte Bereiche für deine Daten, um den Code übersichtlicher zu gestalten. Das macht die Wartung einfacher, insbesondere wenn sich deine Daten ändern.

  • Experimentiere auch mit den Regressionsergebnissen und visualisiere die Regressionsgerade in einem Diagramm, um die Analyse zu unterstützen.

  • Wenn du mit komplexeren Modellen arbeiten möchtest, kannst du auch mehrere Regressionen in einem einzigen Makro kombinieren.


FAQ: Häufige Fragen

1. Kann ich die Regressionsgerade in Excel visualisieren?
Ja, du kannst ein Streudiagramm erstellen und die Regressionsgerade hinzufügen, um die Ergebnisse deiner linearen Regression zu visualisieren.

2. Brauche ich spezielle Kenntnisse in VBA, um diesen Code zu verwenden?
Grundkenntnisse in VBA sind hilfreich, aber mit der bereitgestellten Schritt-für-Schritt-Anleitung solltest du in der Lage sein, den Code ohne umfangreiche Vorkenntnisse zu nutzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige