我有一个NPV计算,我手动完成,因为XNPV功能似乎不起作用。
我创建的NPV指标看起来像这样:
'Data'[Undiscounted Value] / (1+'Discount Rate'[Discount Rate Value])^([Component]/12)
我发现计算中的错误位于度量的[Component]部分。 [组件]计算如下:
IF(TODAY() > LASTDATE('Data'[Date]), BLANK(),
DATEDIFF(TODAY(), LASTDATE('Data'[Date]), MONTH))
[组件]计算旨在确定NPV计算的月数。我除以12因为我有年折扣率,但我的数据是几个月。
上述计算在线/条形图中完美运行。我已经对这几个月进行了测试,以确认这些值是否正确打折。
当我尝试聚合数据时发生问题。换句话说,它在折线图中工作正常,但是当我将计算放在卡片上时,它会使用组件的LASTDATE并使用所有未折现值的总和执行计算。换句话说,它做了这样的事情:
SUM ('Data'[Undiscounted Value] ) / (1+'Discount Rate'[Discount Rate Value])^(MAX(Component) /12)
然后吐出一个不正确的结果。
它应该做的只是取所有贴现值的总和。因此,逐月运行计算然后添加所有月份,而是添加未安装的值,然后在36个月内对其进行折扣。
我的QUESTion是:是否有一个替代函数可以告诉Power BI不要使用最后日期,而是迭代每个月(行)然后SUM
我会建议以下解决方案结构:
SUMX(
VALUES( 'Data'[Month] )
, CALCULATE( NPV )
)
这将在总结之前计算每个月的折扣。您可能还需要调整[Component]公式。