Googleスプレッドシートでローン返済シミュレーション表の作り方

Googleスプレッドシートを使えば、少しの設定だけで返済シミュレーション表を作成できます。
本記事では、業務効率化の一環として簡易的な返済シミュレーション表を作る方法をご紹介します。
完成イメージ

- 毎月の返済額、元金分、利息分、借入残高が自動計算
- 入力項目(元本、年利率、借入期間)を変えるだけで瞬時にシミュレーション可能
今回作成するのは元利均等返済のシミュレーション表となります。
今回作成したテンプレートはこちら
👉返済シミュレーション表 テンプレートをダウンロード(無料)
作成手順

1行目にヘッダー(項目名)を入力します。
A1 | B1 | C1 | D1 | E1 |
元本 | 年利率 | 借入期間(年) | 毎月の返済額 | 総返済額 |
5行目にも以下のヘッダー(項目名)を入力します。
A5 | B5 | C5 | D5 | E5 |
月 | 毎月の返済額 | 元金分 | 利息分 | 借入残高 |
次に、2行目のA2、B2、C2セルにそれぞれの値を入力します。

(例:A2(元本):1,000,000、B2(年利率): 2%、C3(借入期間): 5)

GoogleスプレッドシートのPMT関数を使い、毎月の返済額を簡易的に計算します。
(総返済額は現時点ではまだ計算結果が0となります)
D2セルに以下の数式を入力します。
=ROUND(PMT(B2/12,C2*12,-A2),0)
数式の説明
この数式はPMT関数
を使って、毎月一定額を返済する場合の返済額を計算しています。
PMT関数
:-
この関数は以下の構文となっています。
PMT(利率, 期間, 現在価値)
- 利率(
B2/12
):年利率を月単位にするため12で割っています。 - 期間(
C2*12
):借入期間(年)を月数に変換するため12を掛けています。 - 現在価値(
-A2
):現在の借入金額(元本)を指定します。マイナスを付けることで「返済する金額」であることを明示しています。
- 利率(
ROUND(…,0)
:-
この関数は、PMT関数で算出された返済額を円単位で四捨五入しています。
次に総返済額を計算します。E2セルに以下の数式を入力します。
=SUM(C6:D)
数式の説明
この数式は、返済シミュレーション表にある「元金分」と「利息分」を合計して、実際に支払う総返済額を計算しています。
SUM
関数:-
指定された範囲のセル内にある数値を合計します。
C6:D
:-
C列(元金分)とD列(利息分)の6行目以降のデータを範囲として指定し、全ての返済期間(借入期間の月数)をカバーします。

毎回ドラッグコピーする手間を省くため、ARRAYFORMULA関数を利用します。
長い数式ですが、この数式を入力するとA列からE列まで一括で数式が適用されます。
A6セルに以下の数式を入力します。
=ARRAYFORMULA(
IF(SEQUENCE(C2*12)<=C2*12,{
SEQUENCE(C2*12),
ROUND(SEQUENCE(C2*12)/SEQUENCE(C2*12)*PMT(B2/12,C2*12,-A2),0),
IF(SEQUENCE(C2*12)<C2*12,
ROUND(PPMT(B2/12,SEQUENCE(C2*12),C2*12,-A2),0),
ROUND(A2 - SUM(ROUND(PPMT(B2/12,SEQUENCE(C2*12-1),C2*12,-A2),0)),0)
),
ROUND(IPMT(B2/12,SEQUENCE(C2*12),C2*12,-A2),0),
A2 - MMULT(
IF(SEQUENCE(C2*12)>=TRANSPOSE(SEQUENCE(C2*12)),1,0),
IF(SEQUENCE(C2*12)<C2*12,
ROUND(PPMT(B2/12,SEQUENCE(C2*12),C2*12,-A2),0),
ROUND(A2 - SUM(ROUND(PPMT(B2/12,SEQUENCE(C2*12-1),C2*12,-A2),0)),0))
)
},"")
)
数式の説明
この数式は、GoogleスプレッドシートのARRAYFORMULA
(配列数式)を使って、借入期間に応じた返済表を自動生成しています。
それぞれの部分の役割は次のとおりです。
ARRAYFORMULA
:-
複数セルにわたって一気に計算結果を出力できる関数です。ドラッグコピーが不要になり、自動化に最適です。
SEQUENCE(C2*12)
:-
借入期間(年)を月数に変換し(例えば5年の場合60)、その数だけ1から順番に数値(月)を生成します。
- 毎月の返済額の列:
-
ROUND(SEQUENCE(C2*12)/SEQUENCE(C2*12)*PMT(B2/12,C2*12,-A2),0)
- 全期間に渡り同一の毎月返済額を表示するため、配列として返済額を算出しています。
ROUND
関数で整数に四捨五入しています。
- 元金分(返済額のうち元本に充てられる部分)の列:
-
IF(SEQUENCE(C2*12)<C2*12, ROUND(PPMT(B2/12,SEQUENCE(C2*12),C2*12,-A2),0), ROUND(A2 - SUM(ROUND(PPMT(B2/12,SEQUENCE(C2*12-1),C2*12,-A2),0)),0) )
PPMT
関数を使って各月の元金返済分を計算しています。- 最終月だけ、元本からそれまでの元金返済の累計額を引いて端数調整を行っています。
- 利息分(返済額のうち利息に充てられる部分)の列:
-
ROUND(IPMT(B2/12,SEQUENCE(C2*12),C2*12,-A2),0)
IPMT
関数を使って、各月の利息分を計算しています。
- 借入残高の列:
-
A2 - MMULT( IF(SEQUENCE(C2*12)>=TRANSPOSE(SEQUENCE(C2*12)),1,0), IF(SEQUENCE(C2*12)<C2*12, ROUND(PPMT(B2/12,SEQUENCE(C2*12),C2*12,-A2),0), ROUND(A2 - SUM(ROUND(PPMT(B2/12,SEQUENCE(C2*12-1),C2*12,-A2),0)),0)) )
- 「元本」から、それまでの「元金分」の合計を引くことで各月の借入残高を計算しています。
- これにより最終的に残高が0円になります。

これで入力項目(A2~C2)を変更するだけで、返済表が自動更新されます。
注意点
- 端数調整について
-
今回のGoogleスプレッドシートでの計算は簡易的なため、数円の誤差が生じることがあります。
最終月で端数調整を行う設定をしており、あくまで目安としてお使いください。
- 簡易的なシミュレーションであること
-
本記事で作成する返済シミュレーションは簡易的なものであり、実際の返済額と若干異なる可能性があります。
正確な返済計画を立てる際は、金融機関の公式シミュレーターをご利用ください。
まとめ
今回はGoogleスプレッドシートで簡単に返済シミュレーションを作る方法をご紹介しました。
関数を活用することで複雑な計算を手間なく自動化でき、日々の業務を効率化できます。
今回の返済シミュレーションはその一例ですが、ぜひ他の業務でもスプレッドシートの便利な機能をご活用ください。
弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。
GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。
また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
貴方の業務改善を全力でサポートいたします。
コメント