跳到主要内容 跳到补充内容

XNPV - 图表函数

XNPV() 用于返回通过图表维度迭代 pmtdate 指定表达式中成对数值表示的现金流时间表(不一定是周期性)的聚合净现值。 所有付款按 365 天一年年折扣。

语法:  

XNPV([TOTAL [<fld{,fld}>]] discount_rate, pmt, date)

返回数据类型: 数字

信息注释默认情况下,结果将被格式化为货币。

计算 XNPV 的公式如下所示:

XNPV 聚合公式

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_ratepmtdate 不能包含聚合函数,除非这些内部聚合包含 TOTALALL 限定符。 有关高级嵌套聚合函数的更多信息,请结合指定维度使用 Aggr 高级函数。

  • 数据对任意部分或两部分中的文本值,NULL 值和缺失值在整个数据对中忽略不计。

适用场景

  • XNPV() 用于计算投资机会的净现值 (NPV)。
  • 由于其较高的精度,XNPV 比 NPV 更适合所有类型的金融模型。

区域设置

除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat 语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。

应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典,则数据加载编辑器将使用瑞典地区设置的日期、时间和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以与您使用的浏览器相同的语言显示。

示例

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!