XNPV - 图表函数
XNPV() 用于返回通过图表维度迭代 pmt 和 date 指定表达式中成对数值表示的现金流时间表(不一定是周期性)的聚合净现值。 所有付款按 365 天一年年折扣。
语法:
XNPV([TOTAL [<fld{,fld}>]] discount_rate, pmt, date)
返回数据类型: 数字
计算 XNPV 的公式如下所示:
其中:
-
Pi= 单期净现金流入流出 i
-
d1= 第一次付款日期
-
di = 第 i 次付款日期
-
rate = 贴现率
净现值 (NPV) 用于在给定折扣率的情况下计算未来现金流的当前总价值。要计算 XNPV,我们需要估计具有相应日期的未来现金流。在此之后,对于每次付款,我们将根据付款日期采用复合折扣率。
对一系列付款执行 XNPV 聚合类似于对这些付款执行求和聚合。不同之处在于,每个金额都会根据所选的折扣率(类似于利率)和未来付款的时间进行修改(或“打折扣”)。在 discount_rate 参数设置为零的情况下执行 XNPV 将使 XNPV 等效于求和操作(在求和之前不会修改付款)。一般而言,discount_rate 设置得越接近零,XNPV 结果就越类似于求和聚合的结果。
参数 | 说明 |
---|---|
discount_rate |
discount_rate 是付款折扣时依据的年费率。 值 0.1 表示 10% 的贴现率。 |
pmt | 付款。表达式或字段包含与在 date 中指定的付款时间表对应的现金流。 正值被假定为流入,负值被假定为流出。 信息注释XNPV() 不会对初始现金流进行折扣,因为它总是在开始日期发生。后续付款按 365 天的年折扣。这与第一笔付款也打折的 NPV() 不同。 |
date | 表达式或字段包含与在 pmt 中指定的现金流支付对应的日期时间表。 第一个值用作计算未来现金流抵销的开始日期。 |
TOTAL |
如果在函数参数前面出现单词 TOTAL,则计算给出当前选择项的所有可能值,而不只是属于当前维度值的那些值,即它会忽略图表维度。 通过使用 TOTAL [<fld {.fld}>](其中 TOTAL 限定符后跟一个或多个字段名称作为图表维度变量的子集的列表),您可以创建总可能值的子集。 |
使用此功能时,以下限制适用:
-
discount_rate、pmt 和 date 不能包含聚合函数,除非这些内部聚合包含 TOTAL 或 ALL 限定符。 有关高级嵌套聚合函数的更多信息,请结合指定维度使用 Aggr 高级函数。
-
数据对任意部分或两部分中的文本值,NULL 值和缺失值在整个数据对中忽略不计。
适用场景
- XNPV() 用于计算投资机会的净现值 (NPV)。
-
由于其较高的精度,XNPV 比 NPV 更适合所有类型的金融模型。
区域设置
除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat 语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。
应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典,则数据加载编辑器将使用瑞典地区设置的日期、时间和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以与您使用的浏览器相同的语言显示。