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 - スクリプト関数: この関数は、キャッシュフローのスケジュールの集計正味現行価値を計算するために使用します。
-
RangeXIRR - スクリプトおよびチャート関数: RangeXIRR() は XIRR() 関数と同等の範囲関数です。
Qlik Sense Client-Managed のバージョンが異なると、この関数で使用される基になるアルゴリズムが異なります。アルゴリズムの最近のアップデートについて詳しくは、サポート記事「 XIRR 関数の修正とアップデート 」を参照してください。
例
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 機能が取引の隠れ利息を計算するたmです。
複数ソリューションの制限
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 つしかないことが保証されています。「正常」なキャッシュフローの流れとは、同じ符号 (プラスまたはマイナス) を持つすべての支払いが連続したグループであることを意味します。