こんにちはニシケンです。
日数計算の関数をまとめました。
時間軸での分析にとって日数の取得は必須の機能となります。日割り計算や日数調整、平均値の算出など欠かすことのできない要素となります。
DATEVALUE関数を利用したシリアル値ベースの計算をするよりも、関数で用意されている機能を利用して生産性を上げていきましょう。
DAYS | 期間の日数を取得
概要
指定された2つの日付の期間日数を返します。うるう年も考慮されます
構文
DAYS(終了日, 開始日)
- 終了日:期間の終了日
- 開始日:期間の開始日
使用例
A | B | 関数 | 結果 | 備考 |
---|---|---|---|---|
2019/01/01 | 2019/01/05 | =DAYS(B1,A1) | 5 | |
2019/07/01 | 2019/07/10 | =DAYS(A2,B2) | -5 | 開始日と終了日を逆に指定するとマイナスとなる |
DATEDIF | 期間を取得
概要
指定された2つの日付の期間を返します。
DAYS関数では日数を取得できますが、このDATEDIF関数では日数でも月数、年数を取得することが可能です。
単純に日数を取得したいのであればDAYS関数を利用し、より複雑な取得や状況に合わせた指定をしたいのであれば、DATEDIF関数を利用するのが良いでしょう。
構文
DATEDIF(開始日,終了日,単位)
- 開始日:期間の開始日
- 終了日:期間の終了日
- 単位 :取得する期間の単位を指定
単位
- D :日数
- M :月数
- Y :年数
- MD:年を考慮しない日数
- YM:年を考慮しない月数
- YD:同じ年とみなした日数
使用例
開始日 | 終了日 | D | M | Y | MD | YM | YD |
---|---|---|---|---|---|---|---|
2019/01/01 | 2019/12/31 | 364 | 11 | 0 | 30 | 11 | 364 |
2019/01/01 | 2020/12/31 | 730 | 23 | 1 | 30 | 11 | 364 |
NETWORKDAYS | 期間の稼働日数を取得
概要
指定された2つの日付の稼働日数を返します。
構文
NETWORKDAYS( 開始日, 終了日, [休日] )
- 開始日:期間の開始日
- 終了日:期間の終了日
- 休日 :休日とする日付の配列
使用例
A | B | 関数 | 結果 | 備考 |
---|---|---|---|---|
2019/07/02 | - | - | - | 有給 |
2019/07/03 | - | - | - | 有給 |
2019/07/15 | - | - | - | 海の日 |
2019/07/01 | 2019/07/31 | =NETWORKDAYS(A4,B4) | 23 | 平日のみの稼働日 |
2019/07/01 | 2019/07/31 | =NETWORKDAYS(A5,B5,A1:A3) | 20 | 有給、祝祭日を含んだ稼働日 |
NETWORKDAYS.INTL | 期間の営業日を取得(祝日指定あり)
概要
指定された2つの日付の稼働日数を返します。NETWORKDAYS関数との大きな違いは、週末の曜日を指定できるところです
構文
NETWORKDAYS.INTL(開始日, 終了日, [週末], [休日])
- 開始日:期間の開始日
- 終了日:期間の終了日
- 週末 :週末とみなされる曜日を文字列で表します
- "0000011":土日を週末とする ※デフォルト値
- "1000001":日月を週末とする
- 0=平日、1=週末と指定する
- 休日 :休日とする日付の配列
使用例
A | B | 関数 | 結果 | 備考 |
---|---|---|---|---|
2019/07/02 | - | - | - | 有給 |
2019/07/03 | - | - | - | 有給 |
2019/07/15 | - | - | - | 海の日 |
2019/07/01 | 2019/07/31 | =NETWORKDAYS(A4,B4) | 23 | 平日のみの稼働日 |
2019/07/01 | 2019/07/31 | =NETWORKDAYS(A5,B5,"1000001"A1:A3) | 19 | 月,日休みで、有給と祝祭日を含んだ稼働日 |