- 作成日 : 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の整合性検証も行えます。収束しない場合は推定値の調整が効果的で、シナリオ分析や複数案件比較など高度な投資評価にも対応します。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
PI関数の使い方:円周率を使った正確な計算を行う方法
PI関数は、数学定数π(円周率)の値を返すエクセルの数学関数です。約3.14159265358979という15桁の精度で円周率を提供し、円の面積や円周、球の体積、三角関数の計算など、様々な幾何学的計算で活用されています。 建築設計、製造業、…
詳しくみるエクセルでよく使う記号一覧
エクセルを日々利用する中で、計算やデータ処理を効率よく行うためには、さまざまな記号を正しく使うことが不可欠です。本記事では、エクセルでよく使用される基本的な演算記号や、特定の計算を行う際に役立つ記号を一覧形式で紹介します。それぞれの記号がど…
詳しくみるエクセルでファイルを閉じるショートカットまとめ
エクセルはビジネスや日常のデータ管理に非常に便利なツールですが、効率的に作業を進めるためにはショートカットキーの活用が欠かせません。本記事では、エクセルでファイルを閉じる際に役立つショートカットをまとめてご紹介します。基本的なファイルの閉じ…
詳しくみるエクセルで電話番号の「0」が消える!原因と一括設定テクニック
エクセルに電話番号を入力すると、先頭の「0」が勝手に消えてしまって困った経験はありませんか?これは、エクセルが数字データを自動的に「数値」として認識し、数学的な意味を持たない先頭のゼロを省略してしまうために起こります。 この記事では、なぜ電…
詳しくみるExcelのCopilot使い方ガイド!AIがエクセルのデータ分析を加速する
Excel in Copilot(コパイロット)は、Microsoft 365 Copilotに組み込まれたAIインタラクション」の一部です。Excelでは、データ分析や関数作成、グラフ生成などの操作を自然言語でCopilotに指示するだけ…
詳しくみるSTDEV.S関数の使い方:標本データから母集団の標準偏差を推定する方法
STDEV.S関数は、標本データから母集団全体の標準偏差を推定する統計関数です。品質管理での製品のばらつき評価、投資リスクの測定、顧客満足度調査の分析、製造工程の安定性評価など、サンプルデータから全体の変動性を推定する場面で活用されます。例…
詳しくみる