「ローンを10年払い続けたけど、元本はどれだけ減ったんだろう?」
そんな疑問を解決してくれるのが、ExcelのCUMPRINC関数(使い方)です。毎月の返済額の中から元金だけを取り出し、複数回分の合計を一発で計算できます。
この記事では、住宅ローン(年利1.5%・35年・3,000万円)を例に、3つのシナリオで使い方を解説します。全期間の累計・特定年度の集計・ローン残債の逆算まで、実際の計算値で確認していきましょう。
CUMPRINC関数とは?累計元金返済額を求めるExcel財務関数
CUMPRINC(読み方:キューム・プリンク)は、Cumulative Principal(累積元金)の略です。元利均等返済(毎月の返済額が一定の方式)において、指定した期間内に返済した元金の合計額を求めます。
元利均等返済では、毎月の返済額は一定ですが、内訳(元金と利息の比率)は毎回変わります。返済初期は利息が多く元金が少なく、返済が進むにつれて元金の割合が増えていきます。
CUMPRINC関数は、この変動する元金を複数回まとめて計算してくれる便利な関数です。
CUMIPMTとの違い(対比表:利息 vs 元金)
CUMPRINCには姉妹関数としてCUMIPMT関数があります。2つの違いをまとめると以下のとおりです。
| 関数 | 計算する内容 | 用途 |
|---|---|---|
| CUMPRINC | 累計元金返済額 | 元本がどれだけ減ったか確認 |
| CUMIPMT | 累計利息返済額 | 利息コストの把握 |
引数の順番・型・エラー条件はまったく同じです。どちらを使うかは「元金を知りたいか、利息を知りたいか」で決まります。
CUMPRINC関数の書式と引数の解説
=CUMPRINC(利率, 期間, 現在価値, 開始期, 終了期, 支払期日)
引数は6つすべて必須です。省略できないので注意してください。
| 引数 | 内容 |
|---|---|
| 利率(rate) | 1支払期間あたりの利率。月払いなら年利÷12 |
| 期間(nper) | 総支払回数。月払い35年なら35×12=420 |
| 現在価値(pv) | 借入元本。正の値で入力すること |
| 開始期(start_period) | 集計開始の回数(1から始まる番号) |
| 終了期(end_period) | 集計終了の回数 |
| 支払期日(type) | 0=期末払い(通常)、1=期首払い |
年利を月利に変換する方法
住宅ローンは月払いが一般的です。そのため「利率」と「期間」は月単位に変換が必要です。
- 利率:年利 ÷ 12(例:1.5% → 1.5%/12)
- 期間:年数 × 12(例:35年 → 35×12=420)
この変換を忘れると、エラーにはなりません。しかし計算結果が実際とかけ離れた値になります。詳しくは後述のエラー対処法で解説します。
type引数(0と1)の使い分け
| 値 | 支払いタイミング | 一般的な用途 |
|---|---|---|
| 0 | 期末払い(月末払い) | 住宅ローン・カーローンなど |
| 1 | 期首払い(月初払い) | 家賃・リース料など |
迷ったら0(期末払い)を指定しましょう。日本の住宅ローンはほぼ期末払いです。
基本の使い方①|全期間の累計元金返済額を計算する
住宅ローン(年利1.5%・35年・3,000万円)を例に計算します。まずはセルに条件を入力します。
| セル | 値 | 説明 |
|---|---|---|
| B1 | 1.5% | 年利 |
| B2 | 35 | 返済期間(年) |
| B3 | 30,000,000 | 借入元本(円) |
全期間(第1〜420回)の累計元金を求める数式はこちらです。
=CUMPRINC(B1/12, B2*12, B3, 1, B2*12, 0)
結果:−30,000,000円
ABS関数(絶対値を返す関数)でプラス表示にするには次のようにします。
=ABS(CUMPRINC(B1/12, B2*12, B3, 1, B2*12, 0))
結果:30,000,000円
全期間の結果が元本(3,000万円)と一致するのは当然の結果です。元利均等返済では、全回数分の元金を積み上げれば最終的に借入額がすべて返済されます。この結果は「数式が正しく書けているか」を確認するテストとして使えます。
ちなみに、月返済額はPMT関数で計算でき、この条件では約91,855円です。35年間の総返済額は約38,579,100円となり、差額の約857万円が利息コストです(CUMIPMT関数で確認できます)。
応用例②③|特定期間・ローン残債の計算
②1〜3年目(第1〜36回)の元金累計
返済開始から3年間(36回分)の元金累計を求めます。
=CUMPRINC(B1/12, B2*12, B3, 1, 36, 0)
結果:約−2,000,154円(ABS表示:約200万円)
同じ期間の利息累計(CUMIPMT)は約131万円です。合計すると約331万円で、これは月返済額91,855円×36回=約330.7万円とほぼ一致します。
この結果からわかることは、返済初期は利息の比率が高いという元利均等返済の特性です。3年間の返済合計約330万円のうち、元本返済はわずか約200万円。残りの約130万円が利息ですね。
元金と利息の関係:3年目までで元金が減るのはわずか200万円。「なかなかローンが減らない」と感じるのはこのためです。
③ローン残債の逆算(元本 − CUMPRINC)
「10年払い続けたが、残りのローンはいくらか?」を求めます。CUMPRINCを使うと残債の逆算ができます。これは競合記事ではほとんど解説されていない、実務で役立つ活用法です。
10年経過後(120回払い後)の残債を求める数式:
=B3 - ABS(CUMPRINC(B1/12, B2*12, B3, 1, 120, 0))
計算の内訳:
- 10年間の累計元金返済額:約7,026,627円
- 元本 − 累計元金返済額 = 残債
結果:30,000,000 − 7,026,627 ≈ 22,973,373円(約2,297万円)
10年間払い続けても、残債は約2,297万円。元本の約76%がまだ残っています。これも返済初期の利息比率が高い元利均等返済の特徴です。
数式の意味をわかりやすく言いかえると:
残債 = 元本 − これまでに返済した元金の累計
繰り上げ返済を検討するときに、「今いくら残っているか」を素早く確認するために使えます。
CUMPRINC × CUMIPMT|返済の内訳を完全把握する
CUMPRINCとCUMIPMTを組み合わせると、返済の全体像が見えてきます。
核心の等式:
CUMIPMT(累計利息)+ CUMPRINC(累計元金)= PMT × 支払回数(総返済額)
住宅ローン例(1〜36回)での確認:
| 内容 | 計算結果 |
|---|---|
| 累計元金(CUMPRINC 1〜36回) | 約−2,000,154円 |
| 累計利息(CUMIPMT 1〜36回) | 約−1,310,000円 |
| 合計 | 約−3,310,154円 |
| 月返済額 × 36回(91,855×36) | 約−3,306,780円 ✓ |
わずかな誤差(端数)はありますが、ほぼ一致することで数式の正しさが確認できます。
CUMIPMT関数でコストを確認しながら、CUMPRINCで元本減少を確認する。この2関数を一緒に使うと、返済計画の全体像をExcelで完全に把握できますよ。
よくあるエラーと対処法
①エラーの種類と原因
| エラー | 原因 | 具体例 | 対処法 |
|---|---|---|---|
#NUM! | 元本(pv)をマイナスで入力 | pv = -30000000 | 正の値で入力する |
#NUM! | 開始期 > 終了期 | start=24, end=12 | 開始期 ≦ 終了期に修正 |
#NUM! | 利率が0以下 | rate = 0 | 正の利率を入力する |
#NUM! | type が 0・1 以外 | type = 2 | 0か1を指定する |
#VALUE! | 引数に文字列が含まれる | pv = "3000万" | 数値を直接入力する |
最も多いのは「元本をマイナスで入力してしまう」パターンです。PMT関数では元本にマイナスを使う書き方もありますが、CUMPRINCでは必ず正の値を入力してください。
②マイナス表示とABS関数の使い方
CUMPRINCの結果は通常マイナスになります。これはExcelの財務関数が共通で使うキャッシュフロー符号ルールによるものです。
キャッシュフロー符号ルールとは?
- 現金の収入(受け取り)= プラス
- 現金の流出(支払い)= マイナス
ローンの返済は「現金が出ていく」ため、マイナスで表示されます。「なぜマイナスなのかわからない」という場合は、このルールを思い出してください。
実務では、表示をプラスにするためにABS関数(絶対値を返す関数)を使います。
=ABS(CUMPRINC(B1/12, B2*12, B3, 1, 36, 0))
もしくは、CUMPRINC全体にマイナスを掛ける方法でも同じ結果が得られます。
=-CUMPRINC(B1/12, B2*12, B3, 1, 36, 0)
③月利変換し忘れによる無声エラー
年利をそのまま利率に入力しても、エラーにはなりません。しかし計算結果は実際の値と大きくかけ離れます。
たとえば月払い35年のローンで、年利1.5%をそのままrateに渡すと:
' ❌ 誤り:年利をそのまま使用
=CUMPRINC(1.5%, 35, 30000000, 1, 35, 0)
' → 期間を35回(年払い?)と解釈し、全く別の計算になる
' ✅ 正しい:月払いに変換
=CUMPRINC(1.5%/12, 35*12, 30000000, 1, 35*12, 0)
チェックリスト:
- [ ]
rateに年利÷12を入力したか? - [ ]
nperに年数×12を入力したか? - [ ]
start_periodとend_periodは月単位になっているか?
関連財務関数のまとめ|PMT・IPMT・PPMT・CUMIPMT・PVとの使い分け
最後に、CUMPRINCと関連する財務関数の使い分けをまとめます。
| 関数 | 用途 | 計算の単位 |
|---|---|---|
| PMT | 毎月の返済額(元金+利息) | 1回分の合計 |
| IPMT | 特定1回の利息 | 1回分 |
| CUMIPMT | 期間内の累計利息 | 複数回の合計 |
| CUMPRINC | 期間内の累計元金 | 複数回の合計 |
| PPMT | 特定1回の元金 | 1回分 |
| RATE | 利率の逆算 | — |
| NPER | 返済回数の逆算 | — |
PPMTとCUMPRINCの違いを特に確認しておきましょう。
- PPMT関数:「第5回目の元金返済額はいくら?」→ 1回分のみ
- CUMPRINC関数:「第1〜5回目の元金返済額の合計は?」→ 複数回の累計
関係式で表すと:CUMPRINC(1, k) = PPMT(1) + PPMT(2) + … + PPMT(k) となります。これはCUMIPMTとIPMTの関係とまったく対称的な構造です。
「ある特定の1回の元金を知りたい」ならPPMT、「期間内の合計を知りたい」ならCUMPRINCを使いましょう。
ローンの返済計画では、「月々いくら払うか(PMT)」だけでなく「元本がどれだけ減っているか(CUMPRINC)」「利息をいくら払っているか(CUMIPMT)」の3つを合わせて把握することが重要です。
CUMPRINCを使いこなすことで、繰り上げ返済の効果試算や残債確認が簡単にできるようになります。まずは今回の住宅ローン例で実際に入力してみてください。
