- 作成日 : 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の整合性検証も行えます。収束しない場合は推定値の調整が効果的で、シナリオ分析や複数案件比較など高度な投資評価にも対応します。
この記事をお読みの方におすすめのガイド5選【部署別紹介】
最後に、この記事をお読みの方によく活用いただいている人気の資料・ガイドを紹介します。すべて無料ですので、ぜひお気軽にご活用ください。
経理担当者向け
①Excel関数集 32選まとめブック
経理担当者の方をはじめ、ビジネスパーソンが知っておきたい便利なExcel関数集を初級~上級までギュッと網羅。新人社員の研修用などにもお使いいただけます。Google スプレッドシートならではの関数もご紹介しています。
②勘定科目・仕訳辞典(税理士監修)
勘定科目・仕訳に関する基本知識、および各勘定科目の仕訳例を具体的かつ網羅的にまとめた、50ページを超えるガイドを無料で提供しております。お手元における保存版としてでだけでなく、従業員への印刷・配布用としてもぜひご活用ください。
人事労務担当者向け
①入社・退職・異動の手続きガイドブック
書類の回収・作成・提出など手間のかかる入社・退職・異動(昇給・昇格、転勤)の手続き。
最新の制度をもとに、よくある質問やチェックポイントを交えながら、各手続きに必要な情報をまとめた人気のガイドですす。
②社会保険・労働保険の手続きガイド
企業において社会保険および労働保険の加入・喪失手続きは必ず発生し、手続きを誤れば保険事故が発生した際に従業員が不利益を被る可能性があります。
各保険の基本的な手続き方法を入社・退職・異動のシーン別にギュッとまとめた分かりやすいガイドです。
総務・法務担当者向け
契約書ひな形まとめ30選
業務委託契約書や工事請負契約書…など各種契約書や、誓約書、念書・覚書、承諾書・通知書…など、使用頻度の高い30個のテンプレートをまとめた、無料で使えるひな形パックです。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
スプレッドシートがスマホで編集できないのはなぜ?原因別の対処法からアプリ設定、権限問題まで解決ガイド
Googleスプレッドシートをスマートフォンで編集しようとしたときに、入力できない、変更が保存されない、そもそも開けないといった問題に遭遇することがあります。モバイル環境特有の制限や設定の問題、アプリの不具合など、スマホで編集できない原因は…
詳しくみる名刺管理をエクセルで簡単に!テンプレートやマクロの活用ポイントも解説
名刺は貴重なビジネス資産ですが、管理が面倒で後回しになりがちです。しかし、エクセルを使えば誰でも簡単に、効率的な名刺管理が実現できます。 この記事では、エクセルで名刺管理を行うメリットや、初心者でもすぐに実践できる具体的な手順を、テンプレー…
詳しくみるエクセルのコメント機能の使い方とは?一緒に印刷するにはどうする?
エクセルのコメント機能は、データに対する補足情報や意見を追加するのに非常に便利です。これにより、他のユーザーと効率的に情報を共有し、より良いコラボレーションが可能になります。本記事では、エクセルのコメント機能の具体的な使い方と、これらのコメ…
詳しくみるDEGREES関数の使い方:ラジアンを度に変換する方法
DEGREES関数は、角度をラジアン単位から度単位に変換する関数です。三角関数の計算結果の表示、CADデータの角度変換、測量データの処理など、角度の単位変換が必要な場面で使われます。 例えば、エクセルの三角関数はラジアンで計算されるため、そ…
詳しくみるスプレッドシートで上付き文字を設定する方法とは?数式や化学式で使える表示テクニック
Googleスプレッドシート(Google Sheets)で科学的な数式、化学式、数学的な表記、商標記号などを正確に表現するには、上付き文字(superscript)の設定が必要になります。しかし、WordやExcelと異なり、スプレッドシ…
詳しくみるスプレッドシートで罫線を引くには?PC・スマホの操作と表示されない時の対処法
Googleスプレッドシートで表を見やすく整えるために欠かせないのが「罫線」です。外枠をつけて表全体を区切ったり、見出し部分を太線で強調したりするだけで、データの可読性は大きく向上します。ところが、Excelに慣れている方は「罫線がどこにあ…
詳しくみる



