Berechnungen in einer Do-Schleife

Hallo zusammen,

ich versuche bei einem Datensatz etwa 120 Berechnungen durchzuführen um hinterher eine Summe zu ziehen.
Ich habe vor, dass mit einer Do-Schleife zu machen (do i=1 to 120).
Wie kann ich mir aber jetzt die berechneten Ergebnisse speichern?

Ziel ist es, eine Art Tilgungsplan für ein Darlehen zu erstellen, bei dem ich hinterher zählen kann, wie viel der Kunde an Zinsen über die nächsten 10 Jahre zu zahlen hat.
Die Rate ist zwar fix, aber der Anteil von Zins und Tilgung ändert sich ja monatlich.
Dazu muss ich aber halt monatlich den Tilgungsanteil von dem Saldo abziehen und weiterrechnen.

Es gibt zwar die Möglichkeit 120 Schleifen zu basteln, aber es gibt doch sicher eine einfachere Methode, oder?

Möglichkeit wäre Restsaldo_1 (wobei 1 in dem Fall = i wäre).

Könnt ihr mir helfen?

Vielen Dank und viele Grüße

Thomas

output-Anweisung

Hallo Thomas,
das Problem lässt sich m.E. nach mit der output-Anweisung lösen:

data tilgungsplan;
darlehen=10000;
zinssatz=0.05;
rate=500;
ii=0;
output;
do ii=1 to 12;
zins=darlehen*zinssatz/12;
tilgung=rate-zins;
darlehen=darlehen+zins-rate;
output; /* HIER berechnete Ergebnisse speichern */
end;
run;
proc print; run;

Ich hoffe ich habe die Fragestellung richtig verstanden.

Gruß
Hans Kneilmann, Schäfer Shop GmbH (SSI)

An sich schon gut...

... Die zusammenfassung kann ich hinterher auch darstellen.
Wo müsste ich aber eine Prüfung einbauen, die die Routine nur laufen lässt, wenn der aktuelle Darlehenssaldo noch größer 0 ist und den Tilgungsanteil dann auf den Restsaldo beschränkt?

Irgendwann ist das Darlehen ja getilgt (in diesem Fall nach 22 durchläufen). Ich will aber nicht ins negative kommen.

Alternativ: Ich kann ausrechnen, wie viele Monate das Darlehen noch läuft, also wieviele durchgänge ich bräuchte.
Wäre dann etwas möglich wie:

do ii=1 to Restmonate;

Wenn Sie dafür noch eine Lösung hätten, dann gäbe es einen richtig glücklichen Menschen mehr auf der Welt :-)

Schlußrate

Hallo,
die Schlußrate würde ich z.B. so berücksichtigen:

data tilgungsplan;
darlehen=10000;
zinssatz=0.05;
rate=500;
ii=0;
output;
do ii=1 to 120;
zins=darlehen*zinssatz/12;
tilgung=rate-zins;
darlehen=darlehen+zins;
darlehen=darlehen-rate;
output; /* HIER berechnete Ergebnisse speichern */
if darlehen <= rate then do;
rate=darlehen; /* Schlußrate */
darlehen=darlehen-rate;
ii=999; /* Abbruch der Schleife mit Trick 17 [ii=999 setzen]) */
output;
end;
end;
run;
proc print; run;

Gruß
Hans Kneilmann, Schäfer Shop GmbH (SSI)

Vielen Dank!!!!!

Hallo Herr Kneilmann,

super! Vielen Dank für Ihre Hilfe.
Jetzt gibt es wirklich wieder einen richtig glücklichen Menschen mehr auf der Welt :-).

Viele Grüße und ein schönes Wochenende

Thomas Kotulla