# RangeXNPV 脚本和图表功能

RangeXNPV() 用于返回通过 pmt 和 date 指定表达式中成对数值表示的现金流时间表（不一定是周期性）的净现值。所有付款按 365 天一年年折扣。

语法：

RangeXNPV(discount\_rate, value, date{, value, date})

返回数据类型： 数字

参数

| 参数 | 描述 |
| --- | --- |
| discount\_rate | discount\_rate 是付款折扣时依据的年费率。 |
| value | 对应付款日期计划表的现金流或一系列现金流。每个值都可能是由内部记录函数和第三个可选参数返回的单个值或一系列值。系列值必须至少包含一个正值和一个负值。 |
| date | 对应现金流支付的付款日期或付款日期计划表。 |

使用此功能时，以下限制适用：

* 文本值，NULL 值和缺失值都忽略不计。

* 所有付款按 365 天一年年折扣。

## 示例 - 脚本

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXNPV.htm)

#### 加载脚本和结果

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 名为 `RangeTab3` 的表中包含的财务数据。

* 使用 RangeXNPV() 函数计算净现值。

加载脚本

```
RangeTab3:
LOAD *,
recno() as RangeID,
RangeXNPV(DiscountRate,Value1,Date1,Value2,Date2) as RangeXNPV;
LOAD * INLINE [
DiscountRate|Value1|Date1|Value2|Date2
0.1|-100|2021-01-01|100|2022-01-01|
0.1|-100|2021-01-01|110|2022-01-01|
0.1|-100|2021-01-01|125|2022-01-01|
] (delimiter is '|');
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* `RangeID`

* `RangeXNPV`

结果表

| RangeID | RangeXNPV |
| --- | --- |
| 1 | -$9.09 |
| 2 | -$0.00 |
| 3 | $13.64 |

## 示例 - 图表表达式

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXNPV.htm)

#### 加载脚本和图表表达式

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 名为 `RangeTab3` 的表中包含的财务数据。

* 使用 RangeXNPV() 函数计算净现值。

加载脚本

```
RangeTab3:
LOAD *,
recno() as RangeID,
RangeXNPV(DiscountRate,Value1,Date1,Value2,Date2) as RangeXNPV;
LOAD * INLINE [
DiscountRate|Value1|Date1|Value2|Date2
0.1|-100|2021-01-01|100|2022-01-01|
0.1|-100|2021-01-01|110|2022-01-01|
0.1|-100|2021-01-01|125|2022-01-01|
] (delimiter is '|');
```

结果

执行以下操作：

加载数据并打开工作表。创建新表并添加以下计算作为度量。

`=RangeXNPV(0.1, -2500,'2008-01-01',2750,'2008-09-01')`

结果表

| =XIRR(Payments, Date) |
| --- |
| $80.25 |

## 了解详情

* [XNPV 脚本函数](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm)