Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werte der RGP im Makro

Werte der RGP im Makro
09.11.2006 14:06:20
Thomas
Hallo Excelfreunde,
Kann mir jemand bei einem Makro helfen?
Also z.B. Spalte A: hat 100 Werte ,in der Zelle B100 steht eine Ganze Zahl(z.B.10). Bezogen auf diese Zahl 10 kommen in die Zelle C100 die Steigung der Regressionsgeraden,
also =Index(RGP(A91:A100);1) und in die Zelle D100 die Verschiebung, also =Index(RGP(A91:A100);2).
In die Zellen D99:D91 kommen die Werte der Regressionsgeraden, in meinen Beispiel also D99=C100*2+D100, D98=C100*3+D100.
Da die Größe von A: und dieZahl in B: variabel sind ,erscheint mir ein Makro sinnvoll, bekomme das aber nicht hin.
Thomas

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
math. Fehler in der Berechnung
09.11.2006 16:12:31
Thomas
Entschuldigt Leute,
ich habe bei meinen Makroversuchen ganz einen Fehler in der Verschiebung übersehen.
Der Anstieg ist zwar richtig ,aber bei der Verschiebung muss man natürlich die Lage des Koordinatensystems berücksichtigen, so daß man von dem Wert D100 natürlich noch C100*B100
dazu addieren muss, richtig heisst es also auf D100=Index(RGP(A91:A100);2)+C100*B100.
Desweiteren muss man dann natürlich mit dem umgekehrten Vorzeichen von C100 die Werte, die Werte für D99:D91 berechnen, also bei einem Plusvorzeichen auf C100 ist
D99=D100-C100 .
Sorry Thomas
Frage offen
09.11.2006 17:09:40
Thomas
Haken vergessen
Anzeige
AW: Frage offen
10.11.2006 16:08:20
ingUR
Hallo, Thomas,
sicher bin ich nicht, ob Du den geeigneten Weg zur Lösung anstrebst oder ich die Aufgabe nicht verstanden habe.
Wenn ich also immer nur von den letzen M-Werten eine N-Daten umfassenden Reihe die Regression dargestellt bekommmen möchte, warum fängst Du dann nicht mit der Gleichung bei dem Punkt M-N an, das erspoart doch das rückwärtsgewandte Rechnen.
Da ich wie geschreiben noch nicht sicher bin, ob ich Diene aufgabe richtig verstanden habe, hier ersteinmal eine Zellenlösung:
 
 ABC
880,4293126 0,37334868
890,49038648 0,37260177
900,29695129 0,37185486
910,27495692 0,37110795
920,56326419 0,37036104
930,02893123 0,36961413
940,34489887 0,36886723
950,46308888 0,36812032
960,20718237 0,36737341
970,94939868 0,3666265
980,25577539 0,36587959
990,18145279 0,36513268
1000,2591376100,36438577
 

Die Formel für die Zelle C100 kann nach Eintrag noch pben auf die anderen Zellen gezogen werden. In die Zelle B100 ist der Wert für M einzugeben:
 
 ABC
990,18145279 0,36513268
1000,2591376100,36438577
Formeln der Tabelle
C99 : =INDEX(RGP(BEREICH.VERSCHIEBEN($A$100;-$B$100+1;0;$B$100;1));1)*(ZEILE()-ZEILE($A$100)-$B$100)+INDEX(RGP(BEREICH.VERSCHIEBEN($A$100;-$B$100+1;0;$B$100;1));2)
C100 : =INDEX(RGP(BEREICH.VERSCHIEBEN($A$100;-$B$100+1;0;$B$100;1));1)*(ZEILE()-ZEILE($A$100)-$B$100)+INDEX(RGP(BEREICH.VERSCHIEBEN($A$100;-$B$100+1;0;$B$100;1));2)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Will man nun die Werte nur für die letzen M Werte berechnen, kann dieser Forderung durch eine WENN-Abfrage rechnung getragen werden:
=WENN(ZEILE($A$100)-ZEILE() < $B$10; ...Berechnungsformel...; #NV)
Soll nun aber die Anzahl N variable gehalten werden, dann wäre zu überlegen, ob man den Parameterwert M ($B$100) nicht in eine FIX-Zelle schreibt. Anschließend könnte man die derzeitige Festgröße des Tabellenende (Zelle $A$100) als veränderlich in dei Zelenfolrmel einführen (=ADRESSE(Anzahl(A:A);1) liefert die Adresse $A$100, wenn dort die letze beschreibene Zelle sich in der lückenlos bis dorthin mit Zahlen gefüllten Spalte A).
Eine Makrolösung ist natürlich auch denkbar. Nun schreib jedoch bitte erst einmal, ab die Aufgabenlösung ab speziellen Beispiel zutreffend ist, bevor weitere Lösungsschritte unternommen werden.
Gruß,
Uwe
Anzeige
AW: Frage offen
11.11.2006 10:24:28
Thomas
Hallo Uwe,
danke für deine Antwort;du hast natürlich vollkommen recht mit deiner Aussage , daß man gleich bei bei Zeile 91 anfangen kann , wichtig ist nur ,daß NUR die Anzahl (B100_wert)in die Regressionsspalte kommen, da anschließend die Differenz zur Spalte A: berechnet werden soll ,um die max.Differenz nach oben und unten zu finden.
Später kommen auf A: neue Werte hinzu und alles ändert sich.
Ich hoffe jetzt ist soweit alles klar.Ich denke ein Makro wäre besser, da A: je nach Vorgabe sehr unterschiedlich sein kann.
Gruß Thomas
AW: Regressiongerade über die m letzten Werte
11.11.2006 22:31:54
ingUR
Hallo, Thomas,
bleibt eigentlich nur die Frage, warum es gerade die Zelle $B$100 sein soll, der die Regressionslänge beinhalten soll.
Generell kann jedoch auch die dynamisch veränderliche Länge der A-Spalte (Y-Werte) in einer EXCEL-Zellen-Formel berücksicht werden. Den entsprechenden "Bandwurm" habe ich in der beigefügten Tabelle (Spalte C; es wurde das Vorhandensein einer Kopfzeile angenommen) eingetragen und über die Zelle C100 hinaus weiter nach unten kopiert:
=WENN(ISTZAHL(A2);WENN(ZEILE(INDIREKT(ADRESSE(ANZAHL(A:A)+1;1)))-ZEILE()<$B$100;INDEX(RGP(BEREICH.VERSCHIEBEN(INDIREKT(ADRESSE(ANZAHL(A:A)+1;1));-$B$100+1;0;$B$100;1));1)*(ZEILE()-ZEILE(INDIREKT(ADRESSE(ANZAHL(A:A)+1;1)))+$B$100)+INDEX(RGP(BEREICH.VERSCHIEBEN(INDIREKT(ADRESSE(ANZAHL(A:A)+1;1));-$B$100+1;0;$B$100;1));2);#NV);"")
Werden am Ende der Liste in der Spalte A Werte zugefügt bzw. entfernt, werden, so denn die Zellenformeln ensprechend eingetragen wurden, die Y_Werte der Regressionsgeraden für die letzten M Werte berechnet.
Die Erweiterung, dass Ermitteln der maximalen Differenz zwischen Regressionsgeradenwert und Y-Datenwert, ist wohl das Ziel Deiner Arbeit.
Das beigefügte VBA-Programm kannst Du sicher so abändern, dass Du auf die Hilfsspalte ganz verzichten kannst, den Maximalwert der Differenz als Einzelwert oder aber die Liste der Differenzen direkt ausgeben kannst. Ansonsten lade bitte eine Beispielmappe hoch, aus der man ersehenkann, wo welche ausgabewerte eingetragen werden sollen.
Gruß,
Uwe
https://www.herber.de/bbs/user/38090.xls
Anzeige
AW: Regressiongerade über die m letzten Werte
13.11.2006 07:59:37
Thomas
Hallo Uwe ,
ich danke dir für deine Hilfe .Sieht alles prima aus.
Zu deiner Frage, warum die Zahl in der Zelle B100 steht : Es war halt in dem Bsp. der letzte A:_wert in der Zeile 100 und B ist Zufall.
Eine Sache ist mir aufgefallen. In deinem mitgelieferten Bsp.ist in der Zelle C:91 der Wert 6246.51836, wenn man aber mit =index(RGP(A91:A100);2) rechnet erhält man 6237.476,also noch einmal die Steigung der Reg.geraden von 9,042363636 abgezogen.
Mir ist klar ,daß dies auf die Lage des Koordinatenursprungs zurückzuführen ist, aber welcher Wert der relevante für mich , ist mir noch nicht klar. Die graphische Lösung zeigt eher auf 6237.476.
Ich wollte aber erst mal antworten,da ich das Wochenende keine Zeit hatte.
Gruß Thomas
Anzeige
AW: Regressiongerade über die m letzten Werte
13.11.2006 11:12:54
ingUR
Hallo, Thomas,
ja, bei Deiner Betrachtung von zehn Werten zur Regressionsberechnung, kann der Startwert nicht 6246,518... sein, da y nur neunmal der Steigungswert (DeltaY/X-Einheit) addiert werden braucht um auf den letzten Wert des Datenausschnittes aus der Serie zu gelangen.
Daher folgende Änderung:
Abhängig vom gewählten Beispiel mit den letzten zhen werten:
D100:: =INDEX(RGP($A91:$A100);1) und
E100:: =INDEX(RGP($A91:$A100);2)+D100*B100
C100:: =WENN(ISTZAHL(A100);WENN(ZEILE(INDIREKT(ADRESSE(ANZAHL(A:A)+1;1)))-ZEILE()<$B$100;INDEX(RGP(BEREICH.VERSCHIEBEN(INDIREKT(ADRESSE(ANZAHL(A:A)+1;1));-$B$100+1;0;$B$100;1));1)*(ZEILE()-1-ZEILE(INDIREKT(ADRESSE(ANZAHL(A:A)+1;1)))+$B$100)+INDEX(RGP(BEREICH.VERSCHIEBEN(INDIREKT(ADRESSE(ANZAHL(A:A)+1;1));-$B$100+1;0;$B$100;1));2);#NV);"")
und Formel durch Ziehen nach oben kopiert in die ZellEn C2 bis C99
Für das VBA-Programm beschränkt sich die Änderung auf:
For r = 1 To M
     rngYData.Offset(r - 1) = a0 + (r - 1) * a1
Next r
Gruß,
Uwe
Anzeige
AW: Korrektur zur Formel in E100
13.11.2006 12:28:02
ingUR
Übersehen habe ich in der Zellenformel in Zelle E100, dass auch dort natürlich nur M-1 Abschnitte zum ausgangswert (Achsenabschnitt) addiert weren müssen:
E100:: =INDEX(RGP($A91:$A100);2)+D100*(B100-1)
Gruß!
Danke!!
13.11.2006 19:00:36
Thomas
Hallo Uwe,
ich danke dir für die Antworten, alles im Code verstehe ich zwar im Moment noch nicht, aber ich arbeite dran!
Dank und Gruß Thomas
AW: Danke!!
13.11.2006 21:58:44
ingUR
Hallo, Thomas,
ggf. einfach nachfragen, wenn's nicht nachvollziehbar ist.
Gruß,
Uwe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige