「今の貯蓄が目標額に届くまで、あと何年かかるんだろう?」――投資や積立の計画を立てるとき、こんな疑問が浮かびますよね。
利率と現在の金額、目標金額がわかっていても、期間を手計算するのはかなり面倒です。対数を使った計算になるので、電卓で求めるのも一苦労ですよね。
ExcelのPDURATION関数を使えば、3つの値を指定するだけで必要な期間がすぐに求まります。この記事では、基本的な書き方から月利換算、関連関数との使い分けまで、順を追って解説していきますね。
ExcelのPDURATION関数とは?
PDURATION関数は、投資が目標金額に到達するまでに必要な期間を求める関数です。読み方は「ピリオド デュレーション」で、「Period(期間)」と「Duration(持続期間)」を組み合わせた名前ですよ。
たとえば「100万円を年利3%で運用して200万円にしたい」というとき、何年かかるかを計算してくれます。複利計算をベースにしているので、利息が元本に組み込まれていく前提での期間が求まりますね。
内部的には対数を使った次の式で計算されます。
PDURATION = (LOG(将来価値) - LOG(現在価値)) / LOG(1 + 利率)
手計算するのは面倒ですが、関数なら一瞬です。PDURATION関数はExcel 2013以降およびMicrosoft 365で使えます。お使いのバージョンが対応しているか、念のため確認しておきましょう。
PDURATION関数の書き方(構文と引数)
基本構文
=PDURATION(利率, 現在価値, 将来価値)
引数は3つとも必須です。省略するとエラーになるので注意してくださいね。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 利率 | 必須 | 1期間あたりの利率。年利3%なら「0.03」または「3%」と指定 |
| 現在価値 | 必須 | 現在の投資額(元本)。正の数で指定 |
| 将来価値 | 必須 | 目標とする金額。正の数で指定 |
引数はすべて正の数で指定する必要があります。0やマイナスの値を入れると#NUM!エラーになるので気をつけてくださいね。
利率の「期間」は年でも月でも構いません。ただし結果も同じ単位で返ります。年利を入れれば年数、月利を入れれば月数が返る仕組みですよ。
PDURATION関数の基本的な使い方
実際にPDURATION関数を使ってみましょう。100万円を年利5%で運用して200万円にしたい場合の計算例です。
=PDURATION(5%, 1000000, 2000000)
結果は「14.2067…」となります。つまり、年利5%の複利運用なら約14.2年で200万円に届く計算ですね。
セル参照を使えば、条件を変えたシミュレーションも簡単です。A1に利率、A2に現在価値、A3に将来価値を入力しておけば、次のように書けます。
=PDURATION(A1, A2, A3)
セルの値を変えるだけで結果が自動更新されるので、「利率が変わったら何年になるか」をすぐに試せますよ。
結果を「年と月」に分ける
PDURATION関数は小数で結果を返します。「14.2年」では実感が湧きにくいので、年と月に分けて表示すると読みやすくなりますね。
=INT(PDURATION(5%,1000000,2000000)) & "年" & ROUND((PDURATION(5%,1000000,2000000)-INT(PDURATION(5%,1000000,2000000)))*12,0) & "か月"
少し長いですが、INT関数で整数部分(年)を取り出し、小数部分に12をかけて月数に換算する仕組みです。結果は「14年2か月」のように表示されますよ。
PDURATION関数の実践的な使い方・応用例
老後資金の積立目標シミュレーション
退職金500万円を年利2%で運用して、1,000万円にしたい場合を考えてみましょう。
=PDURATION(2%, 5000000, 10000000)
結果は「35.00…」で、約35年かかることがわかります。「2%だと時間がかかりすぎる」と感じたら、利率を変えて再計算できますね。
年利ごとの比較表をつくる
複数の利率で期間を比較すると、利率の違いがどれだけ影響するかが見えてきます。B列に利率(1%、2%、3%、5%、7%)を並べ、C1に現在価値100万円、D1に目標200万円を入力した場合の数式はこちらです。
=PDURATION(B2, $C$1, $D$1)
C1とD1を絶対参照にしておけば、下方向にコピーするだけで一覧表が完成します。年利1%なら約69.7年、3%なら約23.4年、7%なら約10.2年と、利率による差が一目でわかりますよ。
利率が倍になると期間は半分以下になる、という複利の性質が数字で見えてくるので、シミュレーションが面白くなりますね。
月利で計算する場合
PDURATION関数は「1期間あたりの利率」で計算します。月単位で求めたいときは、年利を12で割って指定しましょう。
=PDURATION(3%/12, 1000000, 1500000)
この場合、結果は「月数」で返ります。約162.4か月、つまり約13.5年で150万円に届く計算です。年数に換算したいときは結果を12で割ればOKですよ。
毎月配当が再投資される投資信託や、毎月利息がつく定期預金などのケースでは、月利換算で計算したほうが実態に近い数字になります。
インフレを考慮した実質期間を計算する
「年利3%でも、インフレ率が1%あれば実質的には2%の運用」と考えるのが、お金の計算の基本ですよね。PDURATION関数の利率に「実質利率」を入れれば、購買力ベースの期間が求まります。
=PDURATION(3% - 1%, 1000000, 2000000)
名目利率3%・インフレ率1%なら、実質利率2%で計算され、結果は約35年です。同じ金額を「現在の価値で」目標額にしたいなら、より長い期間が必要になることがわかりますね。
よくあるエラーと対処法
#NUM!エラー
引数に0やマイナスの値を指定すると発生します。利率・現在価値・将来価値はすべて正の数にしてください。
=PDURATION(0, 1000, 2000) → #NUM!エラー(利率が0)
=PDURATION(5%, -1000, 2000) → #NUM!エラー(現在価値がマイナス)
「元本が減る場合」を想定してマイナスにしたくなりますが、PDURATION関数では対応していません。元本が減る運用を計算したい場合は、IRR関数など別の関数を検討してくださいね。
また、現在価値より将来価値が小さい場合(=減らしたい場合)も計算上はマイナスの期間が返るので、PDURATION関数の用途からは外れます。
#VALUE!エラー
引数に文字列や空白セルを指定すると発生します。セル参照を使う場合は、参照先に数値が入っているか確認しておきましょう。
「100万円」のように単位付きで入力すると文字列扱いになり、エラーが出ます。セルには「1000000」と数値で入力し、表示形式で「円」を付けるのがおすすめですよ。
#NAME?エラー
関数名のスペルミスか、Excel 2010以前のバージョンで発生します。PDURATION関数はExcel 2013以降で使えるので、お使いのバージョンを確認してみてください。
「PDULATION」「PDUARATION」と打ち間違えやすいので、入力候補から選ぶのが確実ですね。
似た関数との違い・使い分け
PDURATION関数と似た財務関数がいくつかあります。目的に合わせて使い分けましょう。
| 関数 | 求めるもの | 特徴 |
|---|---|---|
| PDURATION | 目標額に届くまでの期間 | 一括投資(複利)の期間計算 |
| NPER | 定期支払の返済・積立期間 | 毎月の積立や返済回数を求める |
| RRI | 等価な年利率 | 元本と目標額から利率を逆算 |
| RATE | 定期支払の利率 | ローンや積立の利率を求める |
PDURATIONは「一括で投資した元本が複利で増えて目標に届くまでの期間」を求めます。毎月コツコツ積み立てるケースなら、NPER関数のほうが適していますよ。
逆に「○年で目標額に届くには利率が何%必要か」を知りたい場合は、RRI関数を使ってみてください。
PDURATIONとNPERの使い分け早見表
どちらを使うか迷ったときの判断基準です。
| 状況 | 使う関数 |
|---|---|
| 退職金500万円を一括運用して目標額に届く期間 | PDURATION |
| 毎月3万円の積立で目標額に届く期間 | NPER |
| ローン返済の残り期間 | NPER |
| 「○倍になる」までの期間 | PDURATION |
「お金を一回入れてあとは寝かせる」ならPDURATION、「定期的にお金を動かす」ならNPER、と覚えておくと迷わないですよ。
まとめ
PDURATION関数は、投資が目標金額に届くまでの期間をサッと求められる便利な関数です。
- 構文:
=PDURATION(利率, 現在価値, 将来価値) - ポイント: 引数はすべて正の数。0やマイナスは#NUM!エラーになる
- 月単位の計算: 年利を12で割って指定すれば、結果が月数で返る
- 使い分け: 一括投資の期間→PDURATION、積立の期間→NPER、利率の逆算→RRI
- 応用: 実質利率(名目利率-インフレ率)を入れれば、購買力ベースの期間も求まる
利率を変えた比較表を作れば、資産運用の計画がぐっと立てやすくなります。ぜひ試してみてくださいね。
