Hallo zusammen,
bekanntlich funktioniert die XIRR Funktion nicht, wenn der erste Wert oder mehrere = 0 sind. In einem Template, was ich derzeit baue, wird dies jedoch definitiv vorkommen, weshalb ich versuche über VBA eine XIRR Variante zu programmieren, die die Range für die IRR mit dem ersten Wert <> 0 beginnen lässt.
Folgendes habe ich bis jetzt aus alten Beiträgen zusammentragen können, jedoch funktioniert diese Formel bei mir nicht (#Value-Error):
Function fcm_xirr(ZeroValues As Range, ZeroDates As Range) As Double
Dim values() As Double, dates() As Date
ReDim values(0 To ZeroValues.Count - 1)
ReDim dates(0 To ZeroDates.Count - 1)
Dim j As Integer
j = 0
For i = 1 To ZeroValues.Count
If ZeroValues(i) <> 0 Then
values(j) = ZeroValues(i)
dates(j) = datesWithZeros(i)
j = j + 1
End If
Next i
Dim valuesX() As Double, datesX() As Date
ReDim values(0 To j - 1)
ReDim dates(0 To j - 1)
For i = 0 To j - 1
valuesX(i) = values(i)
datesX(i) = dates(i)
Next i
fcm_xirr = Application.Xirr(valuesX, datesX)
End Function
Danke für eure Hilfe!
Opportunity_Cost
|