初期投資額と、1年目からの各年のキャッシュフロー(その年に受け取ったお金)を入力してください。NPV(正味現在価値)がちょうど0になる割引率=IRR(内部収益率)を計算します。
このページでできること
- 初期投資額と各年のキャッシュフロー(その年に受け取ったお金)を入れるだけで、IRR(内部収益率・年率)を計算します
- 投資期間・総リターン(期間全体の損益)・グロスリターンも同時にまとめて表示します
- 毎年の金額がバラバラでも計算でき、途中の年の追加投資(マイナスのキャッシュフロー)にも対応しています
- NPV(正味現在価値)のグラフで、NPVが0になる点=IRRがどこにあるか一目でわかります
- 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
「400万円の機械を導入すると、3年間で100万・200万・300万円分のコスト削減が見込める」——この見積もりならIRRは年約19.4%です。会社の投資判断では、このIRRを最低限求める利回り(ハードルレート。借入金利や資本コスト)と比べ、上回れば採用というのが定番の使い方で、経営学・ファイナンスの教科書にも必ず登場します。
ただし将来のキャッシュフローはあくまで見積もりなので、控えめな数字でも計算しておくのが実務のコツです。
不動産投資のお金の流れは「最初に物件を買い、毎年家賃が入り、最後に売却代金が入る」という形で、年ごとの金額がバラバラです。こういう不揃いなキャッシュフローを1つの年率にまとめられるのがIRRの強みで、不動産投資の世界では物件の比較指標として広く使われています。
表面利回り(家賃÷価格)と違い、売却損益や空室で家賃が減った年まで含めて評価できます。
住宅用の太陽光発電は「最初に設置費用を払い、毎年電気代の節約と売電収入が入る」というIRR向きのお金の流れです。例えば設置に100万円かかり、毎年の節約額を並べてIRRを計算すれば、「この設備は年何%の利回りの投資に相当するか」という形で、定期預金や投資信託と同じ物差しで比べられます。
売電価格の変化や機器の寿命など前提が変わると結果も変わるので、いくつかのパターンで計算してみるのがおすすめです。
ベンチャーキャピタルやプライベートエクイティなど投資ファンドの世界では、ファンドの成績を表す標準の指標がIRRです。「お金をいつ預かり、いつ返したか」がファンドごとにバラバラなので、時間まで考えたIRRでないと公平に比べられないためです。
投資銀行や企業のM&A(買収)の検討でも、買収額と将来の利益計画からIRRを計算して採否を判断します。金融の仕事を目指す人が最初に覚える計算の一つです。
初期投資1,000万円で、5年間の受け取りの合計がどちらも1,500万円(総リターン500万円・グロスリターン50%)の投資AとBがあるとします。Aは早めに多く戻り(50万・200万・250万・400万・600万)、Bは終わりに偏っています(0・100万・300万・300万・800万)。
合計は同じでも、IRRはAが年11.290%、Bが年10.259%で、早くお金が戻るAの方が上です。戻ったお金は次の投資に回せるから——この「お金の時間価値」を数字で見せてくれるのがIRRです。
式とグラフ
用語・記号の解説
記号
| IRR | アイアールアール (内部収益率) | Internal Rate of Return(内部収益率)。NPVをちょうど0にする割引率で、その投資の1年あたりの利回りを表します。(例:400万円を投資して3年間で100万・200万・300万円受け取ると年19.438%) |
| NPV | エヌピーブイ (正味現在価値) | Net Present Value(正味現在価値)。投資のお金の出入りを全部今の価値に直して足した金額です。プラスなら割引率以上に得な投資という意味になります。 |
| \(CF_t\) | シーエフ・ティー | \(t\) 年目のキャッシュフロー。その年に受け取ったお金(マイナスなら支払ったお金)です。 |
| \(CF_0\) | シーエフ・ゼロ | 0年目(=今)のキャッシュフロー。初期投資は支払いなのでマイナスの値になります。この計算機では初期投資額をプラスで入力すると、内部でマイナスとして扱います。 |
| \(r\) | アール | 割引率。将来のお金を今の価値に直すときに使う年率です。IRRは「NPVが0になる特別な \(r\)」です。 |
| \(t\) | ティー | 経過年数。投資した時点を0年目として、何年目のお金かを表します。 |
| \(n\) | エヌ | 投資期間(年)。最後のキャッシュフローが何年目かを表します。 |
| \(PV\) | ピーブイ | 現在価値(Present Value)。将来のお金を今の価値に直した金額です。 |
| \(S\) | エス | 受け取ったお金の合計。1年目から \(n\) 年目までのキャッシュフローを全部足した金額です(追加投資はマイナスとして足します)。 |
| \(TR\) | ティーアール | 総リターン(Total Return)。受け取った合計から初期投資額を引いた、期間全体の損益です。 |
| \(G\) | ジー | グロスリターン(Gross Return)。総リターンが初期投資額の何%かを表します。時間を考えない「期間全体の合計%」です。なお投資信託の実務では「手数料を引く前のリターン」という別の意味で使われることもあります。 |
用語
| キャッシュフロー | キャッシュフロー | お金の出入りのこと。受け取りをプラス、支払いをマイナスの数で表します。IRRの計算では「いつ・いくら」動いたかが重要です。 |
| 割引率 | わりびきりつ | 将来のお金を今の価値に直す(割り引く)ときに使う年率。「1年後の110万円は、年10%で割り引くと今の100万円」のように使います。 |
| 現在価値 | げんざいかち | 将来のお金を「今ならいくらに相当するか」に直した金額。お金には時間の価値があるため、同じ100万円でも受け取りが遅いほど現在価値は小さくなります。 |
| 正味現在価値 (NPV) |
しょうみげんざいかち | 投資のすべてのキャッシュフローの現在価値を合計した金額。プラスなら「割引率以上にもうかる投資」を意味し、投資判断の最も基本的な物差しです。 |
| 内部収益率 (IRR) |
ないぶしゅうえきりつ | NPVをちょうど0にする割引率。その投資が「1年あたり何%の利回りに相当するか」を1つの数字で表せるため、事業投資や不動産投資の評価で広く使われます。 |
| ハードルレート | ハードルレート | 投資に最低限求める利回り(資本コストなど)。実務では「IRRがハードルレートを上回れば採用」という形で使われます。 |
| 複数IRR問題 | ふくすうアイアールアールもんだい | キャッシュフローの符号が2回以上入れ替わると、NPVを0にする割引率が2つ以上存在しうるという数学的な性質。この場合IRRだけでは判断できないため、NPVで判断します。 |
| 数値解法 | すうちかいほう | 式変形では解けない方程式を、コンピュータが値を少しずつ変えて試しながら答えに近づけていく解き方。IRRはこの方法(二分法・ニュートン法など)で求めます。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
| 割合・百分率(小学5年) |
|
| 正負の数(中学1年) |
|
| 累乗・指数(中学1年) |
|
| 方程式の考え方(中学1年) |
|
| 複利・お金の時間価値(高校 家庭科・数学) |
|
Excelで計算する方法
| t年後に受け取るお金(円) | 110000 |
| 割引率(%) | 10 |
| 経過年数 t | 1 |
| 現在価値(円) | =B1/(1+B2/100)^B3 |
| 初期投資(マイナスで入力) | -1000000 |
| 1年目のキャッシュフロー | 550000 |
| 2年目のキャッシュフロー | 605000 |
| 割引率(%) | 10 |
| NPV(円) | =NPV(B4/100,B2:B3)+B1 |
| 初期投資(マイナスで入力) | -4000000 |
| 1年目のキャッシュフロー | 1000000 |
| 2年目のキャッシュフロー | 2000000 |
| 3年目のキャッシュフロー | 3000000 |
| IRR(%) | =IRR(B1:B4)*100 |
| 初期投資額 | 4000000 |
| 受け取ったお金の合計 | 6000000 |
| 総リターン(円) | =B2-B1 |
| グロスリターン(%) | =(B2-B1)/B1*100 |
2つ目の表のNPV関数には有名な落とし穴があります。ExcelのNPV関数は「1年目以降」のお金だけを範囲に入れ、初期投資(0年目)は関数の外で足すのが正しい使い方です(例ではちょうど0になります)。
1つ目の表はちょうど100,000円、4つ目の表は総リターン2,000,000円・グロスリターン50%になります。B列を自分の数値に書き換えるだけで使えます。
Googleスプレッドシートで計算する方法
| t年後に受け取るお金(円) | 110000 |
| 割引率(%) | 10 |
| 経過年数 t | 1 |
| 現在価値(円) | =B1/(1+B2/100)^B3 |
| 初期投資(マイナスで入力) | -1000000 |
| 1年目のキャッシュフロー | 550000 |
| 2年目のキャッシュフロー | 605000 |
| 割引率(%) | 10 |
| NPV(円) | =NPV(B4/100,B2:B3)+B1 |
| 初期投資(マイナスで入力) | -4000000 |
| 1年目のキャッシュフロー | 1000000 |
| 2年目のキャッシュフロー | 2000000 |
| 3年目のキャッシュフロー | 3000000 |
| IRR(%) | =IRR(B1:B4)*100 |
| 初期投資額 | 4000000 |
| 受け取ったお金の合計 | 6000000 |
| 総リターン(円) | =B2-B1 |
| グロスリターン(%) | =(B2-B1)/B1*100 |
Pythonで計算する方法
initial_investment = 4000000 # 初期投資額(円)
cash_flows = [1000000, 2000000, 3000000] # 1年目からの各年のキャッシュフロー(円)
# NPV(正味現在価値):キャッシュフローを全部今の価値に直して足す
def npv(rate, cfs):
return sum(cf / (1 + rate) ** t for t, cf in enumerate(cfs))
cfs = [-initial_investment] + cash_flows
# NPVが0になる割引率(IRR)を二分法で探す
# (符号の入れ替わりが1回だけの、普通の投資向けの簡易版です)
low, high = -0.9999, 10.0
for _ in range(200):
mid = (low + high) / 2
if npv(low, cfs) * npv(mid, cfs) <= 0:
high = mid
else:
low = mid
irr = (low + high) / 2
total_return = sum(cash_flows) - initial_investment
gross_return = total_return / initial_investment * 100
print(f"IRR: {irr * 100:.3f}%")
print(f"総リターン: {total_return}円")
print(f"グロスリターン: {gross_return:.3f}%")
数式記述言語(LaTeX等)での書き方(コピペ可)
PV = CFₜ ÷ (1 + r)ᵗ
PV = \dfrac{CF_t}{(1+r)^{t}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>PV</mi>
<mo>=</mo>
<mfrac>
<msub><mi>CF</mi><mi>t</mi></msub>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>r</mi><mo>)</mo></mrow>
<mi>t</mi>
</msup>
</mfrac>
</mrow>
</math>
PV = (CF_t) / ((1 + r)^t)
cf/(1 + r)^t
PV := cf/(1 + r)^t;
PV = cf/(1 + r)^t;
PV = CF_t/(1 + r)^t
NPV = CF₀ + CF₁/(1 + r)¹ + … + CFₙ/(1 + r)ⁿ
\mathrm{NPV} = \sum_{t=0}^{n} \dfrac{CF_t}{(1+r)^{t}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>NPV</mi>
<mo>=</mo>
<munderover>
<mo>∑</mo>
<mrow><mi>t</mi><mo>=</mo><mn>0</mn></mrow>
<mi>n</mi>
</munderover>
<mfrac>
<msub><mi>CF</mi><mi>t</mi></msub>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>r</mi><mo>)</mo></mrow>
<mi>t</mi>
</msup>
</mfrac>
</mrow>
</math>
NPV = sum_(t=0)^n (CF_t) / ((1 + r)^t)
Sum[cf[t]/(1 + r)^t, {t, 0, n}]
NPV := sum(cf(t)/(1 + r)^t, t = 0 .. n);
NPV = sum(cf ./ (1 + r).^(0:n));
NPV = ∑_(t=0)^n CF_t/(1 + r)^t
CF₀ + CF₁/(1 + IRR)¹ + … + CFₙ/(1 + IRR)ⁿ = 0
\sum_{t=0}^{n} \dfrac{CF_t}{(1+\mathrm{IRR})^{t}} = 0
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<munderover>
<mo>∑</mo>
<mrow><mi>t</mi><mo>=</mo><mn>0</mn></mrow>
<mi>n</mi>
</munderover>
<mfrac>
<msub><mi>CF</mi><mi>t</mi></msub>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>IRR</mi><mo>)</mo></mrow>
<mi>t</mi>
</msup>
</mfrac>
<mo>=</mo>
<mn>0</mn>
</mrow>
</math>
sum_(t=0)^n (CF_t) / ((1 + IRR)^t) = 0
Solve[Sum[cf[t]/(1 + x)^t, {t, 0, n}] == 0, x]
solve(sum(cf(t)/(1 + x)^t, t = 0 .. n) = 0, x);
solve(sum(cf ./ (1 + x).^(0:n)) == 0, x)
∑_(t=0)^n CF_t/(1 + IRR)^t = 0
G = (S − C₀) ÷ C₀
G = \dfrac{S - C_0}{C_0}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>G</mi>
<mo>=</mo>
<mfrac>
<mrow><mi>S</mi><mo>−</mo><msub><mi>C</mi><mn>0</mn></msub></mrow>
<msub><mi>C</mi><mn>0</mn></msub>
</mfrac>
</mrow>
</math>
G = (S - C_0) / C_0
(s - c0)/c0
G := (s - c0)/c0;
G = (s - c0)/c0;
G = (S − C_0)/C_0
ChatGPT に聞いて計算してもらう方法
あなたは投資の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 400万円を投資して、1年目に100万円、2年目に200万円、3年目に300万円を受け取りました。 次の値をそれぞれ求めてください。 1. IRR(内部収益率、%・小数3桁)= NPV(r) = -4000000 + 1000000/(1+r) + 2000000/(1+r)^2 + 3000000/(1+r)^3 が0になる r 2. 総リターン(円) 3. グロスリターン(%・小数3桁) 計算に使った式と、実行結果の数値を示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
