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