IRR
関数では、一連のキャッシュフローの内部収益率 (IRR
) を計算します。キャッシュフローは正 (流入) と負 (流出) のどちらにもなる場合があります。この関数はタイムスケール全体のすべての取引で使用することも、特定の日付の指定した取引で使用することもできます。キャッシュフロー データのタイムスケールに基づいて計算を自動的に調整し、正味現在価値がゼロに等しくなる年率を返します。
正確に言うと、この関数ではキャッシュフロー時間軸に基づいて、日単位、月単位、四半期単位などの適切なタイムスケールを自動的に選択します。週単位のキャッシュフローは、週の最初の曜日に発生したものとして扱われます。日単位のキャッシュフローは、その日に発生したものとして扱われます。
構文
IRR
関数には二つの異なる構文があります。一つ目の構文では、時間ディメンションがあるキャッシュフローとして表現される取引を操作します。もう一つの構文では、日付とキャッシュ フローのペアとして表現される取引を操作するもので、Excel の XIRR とまったく同じです。どちらも IRR
と呼ばれますが、異なる引数を取ります。適用される構文は、関数で使用する引数が二つを超えるか二つ未満かによって異なります。
時間ディメンションを使用した IRR
IRR (Cash flows [, Estimate])
日付を使用した IRR
IRR (Cash flows, Dates, Transaction list [, Estimate])
引数
時間ディメンションを使用した IRR
引数 | データ型 | 説明 |
Cash flows (必須) | 数値 | 入金と出金を表す一連の正と負の値を含むライン アイテム。 この引数で使用するライン アイテムには時間ディメンションが必要です。 |
Estimate (オプション) | 数値 |
この引数は必須ではありません。省略した場合、デフォルト値は 0.1 です。 |
日付を使用した IRR
引数 | データ型 | 説明 |
Cash flows (必須) | 数値 | 入金と出金を表す一連の正と負の値 Transaction list 引数でディメンションとして使用されているリストが必要です。 |
Dates (必須) | 日付 | Cash flows 引数の各値に関連付けられている日付 |
Transaction list (必須) | リスト | 取引識別子のリスト。Cash flows 引数と Dates 引数の共通のディメンションにする必要があります。 |
Estimate (オプション) | 数値 |
この引数は必須ではありません。省略した場合、デフォルト値は 0.1 です。 |
IRR
関数は数値を返します。
計算エンジンの機能の違い
動作 | Classic | Polaris |
最初のキャッシュフローの選択 (日付バリアントにのみ適用) | キャッシュフローが Transaction list ディメンションに関して順序どおりでない場合、Classic では一部のキャッシュフローに間違ったインデックスが関連付けられる可能性があり、信頼できない結果につながります。 | Polaris では、取引の順序に関係なく、常に正しい結果が返されます。 |
スケーリング係数 (時間ディメンション バリアントにのみ適用) | Classic では、時間ディメンションの実際の構造に関係なく、Cash flows の時間ディメンションのタイム スケールによってのみスケーリング係数が決定されます。 | Polaris では、スケーリング係数は、会計年度内のリーフ期間 (Cash flows の時間ディメンション) の平均数です。 注記:一般的な週カレンダー タイプを使用する場合、つまり会計年度がない場合は、Classic と同じように、週単位の取引が日単位の取引に変換され、固定の 365 スケーリング係数が使用されます。 |
Estimate が NaN | 結果は未定義です。 | NaN が返されます。 |
すべてのキャッシュフローがゼロ | 値がちょうどゼロの場合、NaN が返されます。 | 値が許容範囲内でゼロに等しい場合は 0 が返されます。 |
Dates の値が空白 | 1899 年 12 月 31 日 (Anaplan 時代の 1 日前) として扱われます。 | キャッシュフロー値に関係なく NaN が返されます。 |
ライン アイテムターゲット ライン アイテムのディメンション性 | Transaction list によってディメンション化できます。 | Transaction list によってディメンション化できません。 時間ディメンション バリアントの場合、ターゲット ライン アイテムに時間ディメンションを含めることはできません。 |
Transaction list が空 | NaN が返されます。 | Polaris では、Estimate が NaN でない限り、この関数は常に 0 を返します。NaN の場合、関数は代わりに NaN を返します。 |
追加情報
時間ディメンションを使用した IRR 計算
日付を使用した IRR 計算
各パラメーターの説明は以下のとおりです。
- n: キャッシュフローの合計数
- Ci: i 番目の時間軸におけるキャッシュフロー
- ρ : 割引率
- kT: 時間粒度に基づくスケーリング係数。
- di: i 番目の取引の日付とシーケンス内の最も早い取引の日付の間の日数。
この関数では、指定された時間粒度に基づいて自動的にスケーリングし、適切なスケーリング係数 kT を選択します。そのため、ユーザーは分析対象の投資の元の時間粒度で計算を表現できます。また、ユーザーは追加の計算を行わずに、結果の IRR
値を異なる時間粒度で比較できます。それぞれのケースでスケーリング係数がどのように計算されるかについては以下を参照してください。
エンジン | カレンダー タイプ | 使用されるスケーリング係数 kT |
Polaris | 会計年度 | リーフ期間数 / 年数 が Cash flows ライン アイテムの時間ディメンションでカウントされます。 |
一般的な週 | 週と日で 週単位の引は、週の最初の曜日に発生する日単位の取引として扱われます。 | |
Classic | 会計年度 |
|
一般的な週 | 週と日で 週単位の引は、週の最初の曜日に発生する日単位の取引として扱われます。 |
本番リストでの IRR の使用
本番リストを Transaction list (ユーザー リストなど) として使用すると、これらのリストはモデルの有効期間中に変更されることが想定されているため、計算結果に予期しない影響を与える可能性があります。
制約
- Polaris では、Transaction list に関連するディメンションがターゲット モジュールにある場合、日付バリアントは使用できません。
- この関数はどのようなキャッシュフロー シーケンスでも受け入れます。ただし、Cash flows 引数に少なくとも一つの正の値と一つの負の値が含まれていない場合、方程式には解が存在しないことが保証されます。その場合、すべてのキャッシュフローが 0 で Polaris を使用していない限り、
IRR
は NaN を返します。
同等の操作が行える Excel の関数
Excel の IRR 関数では、キャッシュフローが等間隔であると想定し、実際のキャッシュフロー間の時間間隔に関係なく、時間スケーリング係数を kT = 1 に固定します。この関数は、Cash flows
ライン アイテムのタイムスケールが年に設定されている場合にのみ、Anaplan の時間ディメンション バリアントの IRR
と一致します。
Excel の XIRR 関数は実際の日付を受け入れ、日次複利を前提として常に kT = 1/365 を使用します。一連のキャッシュフローの年換算された IRR
を 常に返します。そのため、異なるキャッシュフロー シーケンスの IRR
を比較することが容易になりますが、キャッシュフローが日数以外の時間粒度で指定されている場合は、適切な取引日を導き出すためにユーザーが追加の計算を実行する必要があります。
Anaplan の IRR 関数は、Cash flows
ライン アイテムのタイムスケール (日単位、月単位、四半期単位など) に基づいて適切な kT を自動的に選択して、年間相当利率を返します。上記の表を参照して、各ケースでスケーリング係数 kT がどのように決定されるかを確認してください。これにより、ユーザーは追加の変換を行わずに結果の IRR
値を比較できるようになります。
Polaris では、財務分析における IRR
結果の信頼性と比較可能性を確保するために、より厳格な検証しきい値が設けられています。理論上、Polaris は Classic や Excel よりも頻繁に IRR
に対して NaN を返す可能性があります。しかし、実際にはこのようなことはめったに起こらず、IRR
の非常に小さな変化が NPV
の異常に大きな変化をもたらす場合、つまり IRR
が -1 に非常に近い場合にのみ発生します。このアプローチは、Classic や Excel と比較して、Polaris の信用性と信頼性を向上させるのに役立ちます。
例
時間ディメンションを使用した IRR の例
日付を使用した IRR の例