- 作成日 : 2025年8月25日
XIRR関数の使い方:エクセルで不規則なキャッシュフローの内部収益率を計算する方法
XIRR関数は、不規則な間隔で発生するキャッシュフローの内部収益率(IRR)を計算するエクセルの財務関数です。通常のIRR関数が定期的なキャッシュフローを前提とするのに対し、XIRR関数は実際の日付を考慮して正確な収益率を算出できます。
不動産投資、ベンチャー投資、プロジェクトファイナンス、投資信託の評価など、現実の投資案件の収益性評価で広く活用されています。
本記事では、XIRR関数の基本的な使い方から実務での応用例、IRR関数との使い分け、計算が収束しない場合の対処法、そしてよくある計算ミスとその回避方法まで、わかりやすく解説します。
XIRR関数の使い方
XIRR関数とは
XIRR関数は、不規則な間隔で発生するキャッシュフローに対して、年率換算の内部収益率を計算する関数です。内部収益率とは、投資の正味現在価値(NPV)をゼロにする割引率のことで、投資の収益性を評価する最も重要な指標の一つです。実際の投資では、キャッシュフローが毎月や毎年といった定期的なタイミングで発生することは稀で、XIRR関数はこうした現実的な状況に対応できる強力なツールです。
たとえば、不動産投資で初期投資後に不定期な賃料収入があり、最終的に物件を売却するケースや、ベンチャー投資で複数回の追加投資と部分的な回収が発生するケースなど、実務で遭遇する複雑な投資案件の評価に適しています。
基本構文
XIRR関数の構文は次のとおりです。
=XIRR(値, 日付, [推定値])
各引数について詳しく説明します。
- 値:キャッシュフローの金額を含む範囲を指定します。投資(支出)は負の値、回収(収入)は正の値で表現します。少なくとも1つの負の値と1つの正の値が必要です。
- 日付:各キャッシュフローが発生する日付を含む範囲を指定します。値の範囲と同じ数の日付が必要です。
- 推定値:計算の初期値として使用する収益率の推定値です。省略可能で、デフォルトは0.1(10%)です。推定値を適切に指定することで、複雑なキャッシュフローでも計算が収束しやすくなります。
XIRR関数の計算原理
XIRR関数は、以下の方程式を満たす「r」を求めます。
Σ(CFi / (1 + r)^((日付i – 日付0) / 365)) = 0
ここで、CFiは各キャッシュフロー、日付iは各キャッシュフローの発生日です。この計算は反復法により行われ、結果が収束するまで繰り返されます。
基本的な使用例
シンプルな投資案件での計算例を見てみましょう。
初期投資:-1,000,000円(2024/1/1)
配当1:50,000円(2024/6/15)
配当2:50,000円(2024/12/20)
売却収入:1,200,000円(2025/3/31)
=XIRR({-1000000, 50000, 50000, 1200000},
{“2024/1/1”, “2024/6/15”, “2024/12/20”, “2025/3/31”})
セル参照を使用する場合:
A列:キャッシュフロー(A2:A5)
B列:日付(B2:B5)
=XIRR(A2:A5, B2:B5)
IRR関数との違い
IRR関数は定期的なキャッシュフローを前提としますが、XIRR関数は実際の日付を使用します。
// IRR関数(年次キャッシュフローと仮定)
=IRR({-1000000, 300000, 400000, 600000})
// XIRR関数(実際の日付を使用)
=XIRR({-1000000, 300000, 400000, 600000},
{“2024/1/1”, “2024/8/15”, “2025/3/20”, “2025/12/31”})
同じキャッシュフローでも、発生タイミングの違いにより結果が異なります。
XIRR関数の利用シーン
不動産投資の収益率評価
物件購入から賃料収入、売却までの総合的な収益率を計算します。
物件購入:-50,000,000円(2020/4/1)
リフォーム:-5,000,000円(2020/6/15)
賃料収入(不定期):
300,000円(2020/8/1)
300,000円(2020/11/15)
350,000円(2021/2/1)
…(以降も不定期)
売却収入:58,000,000円(2024/3/31)
=XIRR(キャッシュフロー範囲, 日付範囲)
複数物件のポートフォリオ評価:
=XIRR(全物件のCF合計, 対応する日付)
ベンチャー投資・PE投資の評価
段階的な投資と部分的な回収がある場合の収益率計算です。
初期投資:-10,000,000円(2021/1/15)
追加投資:-5,000,000円(2021/9/30)
一部売却:8,000,000円(2023/6/20)
追加投資:-3,000,000円(2023/12/1)
最終売却:25,000,000円(2025/3/15)
=XIRR(投資額範囲, 投資日範囲)
ファンド全体のパフォーマンス評価:
=XIRR(全投資先のCF, 全日付)
投資信託・積立投資の評価
不定期な積立と一部解約を含む投資の収益率を正確に計算します。
毎月の積立(金額は変動):
-50,000円(2023/1/25)
-100,000円(2023/2/25)
-75,000円(2023/3/25)
一部解約:200,000円(2023/12/10)
評価額:1,500,000円(2024/3/31)
=XIRR(積立と解約のCF, 対応日付)
プロジェクトファイナンスの評価
建設期間中の段階的な投資と完成後の収益を評価します。
設計費:-5,000,000円(2022/1/1)
建設費1:-20,000,000円(2022/4/1)
建設費2:-30,000,000円(2022/10/1)
建設費3:-25,000,000円(2023/3/1)
運営収入開始:
3,000,000円(2023/9/1)
3,500,000円(2024/1/15)
…(以降継続)
=XIRR(全CF, 全日付)
M&A投資の収益率計算
企業買収から配当受取、最終的な売却までの投資収益率を評価します。
買収金額:-500,000,000円(2021/7/1)
追加投資:-50,000,000円(2022/3/15)
配当収入:30,000,000円(2023/3/31)
配当収入:40,000,000円(2024/3/31)
売却収入:700,000,000円(2025/6/30)
=XIRR(CF範囲, 日付範囲)
XIRR関数の応用・他関数との組み合わせ
XNPV関数との連携
XIRRで求めた収益率を使用してNPVを検証します。
収益率 = XIRR(CF範囲, 日付範囲)
検証NPV = XNPV(収益率, CF範囲, 日付範囲) // ほぼ0になるはず
感度分析の実施
シナリオ別の収益率を比較します。
楽観シナリオ:=XIRR(楽観CF, 日付)
基本シナリオ:=XIRR(基本CF, 日付)
悲観シナリオ:=XIRR(悲観CF, 日付)
期待収益率 = 楽観XIRR * 0.2 + 基本XIRR * 0.6 + 悲観XIRR * 0.2
条件付きキャッシュフローの計算
特定期間のキャッシュフローのみでXIRRを計算します。
=XIRR(IF((日付>=開始日)*(日付<=終了日), CF, 0),
IF((日付>=開始日)*(日付<=終了日), 日付))
月次収益率への変換
年率のXIRRを月次収益率に変換します。
年率XIRR = XIRR(CF, 日付)
月次収益率 = (1 + 年率XIRR)^(1/12) – 1
ハードルレートとの比較
投資判断の自動化に活用します。
XIRR結果 = XIRR(CF, 日付)
ハードルレート = 0.15 // 15%
判定 = IF(XIRR結果 > ハードルレート, “投資推奨”, “投資見送り”)
複数投資案件の比較
異なる投資案件の収益率を標準化して比較します。
案件A_XIRR = XIRR(案件A_CF, 案件A_日付)
案件B_XIRR = XIRR(案件B_CF, 案件B_日付)
案件C_XIRR = XIRR(案件C_CF, 案件C_日付)
最良案件 = INDEX({“A”,”B”,”C”}, MATCH(MAX(案件A_XIRR, 案件B_XIRR, 案件C_XIRR),
{案件A_XIRR, 案件B_XIRR, 案件C_XIRR}, 0))
期間収益率の計算
特定期間の収益率を年率換算で計算します。
期間日数 = 最終日 – 初日
期間収益率 = (最終価値 / 初期投資)^(365/期間日数) – 1
XIRR関数のよくあるエラーと対策
#NUM!エラーの原因と対処
最も頻繁に発生するエラーで、計算が収束しない場合に表示されます。
原因1:すべてのキャッシュフローが同じ符号
誤:=XIRR({1000, 2000, 3000}, 日付) // すべて正の値
正:=XIRR({-5000, 2000, 3000, 1000}, 日付) // 負の値を含む
原因2:極端な収益率
// 推定値を調整して再計算
=XIRR(CF, 日付, -0.5) // デフォルトの0.1から変更
原因3:収束しない複雑なキャッシュフロー
// 段階的に推定値を変更
=IFERROR(XIRR(CF, 日付, 0.1),
IFERROR(XIRR(CF, 日付, 0),
IFERROR(XIRR(CF, 日付, -0.5), “計算不可”)))
#VALUE!エラーの対処
引数の形式に問題がある場合に発生します。
原因1:値と日付の数が一致しない
=IF(COUNT(CF範囲)=COUNT(日付範囲),
XIRR(CF範囲, 日付範囲),
“データ数を確認”)
原因2:無効な日付形式
=IFERROR(XIRR(CF, 日付), “日付形式を確認”)
異常に高い/低い収益率
現実的でない収益率が計算される場合の対処法です。
結果 = XIRR(CF, 日付)
=IF(OR(結果 > 10, 結果 < -0.9),
“異常値:データを確認”,
結果)
初期投資がない場合
最初のキャッシュフローが正の値の場合の問題です。
// 仮想的な初期投資を追加
=XIRR({0; CF範囲}, {初日-1; 日付範囲})
日付の順序エラー
日付が時系列順でない場合の対処です。
// データを日付順にソートしてから計算
- データを日付でソート
- ソート後のデータでXIRR計算
精度の問題
非常に小さい、または大きいキャッシュフローでの精度低下:
// 単位を調整(百万円単位など)
=XIRR(CF範囲/1000000, 日付範囲)
不規則な投資の収益率を正確に評価できるXIRR関数
XIRR関数は、実際の日付に基づくキャッシュフローから内部収益率(IRR)を年率で計算する関数です。不動産やベンチャー投資、M&Aなど不定期なキャッシュフローの収益性評価に最適です。
IRR関数が定期収益を前提とするのに対し、XIRR関数は現実の資金移動に対応し、より正確な分析が可能です。
XNPVとの連携によりNPVの整合性検証も行えます。収束しない場合は推定値の調整が効果的で、シナリオ分析や複数案件比較など高度な投資評価にも対応します。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
エクセルで条件付き書式をコピーする方法まとめ
エクセルでは、条件付き書式を活用することでデータを視覚的に分かりやすくすることができます。本記事では、エクセルでの条件付き書式のコピー方法をまとめました。特定の範囲内でのコピーはもちろん、別シートへのコピーや、コピーに関する注意点についても…
詳しくみるPOWER関数完全ガイド – エクセルで累乗計算をマスターする方法
POWER関数は、指定した数値を任意の累乗に計算するエクセルの数学関数です。複利計算、面積・体積の計算、統計分析、科学技術計算など、幅広い分野で活用されています。本記事では、POWER関数の基本的な使い方から実務での応用例、他の関数との効果…
詳しくみるTODAY関数の使い方を応用までわかりやすく解説
Excelにおいて、TODAY関数は現在の日付を取得するための非常に便利なツールです。この関数を活用することで、日付計算やデータ管理が効率化されます。本記事では、TODAY関数の基本的な使い方から、和暦の表示や翌日の日付の取得、曜日の表示、…
詳しくみるEXCELのCHAR関数とは?文字コードの変換やCODE関数との連携を紹介
ExcelのCHAR関数(読み方:キャラクター/キャラ/チャー関数)を使えば、記号や特殊文字、連続する文字、セル内での改行などを簡単に挿入できます。 本記事では、CHAR関数の基本的な使い方から、CODE関数との連携方法、入力作業を効率化す…
詳しくみるLARGE関数の使い方:エクセルで上位n番目の値を抽出する方法
LARGE関数は、データセットから指定した順位の大きい値を抽出するエクセルの統計関数です。最大値だけでなく、2番目、3番目に大きい値など、任意の順位の値を簡単に取得できます。売上ランキングの作成、成績上位者の抽出、品質管理での異常値検出、在…
詳しくみるエクセルで箇条書きを作成する方法を徹底解説!見やすい資料作りの第一歩
エクセルは、数値データの計算だけでなく、文章を整理する場面でも便利なツールです。しかし、Wordのように箇条書き専用のボタンは用意されていません。それでも、記号や改行、インデントの工夫によって、見た目にもわかりやすい箇条書きをエクセル上で実…
詳しくみる