各期間のリターン(%)と保有期間(年・か月)を、古い期間から順に入力してください。2期間以上で計算できます(最大20期間)。投資全体の累積リターンと、1年あたりに直した平均リターン(幾何平均・年率)を計算します。
このページでできること
- 「1年目は+10%、次の5か月は−2%…」のような期間ごとのリターン(%)と保有期間(年・か月)から、投資全体の累積リターンと平均リターン(年率)を計算します
- 平均リターンは、デコボコな各期間のリターンをならして「毎年同じ何%で増え続けたのと同じか」に直した値(幾何平均の年率)です。保有期間の違う投資同士を公平に比べられます
- 「平均+25%なのに損している」が起こる算術平均との違い(このページの一番大事なポイント)も式カードでわかりやすく解説します
- 100万円から始めた場合の期間ごとの残高の推移表と、実際の残高・平均リターンで一定成長した場合の曲線を重ねたグラフも表示します
この計算は何の役に立つ?
「1年目+10%、2年目−5%、3年目+20%」のように成績がデコボコなとき、証券会社の運用報告書や投資信託の「年率リターン」は、このページと同じ幾何平均で計算されています。
自分の投資の成績表を年率に直せると、投資信託同士の比較や、目標(例:年5%)との答え合わせが同じ土俵でできるようになります。なお途中で積立や引き出しをした場合は、資金加重の利回り(IRR)で見るのが正確です。
−50%と+100%の算術平均は+25%ですが、実際の資産は100万円 → 50万円 → 100万円で、もうけはゼロです。成績のブレが大きいほど、算術平均は実際より良く見えます。
「平均リターン◯%」という宣伝や記事を見たら、それが算術平均なのか幾何平均(年率)なのかを疑う——この1つの知識だけで、誇大な数字にだまされにくくなります。
「3年で売上が1.5倍」を年率に直すと \(1.5^{1/3} - 1 \fallingdotseq 14.5\%\) です。この値はCAGR(年平均成長率)と呼ばれ、事業計画・決算資料・IR情報で標準的に使われています。
期間の違う事業や会社の成長を「1年あたり」に揃えて比べられるので、ビジネスの資料作りや企業分析の道具として出番が多い計算です。
過去の成績から平均リターン(年率)を求めておくと、「この調子なら20年後にいくらになるか」を複利計算で見積もれます(例:年率5%なら20年で約2.65倍)。
ただし過去の平均リターンは将来を保証しません。計画では少し低めの年率でも計算しておき、幅を持って考えるのが堅実です。
「2年で+30%だったA」と「3年半で+50%だったB」はどちらが効率的だったのか——累積リターンのままでは比べられませんが、年率に直すとAは約14.0%、Bは約12.3%で、Aの方が効率的だったとわかります。
保有期間がか月単位で半端でも、このページの計算ならそのまま年率に揃えられます。
式とグラフ
用語・記号の解説
記号
| \(r_i\) | アール・アイ | \(i\) 期間目のリターン(収益率)。その期間に資産が何%増えたか(減ったか)を表します。計算では%を小数に直して使います(+10%なら0.1、−5%なら−0.05)。 |
| \(y\)・\(m\) | ワイ エム | 保有期間の入力値。\(y\) が年数、\(m\) がか月数です。(例:1年2か月なら \(y=1\)、\(m=2\)) |
| \(h_i\) | エイチ・アイ | \(i\) 期間目の保有期間を年に直した値。\(h = y + m \div 12\) で求めます。(例:1年2か月 → 約1.17年) |
| \(B_0\)・\(B_i\)・\(B_n\) | ビー・ゼロ ビー・アイ ビー・エヌ | 残高(Balance)。\(B_0\) は始めの金額、\(B_i\) は \(i\) 期間目の終わりの残高、\(B_n\) は最後の期間の終わりの残高です。このページの推移表は \(B_0 = 100\) 万円で計算しています。 |
| \(T\) | ティー | 総保有期間(年)。各期間の \(h_i\) をすべて足した値です。(例:1年+1年+6か月 → \(T = 2.5\) 年) |
| \(R\) | アール(大文字) | 累積リターン。全期間を通して資産が何%増えたか(減ったか)です。 |
| \(r_{avg}\) | アール・アベレージ | 平均リターン(年率)。デコボコな各期間のリターンを「毎年同じ何%」に直した値で、このページの計算の主役です。avgは平均を意味する英語 average の略です。 |
| \(x^{1/T}\) | エックスのティー分の1乗 | \(x\) の \(T\) 乗根。「\(T\) 乗すると \(x\) になる数」です。(例:\(1.21^{1/2} = \sqrt{1.21} = 1.1\))関数電卓やExcelの「^(1/T)」で計算できます。 |
用語
| リターン (収益率) |
リターン(しゅうえきりつ) | 投資したお金がその期間に何%増えたか(減ったか)を表す値。「利回り」もほぼ同じ意味で使われます。損した期間はマイナスのリターンになります。 |
| 累積リターン | るいせきリターン | 全期間を通しての合計のもうけ(損)を%で表した値。かかった年数を考えないので、期間の違う投資同士の比較には向きません。 |
| 平均リターン (年率) |
へいきんリターン(ねんりつ) | 累積リターンを「毎年同じ何%で増え続けたのと同じか」に直した値。年数を揃えて比べられるので、投資の成績表示の標準として使われます。 |
| 幾何平均 | きかへいきん | 掛け算でつながる量の平均。\(n\) 個の値を全部掛けて \(n\) 乗根をとります。リターンのように倍率で積み重なる量の平均は、算術平均ではなく幾何平均で求めるのが正しい方法です。 |
| 算術平均 | さんじゅつへいきん | 全部足して個数で割る、普通の平均。リターンの平均に使うと、ブレが大きいほど実際より良い数字に見えてしまいます(−50%と+100%の算術平均は+25%ですが、実際のもうけはゼロです)。 |
| 複利 | ふくり | 増えた分も元本に組み入れて、次の期間はその全体が増えていく仕組み。このページの計算は「前の期間の終わりの残高が次の期間の元本になる」複利を前提にしています。 |
| 年率換算 | ねんりつかんさん | 期間がバラバラの成績を「1年あたり何%か」に揃えること。6か月で+3%と2年で+10%のような成績も、年率に直せば公平に比べられます。 |
| CAGR (年平均成長率) |
シーエージーアール | Compound Annual Growth Rate の略。このページの平均リターンとまったく同じ計算で、企業の売上や利用者数などの成長率を年率で表すときによく使われる呼び名です。 |
| 資金加重収益率 | しきんかじゅうしゅうえきりつ | 途中の入金・出金まで考えて「自分のお金が実際にどれだけ働いたか」を表す利回り(IRR・内部収益率と同じ計算)。積立投資のように途中でお金を出し入れした場合の利回りは、このページの計算ではなくこちらが適しています。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
| 割合・百分率(小学5年) |
|
| 分数と小数(小学5年) |
|
| 正負の数(中学1年) |
|
| 累乗・指数(中学1年) |
|
| 累乗根・指数の拡張(高校 数学II) |
|
| 複利の考え方(高校 家庭科・数学) |
|
Excelで計算する方法
| 保有期間:年 | 1 |
| 保有期間:か月 | 2 |
| 年に直した保有期間(年) | =B1+B2/12 |
| 前の期間の終わりの残高(円) | 1000000 |
| その期間のリターン(%) | 10 |
| 年に直した保有期間(年) | 2 |
| 期間の終わりの残高(円) | =B1*(1+B2/100)^B3 |
| 始めの金額(円) | 1000000 |
| 最後の残高(円) | 1320000 |
| 累積リターン(%) | =(B2/B1-1)*100 |
| 始めの金額(円) | 1000000 |
| 最後の残高(円) | 1320000 |
| 総保有期間(年) | 2 |
| 平均リターン(年率%) | =((B2/B1)^(1/B3)-1)*100 |
1つ目の表は 1 + 2 ÷ 12 で約1.17年、2つ目の表は 1,000,000 × 1.1 × 1.1 = 1,210,000円になります。
3つ目の表は32%、4つ目の表は約14.89%と表示されます。B列を自分の数値に書き換えるだけで使えます。
Googleスプレッドシートで計算する方法
| 保有期間:年 | 1 |
| 保有期間:か月 | 2 |
| 年に直した保有期間(年) | =B1+B2/12 |
| 前の期間の終わりの残高(円) | 1000000 |
| その期間のリターン(%) | 10 |
| 年に直した保有期間(年) | 2 |
| 期間の終わりの残高(円) | =B1*(1+B2/100)^B3 |
| 始めの金額(円) | 1000000 |
| 最後の残高(円) | 1320000 |
| 累積リターン(%) | =(B2/B1-1)*100 |
| 始めの金額(円) | 1000000 |
| 最後の残高(円) | 1320000 |
| 総保有期間(年) | 2 |
| 平均リターン(年率%) | =((B2/B1)^(1/B3)-1)*100 |
Pythonで計算する方法
# (リターン%, 保有期間の年数, 保有期間のか月数) を古い期間から順に並べる
periods = [(10, 1, 2), (-2, 0, 5), (15, 2, 3)]
start_balance = 1000000 # 始めの金額(円)
balance = start_balance
total_years = 0
for return_percent, years, months in periods:
holding_years = years + months / 12 # 年に直した保有期間
total_years += holding_years
balance *= (1 + return_percent / 100) ** holding_years # 複利チェーン
print(f"リターン{return_percent}%を{holding_years:.4f}年 → 残高 {balance:,.0f}円")
cumulative_return = (balance / start_balance - 1) * 100
average_return = ((balance / start_balance) ** (1 / total_years) - 1) * 100
print(f"累積リターン: {cumulative_return:.2f}%")
print(f"平均リターン(年率): {average_return:.2f}%")
print(f"総保有期間: {total_years:.4f}年")
数式記述言語(LaTeX等)での書き方(コピペ可)
h = y + m ÷ 12
h = y + \dfrac{m}{12}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>h</mi>
<mo>=</mo>
<mi>y</mi>
<mo>+</mo>
<mfrac>
<mi>m</mi>
<mn>12</mn>
</mfrac>
</mrow>
</math>
h = y + m / 12
y + m/12
h := y + m/12;
h = y + m/12;
h = y + m/12
B_i = B_{i-1} \times (1 + r_i)^{h_i}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>B</mi><mi>i</mi></msub>
<mo>=</mo>
<msub><mi>B</mi><mrow><mi>i</mi><mo>−</mo><mn>1</mn></mrow></msub>
<mo>×</mo>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>+</mo><msub><mi>r</mi><mi>i</mi></msub><mo>)</mo></mrow>
<msub><mi>h</mi><mi>i</mi></msub>
</msup>
</mrow>
</math>
B_i = B_(i-1) (1 + r_i)^(h_i)
bprev (1 + r)^h
B := Bprev*(1 + r)^h;
B = Bprev*(1 + r)^h;
B_i = B_(i−1) (1 + r_i)^(h_i)
R = Bₙ ÷ B₀ − 1
R = \dfrac{B_n}{B_0} - 1
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>R</mi>
<mo>=</mo>
<mfrac>
<msub><mi>B</mi><mi>n</mi></msub>
<msub><mi>B</mi><mn>0</mn></msub>
</mfrac>
<mo>−</mo>
<mn>1</mn>
</mrow>
</math>
R = (B_n) / (B_0) - 1
bn/b0 - 1
R := Bn/B0 - 1;
R = Bn/B0 - 1;
R = B_n/B_0 − 1
r_{avg} = \left(\dfrac{B_n}{B_0}\right)^{1/T} - 1
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>r</mi><mi>avg</mi></msub>
<mo>=</mo>
<msup>
<mrow>
<mo>(</mo>
<mfrac>
<msub><mi>B</mi><mi>n</mi></msub>
<msub><mi>B</mi><mn>0</mn></msub>
</mfrac>
<mo>)</mo>
</mrow>
<mrow><mn>1</mn><mo>/</mo><mi>T</mi></mrow>
</msup>
<mo>−</mo>
<mn>1</mn>
</mrow>
</math>
r_(avg) = ((B_n) / (B_0))^(1/T) - 1
(bn/b0)^(1/T) - 1
r_avg := (Bn/B0)^(1/T) - 1;
r_avg = (Bn/B0)^(1/T) - 1;
r_avg = (B_n/B_0)^(1/T) − 1
ChatGPT に聞いて計算してもらう方法
あなたは投資の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 ある投資の成績が、古い期間から順に次のとおりでした。 ・リターン+10%の期間を1年2か月 ・リターン−2%の期間を5か月 ・リターン+15%の期間を2年3か月 保有期間は「年数 + か月数÷12」で年に直し、残高は複利(前の期間の終わりの残高が次の期間の元本)でつながるものとします。 次の値をそれぞれ求めてください。 1. 累積リターン(%・小数2桁)= 全期間の倍率 − 1 2. 平均リターン(年率%・小数2桁)= 全期間の倍率の(1/総保有期間)乗 − 1(幾何平均) 3. 総保有期間(年) 4. 100万円から始めた場合の、各期間の終わりの残高(円) 計算に使った式と、実行結果の数値を示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
