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

Googleスプレッドシートを使えば、少しの設定だけで返済シミュレーション表を作成できます。

本記事では、業務効率化の一環として簡易的な返済シミュレーション表を作る方法をご紹介します。

目次

完成イメージ

  • 毎月の返済額、元金分、利息分、借入残高が自動計算
  • 入力項目(元本、年利率、借入期間)を変えるだけで瞬時にシミュレーション可能

今回作成するのは元利均等返済のシミュレーション表となります。

今回作成したテンプレートはこちら

👉返済シミュレーション表 テンプレートをダウンロード(無料)

作成手順

STEP
基本項目を入力

1行目にヘッダー(項目名)を入力します。

A1B1C1D1E1
元本年利率借入期間(年)毎月の返済額総返済額

5行目にも以下のヘッダー(項目名)を入力します。

A5B5C5D5E5
毎月の返済額元金分利息分借入残高

次に、2行目のA2、B2、C2セルにそれぞれの値を入力します。

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

STEP
「毎月の返済額」と「総返済額」の計算

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行目以降のデータを範囲として指定し、全ての返済期間(借入期間の月数)をカバーします。

STEP
毎月の明細の数式を入力

毎回ドラッグコピーする手間を省くため、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円になります。
STEP
完成

これで入力項目(A2~C2)を変更するだけで、返済表が自動更新されます。

注意点

端数調整について

今回のGoogleスプレッドシートでの計算は簡易的なため、数円の誤差が生じることがあります。

最終月で端数調整を行う設定をしており、あくまで目安としてお使いください。

簡易的なシミュレーションであること

本記事で作成する返済シミュレーションは簡易的なものであり、実際の返済額と若干異なる可能性があります。

正確な返済計画を立てる際は、金融機関の公式シミュレーターをご利用ください。

まとめ

今回はGoogleスプレッドシートで簡単に返済シミュレーションを作る方法をご紹介しました。

関数を活用することで複雑な計算を手間なく自動化でき、日々の業務を効率化できます。

今回の返済シミュレーションはその一例ですが、ぜひ他の業務でもスプレッドシートの便利な機能をご活用ください。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。

GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。

また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。

貴方の業務改善を全力でサポートいたします。

お問い合わせはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次