Abstract
Sie haben viele verschiedene Möglichkeiten, eine Sterblichkeitsrente zu berechnen:
Komplexe Matrixformel (Schlechteste Wahl)
Wenden Sie eine recht komplexe Matrixformel an:
Die Namen sind wie folgt definiert:
Dieser Ansatz wurde auch hier beschrieben (external link!) Google site.
Einfache Benutzerdefinierte Funktion mit VBA (Bessere Wahl)
Ein weitaus besser Weg besteht in einer einfachen benutzerdefinierten Funktion:
Bitte den Haftungsausschluss im Impressum beachten.
Option Explicit
Function LiveAnnuityPV(lYears As Long, dInterestRate As Double, _
rMortalityTable As Range) As Double
'Source (EN): http://www.sulprobil.de/mortality_annuities_en/
'Source (DE): http://www.berndplumhoff.de/mortality_annuities_de/
'(C) (P) by Bernd Plumhoff 22-Mar-2014 PB V0.1
Dim j As Long
Dim dSum As Double, dProd As Double, dPV As Double
dProd = 1#
dPV = 1#
For j = 1 To rMortalityTable.Count - lYears
dPV = dPV / (1# + dInterestRate)
dProd = dProd * (1# - rMortalityTable(j + lYears))
dSum = dSum + dPV * dProd
Next j
LiveAnnuityPV = dSum
End Function
Vorkalkulierte Tabelle und eine NBW Formel (Wahrscheinlich am Besten)
Der schnellste und wahrscheinlich beste Ansatz besteht aus einer vorkalkulierten Tabelle und einer NBW Formel:
Bitte beachten Sie: Die BEREICH.VERSCHIEBEN Formel ist etwas schneller als die INDEX Formel. Aber sie ist volatil, d.h. sie wird bei jedem Drücken von F9 erneut berechnet und nicht erst nach Änderung ihrer Eingabewerte.
Mit FastExcel © können Sie die Rechengeschwindigjeit Ihrer Excel Berechnungen messen. Im vorliegenden Fall ist der NBW Ansatz etwa 45-mal schneller als die suboptimale Matrixformel und etwa 27-mal schneller als die VBA Lösung:
Download
Bitte den Haftungsausschluss im Impressum beachten.
sbAnnuity_Formula.xlsm [193 KB Excel file, open and use at your own risk]