# XIRR スクリプト関数

XIRR() は、group by 句で定義されたレコードで反復処理される pmt と date のペア数値で表されたキャッシュフロー計算書 (不定期の場合もあります) の集計された内部収益率 (年次) を返します。 すべての支払いは、年 365 日の日割り計算で割り引かれます。

Qlik の XIRR 機能 (XIRR() および RangeXIRR() 関数) は、次の方程式を使用して `Rate` 値を解き、正しい XIRR 値を決定します。

`XNPV(Rate, pmt, date) = 0`

この方程式は、ニュートン法の簡素化されたバージョンを使用して解かれます。

構文:

XIRR(pmt, date )

戻り値データ型： 数値

引数

| 引数 | 説明 |
| --- | --- |
| pmt | 支払い。date で指定された支払いスケジュールに対応するキャッシュ フローを含む式またはフィールド。 |
| date | pmt で指定された支払いキャッシュ フローに対応する数式または項目で、支払日が含まれます。 |

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

* 一対のデータのどちらか、または両方にテキスト値、NULL 値、不明な値があると、すべての対となるデータが無視されます。

* この関数には、少なくとも 1 つの有効なマイナスの支払いと 1 つの有効なプラスの支払い (対応する有効日付付き) が必要です。これらの支払いが入力されない場合、NULL 値が返されます。

これらのトピックは、この関数を使用するのに役立つかもしれません。

* [XNPV スクリプト関数](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm): この関数は、キャッシュフローのスケジュールの集計正味現行価値を計算するために使用します。

* [RangeXIRR スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm): RangeXIRR() は XIRR() 関数と同等の範囲関数です。

情報メモ

Qlik Sense Client-Managed のバージョンが異なると、この関数で使用される基になるアルゴリズムが異なります。アルゴリズムの最近のアップデートについて詳しくは、サポート記事「[XIRR 関数の修正とアップデート](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021)」を参照してください。

## 例

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XIRR.htm)

#### ロード スクリプトと結果

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 一連のキャッシュフローのトランザクション データ。

* これらのキャッシュフローの内部年次履歴率を計算するための XIRR() 関数の使用。

ロード スクリプト

```
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 '|');
 
Cashflow1:
LOAD Year,XIRR(Payments, Date) as XIRR2013  Resident Cashflow Group By Year;
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:

* `Year`

* `XIRR2013`

結果テーブル

| 年 | XIRR2013 |
| --- | --- |
| 2013 | 0.5385 |

## XIRR 戻り値の解釈

XIRR 機能は、通常、投資の分析に使用され、当初は流出 (マイナス) の支払いがあり、その後、小さな収入 (プラス) の支払いが連続して発生します。マイナスの支払い 1 件とプラスの支払い 1 件を持つ簡単な例:

`Cashflow:` `LOAD * inline [` `Date|Payments` `2023-01-01|-100` `2024-01-01|110` `] (delimiter is '|');` ` `

最初に 100 を支払うと、ちょうど 1 年後に 110 が戻ってきます。これは、1 年あたり 10% の利益率を示します。`XIRR(Payments, Date)` は 0.1 の値を戻します。

XIRR 機能の戻り値はプラスとマイナスのどちらでもかまいません。投資の場合、マイナスの結果は投資に損失が出ていることを示します。損益の金額は、支払いフィールドに対して合計集計を行うだけで計算できます。

上記の例では、1 年間融資を行っています。利益率は利率とみなすことができます。また、自分が取引の相手側 (例えば、貸し手ではなく借り手) になった場合も、XIRR の機能を利用できます。

この例を考慮します:

`Cashflow:` `LOAD * inline [` `Date|Payments` `2023-01-01|100` `2024-01-01|-110` `] (delimiter is '|');` ` `

これは、最初の例と同じですが、逆になっています。ここでは、1 年間に 100 を借り、10% の利息を付けて返済します。この例では、XIRR 計算は 0.1 (10%) を返します。これは、最初の例と同じ値です。

最初の例では 10 の利益を得て、2 番目の例では 10 の損失が生じましたが、XIRR 機能の戻り値は両方の例でプラスになっていることに注意してください。これは、取引のどちら側にいても、XIRR 機能が取引の隠れ利息を計算するたｍです。

## 複数ソリューションの制限

Qlik の XIRR 機能は、次のソリューションにより定義され、`Rate` 値が解決されます。

`XNPV(Rate, pmt, date) = 0`

この方程式は、複数の解を持つことができる場合があります。これは「複数 IRR 問題」と呼ばれ、非正規のキャッシュフローの流れ (非従来型キャッシュフローとも呼ばれる) によって引き起こされます。次のロード スクリプトにはこの例が表示されます。

`Cashflow:` `LOAD * inline [` `Date|Payments` `2021-01-01|-200` `2022-01-01|500` `2023-01-01|-250` `] (delimiter is '|');` ` `

この例では、マイナスの解が 1 つとプラスの解が 1 つあります (`Rate` = -0.3 と `Rate` = 0.8)。XIRR() は 0.8 を返します。

Qlik の XIRR 機能が解を検索すると、`Rate` = 0 から開始され、解が見つかるまで段階的にレートが増加します。プラスの解が複数ある場合、発生した最初の解が返されます。正のソリューションが見つからない場合、`Rate` をゼロにリセットし、マイナスの方向の解の検索を開始します。

なお「正常」なキャッシュフローストリームは、解が 1 つしかないことが保証されています。「正常」なキャッシュフローの流れとは、同じ符号 (プラスまたはマイナス) を持つすべての支払いが連続したグループであることを意味します。

## 詳細を見る

* [XNPV スクリプト関数](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm)
* [RangeXIRR スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm)
* [XIRR 関数の修正およびアップデート](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021)