「住宅ローンを10年払い続けたけど、元本はどれだけ減ったんだろう?」と気になったことはありませんか。
毎月の返済額の中身は元金と利息に分かれていて、内訳は毎回変わります。元金だけを期間まとめて取り出すのは、手計算ではかなり手間ですよね。
GoogleスプレッドシートのCUMPRINC関数を使えば、指定した期間の累計元金を一発で計算できます。
この記事では、住宅ローンを例にした3つのシナリオで、スプレッドシートのCUMPRINC関数の使い方を丁寧に解説しますね。
CUMPRINC関数とは?累計元金を求めるスプレッドシート財務関数
CUMPRINC(読み方:キューム・プリンク)は、Googleスプレッドシートの財務関数のひとつです。
名前は「Cumulative Principal(累計元金)」の略で、ローンの指定期間内に返済する元金の合計を一発で求められます。
元利均等返済(毎月同額を返済する方式)が前提です。住宅ローンや自動車ローンなど、銀行ローンのほとんどがこの方式なので幅広い場面で使えますよ。
PPMT関数との違い
CUMPRINCと似た関数に PPMT関数 があります。違いはシンプルです。
| 関数 | 計算できること |
|---|---|
| PPMT | 1回分の元金(例:第3回目の元金返済額) |
| CUMPRINC | 複数回分の元金合計(例:1〜36回目の元金合計) |
「今月の元金返済額はいくら?」という場面ではPPMT、「3年間で元金がいくら減った?」「ローン残高はいくら?」という場面ではCUMPRINCを使うと便利です。
CUMPRINC関数の書式と引数
=CUMPRINC(利率, 期間数, 現在価値, 最初の期, 最後の期, 支払期日)
引数は6つあります。表で整理しておきましょう。
| 引数 | 英語名 | 内容 |
|---|---|---|
| 利率 | rate | 1支払期間あたりの利率。年利なら÷12が必要 |
| 期間数 | number_of_periods | 総支払回数。35年月払いなら 35×12=420 |
| 現在価値 | present_value | 借入元本。正の値で入力する |
| 最初の期 | first_period | 計算を始める支払回(1以上) |
| 最後の期 | last_period | 計算を終える支払回 |
| 支払期日 | end_or_beginning | 0=期末払い(通常)、1=期首払い |
年利を月利に変換する方法
「利率」引数には1支払期間あたりの利率を入れます。月払いなら「年利÷12」にするのが必須です。
ここを忘れると計算結果が大きく狂います。最初に確認しておきたいポイントですよ。
月払い:年利1.5% を月利に変換
利率 = 1.5% / 12 = 0.125%
支払い頻度ごとの変換ルールはこのとおりです。
| 支払い頻度 | 利率の変換 | 期間の変換 |
|---|---|---|
| 月払い | 年利 ÷ 12 | 年数 × 12 |
| 半年払い | 年利 ÷ 2 | 年数 × 2 |
| 四半期払い | 年利 ÷ 4 | 年数 × 4 |
利率の逆算が必要な場面では RATE関数 も参考にしてみてくださいね。
支払期日(0と1)の使い分け
通常の銀行ローンは月末払いなので 0 を指定します。
家賃や設備リースのような前払い型の契約では 1 を使います。迷ったら0を入れておけば、ほとんどのケースで問題ありません。
基本の使い方①|全期間の累計元金を計算する
住宅ローンを例に、全期間の累計元金を計算してみましょう。
条件設定
| 項目 | 値 | セル |
|---|---|---|
| 年利 | 1.5% | B1 |
| 借入期間(年) | 35 | B2 |
| 借入元本(円) | 30,000,000 | B3 |
数式(35年間の総累計元金)
=CUMPRINC(B1/12, B2*12, B3, 1, B2*12, 0)
引数を整理するとこうなります。
B1/12:月利(年利÷12)B2*12:総支払回数(35年×12か月=420回)B3:元本3,000万円1:第1回からB2*12:第420回まで(全期間)0:期末払い
この数式で約 −30,000,000円という結果が返ります。
全期間の累計元金が借入元本と一致するのは当然の結果です。元利均等返済では、最終的に元本がすべて返済されるからですね。「数式が正しく書けているか」を確かめるテストとしても使えますよ。
なぜマイナス表示になるの?
スプレッドシートの財務関数は「支払い=現金の流出=マイナス」として計算する決まりになっています。キャッシュフロー符号ルールと呼ばれる共通ルールです。
プラス表示にしたい場合は、ABS関数で絶対値にすると見やすくなります。
=ABS(CUMPRINC(B1/12, B2*12, B3, 1, B2*12, 0))
→ 約 30,000,000(プラス表示)
家計シミュレーションを家族に共有するときは、プラス表記のほうが直感的に伝わりやすいですよね。
応用の使い方②③|特定期間・ローン残債を求める
CUMPRINCの本領は「最初の期」と「最後の期」を変えて、好きな区間の元金合計を取り出せるところにあります。
②1〜3年目(第1〜36回)の元金合計
「最初の3年間で元金がいくら減ったか知りたい」というケースです。最初の期と最後の期だけ書き換えます。
=CUMPRINC(B1/12, B2*12, B3, 1, 36, 0)
同じ条件(年利1.5%、3,000万円)なら約 −2,000,000円になります。
返済初期は元金残高が大きいので、月々の返済額のうち利息の割合が高めです。3年間で約330万円返済しても、元金で減るのは約200万円ほど。残りの約130万円は利息に回っているわけです。
「なかなかローンが減らないな」と感じるのは、この元利均等返済の特性が原因なんですよ。
③10年経過後のローン残債を逆算する
CUMPRINCの便利な使い方として、任意の時点のローン残債を逆算できます。「元本 − これまでに返済した元金」が残債になるからです。
10年(120回)払い終えたあとの残債を求める数式はこうです。
=B3 - ABS(CUMPRINC(B1/12, B2*12, B3, 1, 120, 0))
同じ条件なら約 22,973,000円(約2,297万円)が残ります。
10年間払い続けても、元本は3,000万円から2,300万円ほどにしか減っていません。約76%が残っている計算ですね。これも返済初期の利息比率が高い元利均等返済の特徴です。
繰り上げ返済を検討するときに、「今いくら残っているか」を素早く確認するために使える計算式ですよ。
CUMPRINC vs CUMIPMT|累計元金と累計利息の違い
CUMIPMT(キューム・アイ・ピー・エム・ティー)は「累計利息」を求める関数です。構文はCUMPRINCと全く同じで、引数の順番も同じです。
同条件での対比
先ほどと同じ条件(年利1.5%、35年、3,000万円)の1年目を比べてみましょう。
| 計算対象 | 数式 | 1年目(1〜12回)の値 |
|---|---|---|
| 累計元金(CUMPRINC) | =CUMPRINC(B1/12, 420, B3, 1, 12, 0) | 約 −656,000円 |
| 累計利息(CUMIPMT) | =CUMIPMT(B1/12, 420, B3, 1, 12, 0) | 約 −446,000円 |
| 合計(1年分の総支払額) | CUMPRINC + CUMIPMT | 約 −1,102,000円 |
この関係式が成り立ちます。
累計元金(CUMPRINC)+ 累計利息(CUMIPMT)= 総支払額(PMT × 支払回数)
返済を「元金返済」と「利息コスト」に分解して把握したいときに、2つの関数を組み合わせるのが鉄板ですよ。
| 関数 | 使う場面 |
|---|---|
| CUMPRINC | ローン残債の確認・繰り上げ返済の計画 |
| CUMIPMT | 利息コストの把握・住宅ローン控除の目安計算 |
利息側の詳しい使い方は スプレッドシートのCUMIPMT関数の使い方 にまとめています。あわせて読むと返済シミュレーションの全体像が掴みやすくなりますよ。
よくあるエラーと対処法
CUMPRINCでつまずきやすいポイントを3つにまとめました。
①#NUM!エラーの主な原因
#NUM!エラー(数値エラー)が出たときは、引数の値が不正なケースがほとんどです。
| 原因 | 誤った入力例 | 正しい入力 |
|---|---|---|
| 元本をマイナスで入力 | pv = -30000000 | pv = 30000000(正の値) |
| 最初の期 > 最後の期 | start=24, end=12 | start ≤ end |
| 利率が0以下 | rate = 0 | 正の値が必要 |
| 支払期日が0・1以外 | type = 2 | 0か1のみ有効 |
PMT関数 では元本にマイナスを使う書き方もあります。しかしCUMPRINCは元本を正の値で入力するルールです。混同しやすいので気をつけてくださいね。
②結果がマイナスのまま集計するミス
CUMPRINCの結果はマイナスで返ります。プラスの数値と足し算するときは、符号の扱いに注意しましょう。
NG:マイナスの累計元金を別のプラス値と足す
=CUMPRINC(...) + 別の支出 → 元金が引かれる計算になる
OK:ABS関数でプラスに変換してから合算
=ABS(CUMPRINC(...)) + 別の支出
複数のCUMPRINC同士を合算するときは、どちらもマイナスなのでそのままSUMで問題ありません。
=CUMPRINC(...) + CUMPRINC(...) → 正しく動作する(どちらもマイナス)
③月利変換し忘れによる計算ミス
年利をそのまま「利率」に渡しても、#NUM!エラーにはなりません。
しかし計算結果は実際の何倍にもなる致命的な誤りになってしまいます。
NG:年利1.5%を月利に変換しないまま入力
=CUMPRINC(1.5%, 420, 30000000, 1, 420, 0)
→ エラーにはならないが、計算結果が大幅に狂う
OK:月利に変換(÷12)
=CUMPRINC(1.5%/12, 420, 30000000, 1, 420, 0)
月払いなら必ず÷12を忘れずに入力してください。最初の引数だけ別セル参照にしておくと、変換ミスを防ぎやすいですよ。
関連する財務関数まとめ|PMT・IPMT・PPMT・CUMIPMT・RATE
CUMPRINCをより活かすために、関連する財務関数も整理しておきましょう。
| 関数 | できること | 内部リンク |
|---|---|---|
| PMT | 毎月の返済額を求める | ローン計算の基本 |
| IPMT | 特定1回分の利息を求める | 月次利息内訳 |
| PPMT | 特定1回分の元金を求める | 月次元金内訳 |
| CUMIPMT | 累計利息を求める | 利息コストの把握 |
| RATE | 利率(年利)を逆算する | 借入条件の確認 |
| NPER | 返済回数を逆算する | 完済時期の試算 |
使い分けの目安はこのとおりです。
「毎月いくら払う?」 → PMT
「今月の利息は?」 → IPMT
「今月の元金返済は?」 → PPMT
「1年間の元金返済合計は?」 → CUMPRINC
「1年間の利息合計は?」 → CUMIPMT
「ローン残高は?」 → 元本 − CUMPRINC
「年利はいくら?」 → RATE
「あと何回払う?」 → NPER
財務関数はどれも組み合わせで使うことが多いです。PMT関数やPPMT関数の記事とあわせて読んでおくと、スプレッドシートでの返済シミュレーション全体の流れが掴みやすくなりますよ。
Excel版のCUMPRINC関数の使い方は ExcelのCUMPRINC関数の使い方 で詳しく解説しています。Excelとスプレッドシートを行き来する方はあわせてチェックしてみてくださいね。
