「毎月の返済額のうち、元金ってどれくらい減っているんだろう?」
ローンの返済額は毎月同じでも、その中身は元金と利息に分かれています。返済が進むにつれて元金の割合が増えていくのですが、具体的な金額は計算しないとわかりませんよね。
スプレッドシートのPPMT関数を使えば、指定した回の返済額のうち元金部分だけをピンポイントで取り出せます。
この記事では、PPMT関数の基本から返済スケジュール表の作り方まで、実務で使えるパターンをまとめて紹介します。
PPMT関数とは? — スプレッドシートで元金部分を計算する関数
PPMT関数(読み方: ぴーぴーえむてぃー)は、ローン返済の各回で支払う元金部分を計算する関数です。
名前は英語の「Principal Payment(元金の支払い)」の略です。
たとえば「36回払いの10回目で元金はいくら減った?」のように、特定の回の元金額だけを取り出せます。
PPMT関数にできることをまとめると、次のとおりです。
- 指定した回の返済額のうち元金部分を取り出す
- 返済スケジュール表で月ごとの元金内訳を一覧にする
- IPMT関数と組み合わせて元金と利息の内訳を把握する
- 返済初期と後期で元金がどう変わるかシミュレーションする
NOTE
PPMT関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
PPMT関数の書き方(構文と引数)
基本構文
=PPMT(利率, 期, 期間数, 現在価値, [将来価値], [期首期末])
カッコの中に利率・期・期間数・現在価値の4つを指定します。将来価値と期首期末は省略できます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 利率 | 必須 | 1期間あたりの利率。年利を月利に変換して指定する(年利/12) |
| 期 | 必須 | 元金を求めたい回数。1から期間数の範囲で指定する |
| 期間数 | 必須 | 支払い回数の合計。年数を月数に変換して指定する(年数*12) |
| 現在価値 | 必須 | 借入額(ローンの場合)。正の数で指定する |
| 将来価値 | 任意 | 支払い完了後の残高。省略すると0(完済)として扱われる |
| 期首期末 | 任意 | 0=各期の末に支払い(期末払い)、1=各期の初めに支払い(期首払い)。省略すると0 |
TIP
PPMT関数はIPMT関数と構文がまったく同じです。違いは「元金を返すか、利息を返すか」だけ。セットで覚えておくと便利ですよ。
PPMT関数の基本的な使い方
まずはシンプルな例で動きを確認してみましょう。
1回目の元金を求める
100万円を年利5%で3年間(36回払い)で返済する場合、1回目の元金を計算します。
=PPMT(5%/12, 1, 36, 1000000)
結果は -25,804 です。
毎月の返済額は29,971円(PMT関数で計算)で、そのうち利息が4,167円、残りの25,804円が元金の返済にあてられます。
結果がマイナスになる理由
PPMT関数の結果がマイナスになるのは、「支出」を表しているからです。
スプレッドシートの財務関数では、お金の流れを方向で区別します。
| お金の方向 | 符号 | 例 |
|---|---|---|
| 受け取る(入金) | プラス | 借入額(お金を受け取る) |
| 支払う(出金) | マイナス | 元金の返済 |
表示上マイナスが気になる場合は、数式の前にマイナスを付けて符号を反転させましょう。
=-PPMT(5%/12, 1, 36, 1000000)
これで 25,804 と表示されます。
返済が進むと元金は増えていく
同じローン条件で、返済回によって元金がどう変わるか見てみましょう。
| 数式 | 結果 | 説明 |
|---|---|---|
=PPMT(5%/12, 1, 36, 1000000) | -25,804 | 1回目(利息が多いので元金は少なめ) |
=PPMT(5%/12, 12, 36, 1000000) | -27,012 | 12回目(1年後) |
=PPMT(5%/12, 24, 36, 1000000) | -28,394 | 24回目(2年後) |
=PPMT(5%/12, 36, 36, 1000000) | -29,847 | 36回目(最終回は元金がほぼ全額) |
返済が進むほど利息が減り、そのぶん元金の返済額が増えていきます。これが元利均等返済の特徴です。
PPMT関数の実践的な使い方・応用例
住宅ローンの元金を計算する
住宅ローン3,000万円を年利1.5%・35年で返済する場合、初回の元金を計算します。
=PPMT(1.5%/12, 1, 35*12, 30000000)
結果は -54,355 です。月々の返済額は約91,855円(PMT関数で計算)なので、初回は返済額の約59%が元金です。
10年後(120回目)の元金も確認してみましょう。
=PPMT(1.5%/12, 120, 35*12, 30000000)
結果は -63,067 です。10年経つと元金の割合が増えて、返済額の約69%が元金にあてられるようになります。
返済スケジュール表を作る
PPMT関数とIPMT関数(利息部分を返す関数)を組み合わせると、月ごとの返済内訳表が作れます。
100万円を年利5%・3年で返済するケースで説明します。
| 列 | 内容 | 数式(2行目の例) |
|---|---|---|
| A列 | 回数 | 1, 2, 3 … 36 |
| B列 | 返済額 | =-PMT(5%/12, 36, 1000000) |
| C列 | 元金部分 | =-PPMT(5%/12, A2, 36, 1000000) |
| D列 | 利息部分 | =-IPMT(5%/12, A2, 36, 1000000) |
| E列 | 残高 | =1000000-SUMPRODUCT(-PPMT(5%/12, ROW(INDIRECT("1:"&A2)), 36, 1000000)) |
A列に1から36までの連番を入れたら、B〜E列の数式を下方向にコピーするだけです。
毎回の返済額は一定ですが、元金と利息の内訳が回ごとに変わる様子がひと目でわかります。
TIP
PMT = PPMT + IPMT という関係が成り立ちます。毎回の返済額(PMT)は元金部分(PPMT)と利息部分(IPMT)の合計です。この3つをセットで使うのが返済スケジュール表の基本ですよ。
残高推移をシミュレーションする
「あと何回払えば残高が半分になるか」を知りたい場合は、PPMT関数の累計で残高を計算できます。
=1000000 - SUMPRODUCT(-PPMT(5%/12, ROW(INDIRECT("1:12")), 36, 1000000))
この数式で12回(1年)払った後の残高が出ます。結果は約 682,634 円です。
回数の部分を変えれば、任意の時点の残高をすぐに確認できますよ。
期首払いと期末払いで元金を比較する
6つ目の引数で支払いタイミングを切り替えると、元金額が変わります。
=PPMT(5%/12, 1, 36, 1000000, 0, 0) → -25,804(期末払い)
=PPMT(5%/12, 1, 36, 1000000, 0, 1) → -25,804(期首払い)
期首払いでは毎月の返済額自体が少し安くなります。利息が減る分だけ返済総額も少なくなるため、同じ回数で同じ元金を返していくことになります。
PPMT関数とIPMT関数の違い
PPMT関数とIPMT関数は、返済額の「内訳」を別々に取り出す関数です。
| 比較項目 | PPMT関数 | IPMT関数 |
|---|---|---|
| 役割 | 元金部分を返す | 利息部分を返す |
| 構文 | =PPMT(利率, 期, 期間数, 現在価値) | =IPMT(利率, 期, 期間数, 現在価値) |
| 返済初期 | 金額が小さい | 金額が大きい |
| 返済後期 | 金額が大きい | 金額が小さい |
| 合計の関係 | PPMT + IPMT = PMT |
100万円・年利5%・3年の1回目で比較してみましょう。
| 関数 | 結果 | 意味 |
|---|---|---|
| PMT | -29,971 | 返済額の合計 |
| PPMT | -25,804 | そのうち元金分 |
| IPMT | -4,167 | そのうち利息分 |
-25,804 + (-4,167) = -29,971 と、ぴったり合計がPMTの結果と一致します。
使い分けのポイント: 「元金がいくら減ったか」を知りたいならPPMT、「利息をいくら払っているか」を知りたいならIPMTを使ってください。
よくあるエラーと対処法
PPMT関数で「思った結果にならない」ケースをまとめました。
| 症状 | 原因 | 対処法 |
|---|---|---|
| 元金が異常に大きい | 年利をそのまま指定している | 月利に変換する(年利/12) |
| #NUM! エラーが出る | 「期」が0以下、または期間数を超えている | 1以上かつ期間数以下の整数を指定する |
| #VALUE! エラーが出る | 引数に文字列を指定している | 数値のみ指定する |
| 結果がマイナスになる | 仕様どおりの動作(支出を表す) | 符号反転したいなら =-PPMT(...) |
| 期間数と期の単位が合わない | 期間数を月数、期を年数で指定してしまった | 両方とも同じ単位(月数)で揃える |
TIP
最も多いミスは「年利と月利の変換忘れ」と「期の範囲ミス」です。月払いなら年利を12で割り、期は1から「年数x12」の範囲で指定してください。
Excelとの違い
PPMT関数はExcelとGoogleスプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =PPMT(利率, 期, 期間数, 現在価値, [将来価値], [期末]) | =PPMT(利率, 期, 期間数, 現在価値, [将来価値], [期首期末]) |
| 動作 | 指定した期の元金を返す | 指定した期の元金を返す |
| 結果の符号 | マイナス(支出) | マイナス(支出) |
| 省略時の動作 | 将来価値=0, 期末=0 | 将来価値=0, 期首期末=0 |
引数名の表記が若干異なるだけで、機能は完全に同じです。
まとめ
PPMT関数は、ローン返済の各回で支払う元金部分を計算する関数です。
ポイントを整理します。
- 構文は
=PPMT(利率, 期, 期間数, 現在価値, [将来価値], [期首期末]) - 利率は月利(年利/12)、期間数は月数(年数*12)で指定する
- 「期」に何回目かを指定すると、その回の元金だけを取り出せる
- 返済初期は元金が少なく、返済が進むほど元金の割合が増えていく
- IPMT関数と組み合わせれば返済スケジュール表が作れる
- PMT = PPMT + IPMT の関係を覚えておくと便利
- ExcelのPPMT関数と完全に同じ動作で、互換性も安心
まずは =PPMT(5%/12, 1, 36, 1000000) で100万円ローンの初回元金を確認してみてください。
