スプレッドシートのDAYS360関数の使い方|360日ベースの日数計算

スポンサーリンク

取引先から「社債利息は360日ベースで計算してほしい」と言われて、手が止まった経験はありませんか。1年を365日ではなく360日として数える独特のルールは、金融業界の契約書ではいまだに現役です。普通に日数を引き算すると、相手の計算と合わなくてやり直し…ということも起こりがちですよね。

そんなときに使えるのが、スプレッドシートのDAYS360関数です。1年を360日(30日×12か月)とみなして、2つの日付の間の日数を一発で返してくれます。この記事では、DAYS360関数の構文と引数から、米国NASD方式とヨーロッパ方式の違い、利息日割り計算の実例、DAYS関数やYEARFRAC関数との使い分けまでまとめて紹介しますね。

スプレッドシートのDAYS360関数とは?

スプレッドシートのDAYS360関数は、1年を360日(30日×12か月)とみなす「360日法」で、2つの日付の間の日数を計算する日付関数です。読み方は「デイズ・スリーシックスティ」で、DAYS(日数)と360(30日×12か月=360日)を組み合わせた名前ですよ。

通常の日数計算に使うDAYS関数は実際のカレンダーどおり365日(うるう年は366日)で計算しますが、DAYS360関数はすべての月を一律30日として計算します。社債利息やリース料の日割りなど、金融業界特有の計算に対応したい場面にピッタリです。

関数の基本構文と引数

構文はシンプルで、引数は最大3つです。

=DAYS360(開始日, 終了日, [方式])

引数の意味を整理しておきましょう。

引数必須/省略可説明
開始日必須期間の最初の日付。DATE関数やセル参照で指定
終了日必須期間の最後の日付
方式省略可FALSEまたは省略で米国NASD方式、TRUEでヨーロッパ方式

開始日が終了日より後の場合は、負の値が返ります。日付は文字列で直接入力するとエラーになりやすいので、DATE関数やセル参照を使うのがおすすめですよ。

360日法が使われる理由

「なぜ今さら360日で計算するの?」と思う人もいるかもしれません。360日法が使われ続けている理由は、手計算の時代の名残とシンプルさにあります。

360は約数が多い数(高度合成数と呼ばれる種類)なので、次のように期間をきれいに分割できます。

  • 半年=180日
  • 四半期=90日
  • 1か月=30日

月ごとの日数が変わらないので、利息や配当の計算がシンプルで、支払額もブレません。現在でも米国社債・地方債・政府機関債の利息計算や、ユーロ債(欧州方式)で標準的に使われていますよ。

米国NASD方式とヨーロッパ方式の違い

DAYS360関数の結果を左右するのが、3つ目の引数「方式」です。どちらを使うかで結果が変わるのは、月末日(28日・30日・31日)が絡むケースに限られます。先に共通の計算式を押さえておきましょう。

日数 = 360×(Y2−Y1) + 30×(M2−M1) + (D2−D1)

Y・M・Dは「調整後」の年・月・日を表します。この「どう調整するか」が方式によって違うんですね。

米国NASD方式(FALSEまたは省略)

方式をFALSEにするか省略すると、米国NASD方式で計算されます。調整ルールはちょっと複雑です。

  1. 開始日が月末日なら、その月の30日に変換する
  2. 終了日が31日の場合、開始日の値で分岐する
  • 開始日が29日以下 → 終了日を翌月1日に変換
  • 開始日が30日以上(変換後含む)→ 終了日を30日に変換

米国社債や政府機関債の利息計算で使われる方式で、日本の実務で「360日法」と指定された場合もたいていこちらになります。

ヨーロッパ方式(TRUE)

方式をTRUEにすると、ヨーロッパ方式(30E/360とも呼ばれる)で計算されます。ルールはシンプルです。

  1. 開始日が31日なら、30日に変換する
  2. 終了日が31日なら、30日に変換する

開始日の値に関係なく、31日は一律30日に変換されます。ユーロ債や欧州証券で使われる方式で、覚えやすいのが特徴ですよ。

2つの方式の比較表

方式の違いで結果がどう変わるか、具体例で見てみましょう。

開始日終了日米国NASD方式ヨーロッパ方式
2024/1/152024/7/151801800
2024/1/12024/12/313603600
2024/1/312024/3/3160600
2024/1/282024/3/316362+1

差が出るのは一番下の「2024/1/28 → 2024/3/31」のケースです。理由を分解してみますね。

米国NASD方式: 開始日の28日は月末ではないので変換なし。終了日の31日は、開始日が29日以下なので翌月1日(4/1)に変換します。計算すると 360×0 + 30×(4−1) + (1−28) = 63日 です。

ヨーロッパ方式: 開始日の28日は変換なし。終了日の31日は一律30日に変換。計算すると 30×2 + (30−28) = 62日 になります。

どちらを使えばいいか

日本国内の一般的な業務なら、デフォルトの米国NASD方式(省略またはFALSE)で問題ありません。取引先や契約書で「ヨーロッパ方式」「30E/360」と指定があるときだけ、TRUEを指定してくださいね。迷ったら引数を省略するのが無難ですよ。

DAYS360関数の基本的な使い方

ここからは実際の数式で使い方を確認しましょう。スプレッドシートでの入力イメージを掴んでおくと、現場で迷いません。

セル参照で日数を計算する

いちばん一般的な使い方です。A1に開始日、B1に終了日が入力されている前提ですね。

=DAYS360(A1, B1)

A1に「2024/1/1」、B1に「2024/12/31」が入っていれば、結果は 360 になります。実際のカレンダーでは365日ありますが、360日法では年末までちょうど360日です。

DATE関数と組み合わせる

日付を数式内で直接指定したいときは、DATE関数と組み合わせます。文字列で日付を入れるとエラーになりやすいので、DATE関数を経由するのが安全ですよ。

=DAYS360(DATE(2024,1,1), DATE(2024,12,31))

こちらも結果は 360 です。年・月・日がそれぞれ別のセルに入っているときにも応用できます。

TODAY関数と組み合わせる

「契約開始日から今日までの経過日数」を自動で出したいときは、TODAY関数と組み合わせるのが定番です。

=DAYS360(DATE(2024,4,1), TODAY())

ファイルを開くたびに今日の日付で再計算されるので、経過日数の管理表や利息試算シートで重宝しますよ。

方式引数を明示する

米国方式・ヨーロッパ方式を明示したいときは、3つ目の引数にTRUE/FALSEを渡します。

=DAYS360(A1, B1, FALSE)  // 米国NASD方式(省略時と同じ)
=DAYS360(A1, B1, TRUE)   // ヨーロッパ方式

方式が混在するシートで使うときは、見分けがつくように明示しておくとレビューしやすくなりますよ。

実務での活用例

DAYS360関数が本領を発揮するのは、金融計算やリース料の日割りなど、360日ベースで計算することが決まっている場面です。よく使う2パターンを紹介しますね。

社債・融資の利息日割り計算

360日法の代表的な用途が、社債や融資の利息計算です。基本の式はこうなります。

利息 = 元本 × 年利率 × DAYS360(開始日, 終了日) / 360

具体例: 元本100万円、年利3%、期間2024/4/1〜2024/10/1の利息を計算してみましょう。

=1000000 * 0.03 * DAYS360(DATE(2024,4,1), DATE(2024,10,1)) / 360

DAYS360の結果は180日(30×6か月)です。計算すると 1,000,000 × 0.03 × 180 / 360 = 15,000円 になります。

実際のカレンダーで数えると4/1〜10/1は183日ですが、360日法では180日。月ごとの日数のばらつきがなくなるので、契約書どおりの支払額で揃えやすくなりますよ。

リース料・保険料の日割り計算

リース契約や保険料でも、契約書に「360日ベース」と明記されているケースがあります。考え方は利息計算と同じです。

=リース年額 * DAYS360(契約開始日, 契約終了日) / 360

年額固定のリースを途中解約するときの日割り精算や、中途加入の保険料計算などで、契約書の指定に合わせてDAYS360を呼び出すだけでOKですよ。

DAYS・DAYS360・YEARFRACの使い分け

スプレッドシートには、日数や期間を求める関数がいくつもあります。どれを使えばいいか迷いやすいので、表で整理しておきましょう。

3関数の比較表

関数計算基準戻り値主な用途
DAYS360360日法(30日×12か月)整数(日数)社債・金融商品の利息計算
DAYS実際のカレンダー日数(365/366)整数(日数)一般的な日数差の計算
YEARFRAC指定した基準(複数対応)小数(年単位)年率・期間割合の計算

同じ期間「2024/1/1〜2024/12/31」で比較すると、DAYSは365日、DAYS360は360日、YEARFRACは基準により小数を返します。

使い分け早見表

やりたいことベースで選ぶなら、こちらの表が分かりやすいですよ。

やりたいこと使う関数
普通に日数を数えたいDAYS
360日法(金融契約)で日数を出したいDAYS360
年率で期間の割合を出したいYEARFRAC
年・月・日単位で期間を出したいDATEDIF

判断基準は「何日法で計算するか」と「戻り値が日数か年単位か」の2点だけです。契約書に「360日ベース」「30/360」と書かれていたらDAYS360、特に指定がなければDAYS、年率をかけて経過割合を出したいならYEARFRACと覚えておけばOKです。

ちなみに、YEARFRACの基準4(ヨーロッパ30/360)は DAYS360(開始日, 終了日, TRUE) / 360 と同じ結果になります。「年単位の小数が欲しい」か「日数の整数が欲しい」かで選ぶとすっきりしますよ。

DAYS360関数のエラーと対処法

DAYS360関数を使っていて出会いやすいのが #VALUE! エラーです。原因と対処をセットで覚えておくと、現場で詰まりません。

#VALUE!エラーの原因と対策

原因はだいたい「日付として認識できない値を渡している」ことに集約されます。代表的なパターンをまとめました。

原因対処法
文字列で直接入力している=DAYS360("2024/1/1", "2024/12/31")DATE関数かセル参照を使う
無効な日付を指定した=DAYS360(DATE(2024,13,1), B1)月は1〜12、日は有効範囲に
参照先セルが文字列書式入力されている値が「文字列」扱い表示形式を「日付」に変更

日付はDATE関数で作るか、あらかじめ日付として入力されているセルを参照するのが鉄則です。特にCSVを取り込んだ直後のシートは、見た目は日付でも中身は文字列ということがあるので注意してくださいね。

IFERRORで安全に使う

共有シートや自動化フローで使うときは、IFERROR関数で囲っておくと安心です。

=IFERROR(DAYS360(A1, B1), "日付を確認してください")

入力ミスがあっても分かりやすいメッセージに置き換わるので、利用者が原因をすぐに判断できますよ。

まとめ

スプレッドシートのDAYS360関数は、1年を360日として日数を計算する、金融契約に対応した日付関数です。要点をおさらいしておきましょう。

  • 構文は =DAYS360(開始日, 終了日, [方式])。方式の省略またはFALSEで米国NASD方式、TRUEでヨーロッパ方式
  • 360日法は、1年を360日(30日×12か月)とみなす金融業界標準の計算方式
  • 方式の違いで結果が変わるのは、月末日(28日・31日など)が絡むケース
  • 利息日割り計算は 元本 × 年利率 × DAYS360(開始日,終了日) / 360 の形が基本
  • 一般的な日数計算はDAYS、年率計算はYEARFRAC、360日ベース指定のときだけDAYS360と使い分ける
  • #VALUE!エラーの多くは「日付として認識されない値」が原因。DATE関数やセル参照で解決できる

契約書や取引先から「360日ベースで計算してください」と言われたら、DAYS360関数で迷わずサッと対応できるようにしておくと心強いですよ。

タイトルとURLをコピーしました