我正在尝试计算客户的生命周期价值。客户的价值流失(每年下降一个百分比)。在整个过程中,我需要为客户价值提供NPV。即对于期间1,我在整个期间内搅动该值,然后将其添加到数组中。然后excel移到相邻单元格中的下一个值,并执行相同的操作,但是周期已减小了1个周期。填充阵列后,我将为这些值NPV。
我尝试编写此函数的原因是我需要在一个单元格中完成此计算。我知道我可以在另一张纸上完成此操作。但是,在此期间搅动的每个值都需要有自己的一行。当我有100多岁时,它开始变得多余。
我写了下面的函数来尝试计算这个。我相当确定我对问题的理解是正确的,但是我的VBA技能却不足。任何帮助将不胜感激。
Option Explicit
Function NPVLTV(discount As Double, n As Double, Value As Double, Churn() As Range) As Double
Dim ValuesChurned() As Range
ReDim ValuesChurned(n - 1) As Range
Dim k as Double
k = Value
For i = 0 To n - 1
ValuesChurned(i) = k
k = Value * (1 - Churn(i)) ^ i
Next i
NPVLTV = NPV(discount, ValuesChurned())
End Function
我希望在整个周期内得到一个单元的净现值的一个值。但是,我遇到了#VALUE错误。我一直在使用此输入作为功能的测试
=NPVLTV(0.025, count(N67:$BO$67) ,336 , N67:$BO$67)
范围只是一个0.01的数组。