Excel上の「日付」の実態は「1900年1月1日」を「1」とし、1日に「1」づつ増加する「シリアル値」です
2019年2月18日はシリアル値で「43514」になります。
Excel上の「日付」の実態がシリアル値であるため、2つの日付の間の日数計算は、単純な引き算によって求めることができます。
1月1日から1月20日までの日数計算
「日付」で計算 数式「 2019/1/20 - 2019/1/1 = 19 」
「シリアル値」で計算 数式「 43485 - 43466 = 19 」
日数を計算する関数を使えば複雑な日数計算をすることができます
日付を計算する「関数」を使えば、請求書の「支払日」を状況に合わせて表示させることができます。
- 支払日までの「残日数」を土・日を除いた営業日で表示する。
- 支払期日が「土・日(営業日以外)」の場合に、支払日を前(後)にずらして表示する。
- 請求の「締日」を過ぎた場合に、支払期日を「翌々月」にする。
「日付」関連の関数はいろいろなものがあります
- 「WORKDAY関数」 ➡ 土・日と祝日を除いて、終了予定日を計算
- 「WORKDAY.INTL関数」 ➡ 定休日を土・日以外にして終了予定日を計算
- 「EDATE関数」 ➡ 「〇カ月後」の日付を計算
- 「EDATE関数」 ➡ 「〇年後」の日付を計算
- 「NETWORKDAY関数」 ➡ 2つの日付の間の日数を求める
- 「DATEDIF関数」 ➡ 2つの日付の間の月数を求める
- 「EOMONTH関数」 ➡ 「20日締め」、「翌月10日払い」などの締日を計算
- 「EOMONTH関数」 ➡ 「WORKDAY関数」 支払日が休日の時はその前後の営業日を計算
1.土・日を除いた「営業日」で残り日数を計算する
ExcelのWORKDAY関数を使えば、土・日を除いた「営業日」で残り日数を計算することができます。
WORKDAY関数は「〇営業日後」の日付を計算することができます。
「開始日」2月5日の土・日を除いた6日後の、終了予定日が「何月何日」になるか
数式「 = WORKDAY ( 開始日 , 日数 ) 」
2.土・日と祝日を除いて、終了予定日を計算する
「開始日」の2月1日から、土・日と祝日を除いた6日後の終了予定日が「何月何日」になるかを計算します。
祝日の一覧表を用意して、休日の日付部分を「休日リスト」の名前で登録します
「休日一覧」の日付部分を範囲選択し「名前ボックス」に「休日一覧」と入力します。
WORKDAY関数の祭日に「休日リスト」を指定
WORKDAY関数で「祭日」に「休日リスト」を指定します。
数式「 = WORKDAY ( 開始日 , 日数 , 祝日 ) 」
WORKDAY関数で「祭日」を指定します
3.定休日を土・日以外にすることもできます(WORKDAY.INTL関数)
「毎週の定休日を土・日以外に設定」する場合は、「WORKDAY.INTL関数」を使います
- WORKDAY.INTL関数の引数が「1(又は省略)」の時は「土・日が週末」になります
- 数式「 = WORKDAY.INTL ( 開始日 , 日数 , 週末 , 祝日 ) 」
「週末」に入力する引数
「週末」に入力する引数で、休日にする曜日を設定できます。
4.EDATE関数で「〇カ月後」の日付を求める
EDATE関数を使えば、指定した月数後の日付を計算することができます。
数式「 = EDATE ( 開始日 , 月 ) 」
5.EDATE関数で「〇年後」の日付を求める
EDATE関数を使えば、指定した年数後の日付を求めることができます。
「月」に12を掛けることで「年」に変換して計算します。
数式「 = EDATE ( 開始日 , 月*12) 」
6.2つの日付の間の日数を求める
NETWORKDAY関数とTODAY関数を使えば、「作業終了予定日」までの残日数を計算することができます。
- 「現在」の項目にTODAY関数を用いて、「当日」を表示します
- NETWORKDAY関数で「土・日」と「祭日」を除いた「残日数」を表示します
- 数式「 = NETWORDDAYS ( 開始日 , 終了日 , 祭日 ) 」
※ 定期的な休日が「土・日」以外の場合はNETWORKDAY.INTL関数を使います
7.2つの日付の間の月数を求める
- 数式「 = DATEDIF ( 開始日 , 終了日 , 単位 ) 」
- 引数単位は「M」が月数を表す
DATEDIF関数の「引数」
8.「20日締め」、「翌月10日払い」などの締日を自動で表示する
EOMONTH関数を使えば、指定した日付の「その月の最終日」を計算することができます。
EMONTH関数の引数(月)を「0」にすれば当月、「1」にすれば翌月になります。
IF関数を使って20日までは「真」、それ以降は「偽」にします。
数式「 = EOMONTH ( C6 , IF ( DAY (C6) <=20 , 0 , 1 )) +10 」
※ 支払日が「10日」なので、EMONTH関数の結果に「10加える」する
- IF関数で20日より小さい場合は「0」、そうでない場合は「1」とする
- EOMONTH関数の「月」が「0」の場合は「当月末の10日後」、「1」の場合は翌月末の10日後」になる
締日の20日を過ぎると、支払日が翌々月の10日になります
納品日の2/21日は締日の2/20日を過ぎているので、支払日は3/10日ではなく、翌々月の4/10日になります。
9.支払日が休日の時はその前後の営業日を求める
EOMONTH関数とWORKDAY関数を組み合わせれば、支払日が「休日」になる場合は、その前後の営業日を計算することができます。
数式「 = WORKDAY ( EOMONTH (納品日 , IF (DAY (納品日) <=20 , 0 , 1 )) +9 , 1 , 休日リスト) 」
- 「20日締め翌月10日払い」とした場合、10日が「休み」の場合は翌日を支払日とする
- WORKDAY関数の引数「日数」に「1」を指定すれば、9日の次の営業日が求められる
ネスト(入れ子)構造の複雑な数式になります
- Excel上の「日付」の実態は「1900年1月1日」を「1」とし、1日に「1」づつ増加する「シリアル値」です
- 日数を計算する関数を使えば複雑な日数計算をすることができます
- 「日付」関連の関数はいろいろなものがあります
- 1.土・日を除いた「営業日」で残り日数を計算する
- 2.土・日と祝日を除いて、終了予定日を計算する
- 3.定休日を土・日以外にすることもできます(WORKDAY.INTL関数)
- 4.EDATE関数で「〇カ月後」の日付を求める
- 5.EDATE関数で「〇年後」の日付を求める
- 6.2つの日付の間の日数を求める
- 7.2つの日付の間の月数を求める
- 8.「20日締め」、「翌月10日払い」などの締日を自動で表示する
- 9.支払日が休日の時はその前後の営業日を求める