# XNPV - 圖表函數

XNPV() 會針對圖表維度上反覆運算的運算式的配對數字 (以 pmt 和 date 表示) 所代表的現金流量排程 (不一定是定期) 傳回彙總淨現值。 所有支出均按照 1 年 365 天攤算。

語法：

XNPV([TOTAL [&lt;fld{,fld}&gt;]] discount\_rate, pmt, date)

傳回的資料類型： 數值

資訊備註依照預設，結果將會格式化為貨幣。

XNPV 的計算公式顯示如下：

XNPV 彙總公式

XNPV 彙總公式

XNPV 彙總公式 ![XNPV 指令碼函數的公式影像。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-xnpv-formula.png)

其中：

* `P``i` = 單一期間 `i` 的淨現金流入-流出量

* `d``1`= 第一筆付款日期

* `d``i` = 第 `i` 筆付款日期

* `rate` = 折扣率

淨現值 (或 NPV) 用於計算在指定折扣率下未來現金流目前的總值。若要計算 XNPV，我們需要以對應的日期估算未來現金流。在此之後，對於每筆付款，我們會根據付款日期套用複合折扣率。

透過一系列的付款執行 XNPV 彙總類似於透過這些付款執行總和彙總。差別在於，會根據所選的折扣率 (類似利率) 和付款距離未來多久來修改 (或「折扣」) 每筆金額。使用設定為零的 discount\_rate 參數執行 XNPV 將會讓 XNPV 等同於總和操作 (在加總之前不會修改付款)。一般而言，設定的 discount\_rate 越接近零，XNPV 結果就會越類似於總和彙總的結果。

引數

| 引數 | 描述 |
| --- | --- |
| discount\_rate | discount\_rate 是付款應據此折扣的年折扣率。<br><br>0.1 的值表示 10% 的折扣率。 |
| pmt | 付款。包含對應於 date 中提供之付款排程的現金流量的運算式或欄位。 正值假設為收入，而負值則假設為支出。<br><br>資訊備註XNPV() 不會折扣初始現金流，因為這一律發生在開始日期。後續付款均按照 1 年 365 天攤算。這不同於也會攤算第一筆付款的 NPV()。 |
| date | 包含對應於 pmt 中提供之現金流量付款的日期排程的運算式或欄位。 第一個值作為計算未來現金流偏移的開始日期使用。 |
| TOTAL | 如果單字 TOTAL 位於函數引數之前，則會在提供現行選項的所有可能值上進行計算，而不僅僅是關於目前維度值的那些選項，也就是說，它會忽略圖表維度。<br><br>透過使用 TOTAL [&lt;fld {.fld}&gt;] (其中 TOTAL 限定詞後面是做為圖表維度變數子集之一或更多欄位名稱的清單)，您可建立總可能值的子集。<br><br>[定義彙總範圍](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

使用此函數時，適用下列限制：

* 除非內部彙總包含 TOTAL 或 ALL 限定詞，否則 discount\_rate、pmt 與 date 不可包含彙總函數。 如需更進階的巢狀彙總，請結合使用進階函數 Aggr 與指定維度。

* 若資料配對中有任一資料是 (或兩個都是) 文字值、NULL 值及遺漏值，會導致整個資料配對被忽略。

## 何時使用 XNPV

* `XNPV()` 用於計算投資機會淨現值 (NPV) 的財務模型。

* 由於其精確度較高，因此與 NPV 相比偏好為所有財務模型類型採用 XNPV。

## 區域設定

除非另有說明，否則此主題中的範例皆使用下列日期格式：MM/DD/YYYY。日期格式是在資料載入指令碼的 `SET DateFormat` 陳述式中指定。由於地區設定和其他因素，您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式，以滿足您的需求。或者，您可以在載入指令碼中變更格式，以符合這些範例。如需詳細資訊，請參閱 [修改用於應用程式和指令碼的區域設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)。

應用程式中的預設地區設定是根據使用者設定檔。這些地區格式設定與 Qlik Cloud 使用者介面中顯示的語言無關。Qlik Cloud 顯示的語言將與您正在使用的瀏覽器相同。

若您是應用程式建立者，可以為您建立的應用程式設定預設地區。如需詳細資訊，請參閱[Qlik Cloud 分析 中設定用於建立應用程式和指令碼的偏好區域設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)。

## 範例

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/xnpv.htm)

#### 載入指令碼和圖表運算式

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 包含現金流交易的資料集。

* 儲存在稱為 `Cashflow` 之表格中的資訊。

載入指令碼

```
Cashflow:
LOAD 2013 as Year, * inline [
Date|Payments
2013-01-01|-10000
2013-03-01|3000
2013-10-30|4200
2014-02-01|6800
] (delimiter is '|');
```

結果

請執行下列動作：

載入資料並開啟工作表。建立新的表格並新增下列計算作為量值：

`=XNPV(0.09, Payments, Date)`

結果表格

| =XNPV(0.09, Payments, Date) |
| --- |
| $3062.49 |

## 瞭解更多資訊

* [NPV - 圖表函數](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/npv.htm)
* [Aggr - 圖表函數](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm)