# XNPV - チャート関数

XNPV() は、チャート軸で反復処理された pmt と date の数値ペアで表されるキャッシュ フロー計算書 (不定期の場合もあります) の正味現在価値を返します。 すべての支払いは、年 365 日の日割り計算で割り引かれます。

構文:

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

戻り値データ型： 数値

情報メモ既定では、結果は通貨としてフォーマットされます。

XNPV を計算するための式は次の通りです:

XNPV 集計式

XNPV 集計式

XNPV 集計式 ![XNPV スクリプト関数の式の画像。](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-xnpv-formula.png)

次のような前提です:

* `P``i` = 単一期間 `i` 中の正味キャッシュ インフロー/アウトフロー

* `d``1`= 最初の支払日

* `d``i` = `i`^番目^の支払日

* `rate` = 割引率

正味現在価値 (NPV) は、所定の割引率を使って将来のキャッシュ フローの現行合計価値を計算するのに使用されます。XNPV を計算するには、対応する日付で詳細のキャッシュフローを推定する必要があります。この後、支払いのたびに、支払い日付に基づいて複利割引率を適用します。

一連の支払いに対して XNPV 集計を実行することは、それらの支払いに対して Sum 集計を行うことと似ています。違いは、各金額が、選択した割引率 (利息と類似) と将来のいつまで支払うかにに従って修正 (または「割引」) されることです。discount\_rate パラメーターをゼロに設定して XNPV を実行すると、XNPV が Sum 演算子と同等になります (支払いは合計される前に修正されます)。一般的に、discount\_rate が設定される値がゼロに近いほど、XNPV 結果が Sum 集計の結果に類似するようになります。

引数

| 引数 | 説明 |
| --- | --- |
| discount\_rate | discount\_rate は、支払いが割引されるべき年率です。<br><br>値 0.1 は、10% の割引率を示します。 |
| pmt | 支払い。date で指定された支払いスケジュールに対応するキャッシュ フローを含む式またはフィールド。 プラスは入金、マイナスは出金とみなされます。<br><br>情報メモXNPV() は、開始日に必ず発生するため、初期キャッシュフローを割引しません。その後の支払いは、年 365 日の日割り計算で割り引かれます。これは、最初の支払いも割り引かれる NPV() とは異なります。 |
| date | pmt で指定された支払いキャッシュ フローに対応する数式または項目で、支払日が含まれます。 最初の値は、将来のキャッシュ フローのオフセットを計算するための開始日として使用されます。 |
| TOTAL | 関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。<br><br>TOTAL [&lt;fld {.fld}&gt;] (ここで、TOTAL 修飾子の後には、1 つまたは複数の項目名のリストがチャート軸変数のサブセットとして続く) を使用して、合計絞込値のサブセットを作成できます。<br><br>[集計範囲の定義](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

この関数を使用する場合は、次の制限が適用されます。

* 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 は使用しているブラウザと同じ言語で表示されます。

## 例

[](https://help.qlik.com/en-US/sense/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/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/npv.htm)
* [Aggr - チャート関数](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm)