書式
|
DAYS360(開始日,終了日,[方式])
|
概要
|
1 年を 360 日 (30 日×12) として、支払いの計算などによく使用される 2 つの日付の間の日数を返す関数。
|
引数
|
開始日 | 必須。間の日数を求める 2 つの日付の始まりの日付を指定。 |
終了日 | 必須。間の日数を求める 2 つの日付の終わりの日付を指定。 |
方式 | 省略可能。計算に米国 NASD 方式とヨーロッパ方式のどちらを採用するかを、論理値で指定。
以下の通り。
方式
| 説明
|
省略、または FALSE または 0
| NASD 方式を採用。
|
TRUE または 1
| ヨーロッパ方式を採用。
|
|
|
補足/解説 |
1. | 開始日/終了日とも明示的にシリアル値を指定することが望ましいので、DATE 関数の戻り値を利用することを推奨する。 |
2. | ただし、Excel では、表示形式が「日付」であれば、シリアル値にて内部管理されるので、セル参照での利用は可能。
文字列で指定しても動作するが、誤動作要因となる可能性が残るので留意が必要。 |
3. | 開始日を終了日後で指定しても、戻り値が負の数となるだけでエラーとはならない。 |
NASD 方式とヨーロッパ方式の違いについて(余談) |
会計の専門家ではないので、そも 1 年を 360 日と計算する意味がよく分ってませんが...。
NASD 方式とヨーロッパ方式とでは、開始日/終了日に「月の最終日」が指定された場合に、考え方の差が生じるようです。
ヨーロッパ方式は、1 年を 12 x 30 日で単純に割り切っているので、計算上のイレギュラーとして捉えるべきは 31 日が指定された場合だけです。
しかも割り切っているので、同じ月の 30 日と見なして計算するだけで、蛇足すれば、2/28 は「最終日である」認識すらしません。
これに対し、NASD 方式では、最終日を一定の調整ポイントとして扱っているので、関数リファレンスに拠れば、以下の仕様となっています。
① 開始日が最終日の場合、同じ月の 30 日と見なす。
② 終了日が最終日で、開始日が同じ月の 30 日より前の場合、
翌月の 1 日と見なす。
③ 終了日が最終日で、開始日が②以外の場合、同じ月の 30 日
と見なす。
...?
②が先に語られることで複雑な話と化していますが、③のパターンって、実は開始/終了日ともに最終日を指定された場合に限定されませんか?
...詳しく検証する気はありませんが... f ^_^;)...。
思うに、ヨーロッパ方式で、2/28 ~ 3/1 を計算すると、3 日ってことになっちゃうのが気に入らなかった人が、最終日で調整するロジックを組み入れたんだけど、単純に、開始日が最終日なら同じ月の 30 日、終了日なら翌月 1 日で作ってみたら、開始/終了ともに最終日指定されると、戻り値が 1 になっちゃっう月ができちゃったんで、後から抜け道を付け足した程度の話じゃないでしょうかね?
何れにせよ、1 年を 360 日で計算するという大雑把な話ですし、例えば、7/30 ~ 7/31 は、どちらの方式で計算したって 0 なんですから、お好きな方式をご利用ください。
ちなみに、差の出るパターンを幾つか列挙しておきます。
開始日 | 終了日 | NASD 方式 | ヨーロッパ方式 |
2010/2/28 | 2010/2/28 | - 2 | 0 |
2010/2/28 | 2010/3/1 | 1 | 3 |
2010/3/1 | 2010/3/31 | 30 | 29 |
正直な話、どうせシリアル値なんですから、単純に引き算した方がスッキリするような気がします。
|
|
|
特記事項 |
|
使用例
| |
参考:Excel2010 関数リファレンス |
0 件のコメント:
コメントを投稿