エクセルを用いて集計作業を行っていると必ずといっていいほど出てくるのが日付操作です。ある日付を基準に計算した結果を用いて集計をしたりと、仕事をする上では覚えておきたい部分でもあります。
- ある日付を基準に、加算・減算した日付を算出する
(例)10日後、1ヵ月後、2年後 など - ある日付を基準に、月初日付・月末日付を算出する
(例)2019年2月の月末日付 → 2019年2月28日 - ある日付を基準に、和暦で表示する
(例)2019年12月25日 → 令和元年12月25日 - ある日付を基準に、書式を変更する
(例)2019年12月25日 → 2019-12-25 - ある日付を基準に、月や日のみを抽出する
(例)2019年12月25日 → 12月
そこで今回は、エクセルを用いて行える日付操作について、基本的なものを事例を交えてご紹介します。コピペでも使用できますので、ぜひ参考にしてみてください。
Excelによる日付操作の早見表
各内容についての詳しい説明は後述していますが、手っ取り早くエクセルで日付操作を行いたい場合、まずこちらを参照ください。
日付に対する加算・減算操作の早見表
日付に対して加算・減算を行う場合、エクセルのEDATE関数、EOMONTH関数を主に用います。
- 日/月/年単位での日付に対する加算/減算
- 月初日付・月末日付の計算
2つの日付差を計算する早見表
2つの日付に対して日数の差を計算したい場合、エクセルのDAYS関数やDATEDIF関数を主に用います。
- 日数差の計算(日・月・年)
- 今日を基準にした日数差の計算
日付に対する書式変更の早見表
日付を違う書式(違う見せ方)で表示したい場合、フォーマットを変換するためのTEXT関数を用います。
- 西暦・和暦表示
- 年、月、日のみの表示
- 曜日の表示
日付の加算・減算
日付操作の基本としてよくあるのが、ある日付に対して加算・減算を行うケースです。10日後、1ヵ月後、2年前など、利用したいケースは多岐に渡ります。
増分を日指定とした場合
日付の加算・減算を行う場合、単純に日の増減のみでよい場合は、次のように行います。
=日付のセル - 増分の日数(数値)
次の例は、A列に基準日、B列に増減値(日)、C列に計算結果を表したものです。
C2セルは「=A2+B2」となっていますので、「2019/12/25」の1日後である「2019/12/26」が計算結果をとして表示されています。B列の増分をマイナスにすれば、○○日前の日付を算出できます。
日指定の増減はこのように簡単に行う事ができます。
増分を月・年指定とした場合
1ヵ月後、2ヶ月前など、月を単位とした加算・減算を行いたいような場合、先述のような方法だとうまく算出できません。なぜなら、月内の日数は、基準とする日によってバラバラのためです。
- 1月の場合:31日
- 2月の場合:28日または29日
- 4月の場合:30日
そのため、1ヶ月前の日付を算出したい際に、「=日付セル - 30」のようにしてしまうと、厳密にはずれて算出されてしまう事があります。
そのため、月を増分として日付計算する場合は、EDATE関数を用います。
EDATE(日付, 増分)
日付:必須。基準とする日付を指定する。
増分:必須。増分(単位は月)を指定する。
<内容>
EDATE関数は、日付に対して月単位の加算・減算を行う。
サンプルとして次のように、A列は日付、B列は増分(月)、C列はEDATE関数を用いて日付を月単位で加算・減算した結果を表示しています。
=EDATE(A2, B2)
基本的にEDATE関数を用いると日部分は同じになりますが(例:11月25日の1ヵ月後は12月25日)、上記の4行目のように1ヵ月後の日付が存在しない場合は、存在する日付に変換されますので、必ず存在する日付が結果として返ってくるのがポイントです。
2019/1/31の1ヵ月後をEDATE関数で算出した場合、
2019/1/31を単純に1月分追加
→2019/2/31
→存在しないため、存在する日付に丸められて2019/2/28
増分を年指定で日付を加算・減算する方法は、MONTH関数やYEAR関数などがあるのですが、先述のEDATE関数を使ったほうが手っ取り早いです。
月末日付・月初日付の算出
当月末、当月月初、来月月初、来月末など、月末日付・月初日付を求めたい場合はEOMONTH関数を用いると可能です。月初日付(1日日付)の場合はEOMONTH関数以外にも算出方法はありますが、月初・月末を算出する際は同じ関数を使うことでシンプルになります。
月末日付はEOMONTH関数をそのまま用いれば算出できます。今月末日付の場合は、
=EOMONTH(日付, 0)
となります。
月初日付の場合は「月末日付+1」で算出しています。そのため今月月初の場合は、
=EOMONTH(日付, -1) + 1
となります。
月の日数の算出
月内の日数を算出する場合、EOMONTH関数とDAY関数を用います。
まずEOMONTH関数で月末日付を算出し、月末日付の日の部分をDAY関数で取得しています。これにより、月の日数が算出できるようになります。
=DAY(EOMONTH(A2, "0"))
=DAY(EOMONTH(A2, "1"))
日付差の計算方法
2つの日付の差を求める事も、仕事をする上ではよく使用しますね。例えば次のような用途が考えられます。
- 期限まであと何日か(進みや遅れの確認用)
- 開始日~終了日までが何日間か(期間がどれぐらいあるかの確認用)
- 年齢や入社年月数の算出(生年月日や入社日を元に今時点の状態の確認用)
日数、月数、年数の算出
日数の差を算出する場合はDAYS関数、月数・年数の差を算出する場合はDATEDIF関数を使用します。
日数の差の場合、2つの日付をDAYS関数に指定します。第一引数には日付FROM、第二引数には日付TOを指定しますが、日付FROM>日付TOの場合、関数の結果はプラスの数値になります。逆に日付FROM<日付TOの場合、関数の結果はマイナスの数値となります。マイナス=遅れていると判断することができますね。
2019年12月20日~2019年12月28日の間の日数の場合は
=DAYS("2019/12/28", "2019/12/20") ⇒ 8
月数・年数の差を算出する場合、DATEDIF関数を使用します。第3引数が単位を表しているため、月数の場合は"M"、年数の場合は"Y"を指定します。
2018年5月20日~2019年12月28日の間の月数、年数を算出する場合、
月数:=DAYS("2018年5月20日", "2019/12/28", "M") ⇒ 19
年数:=DAYS("2018年5月20日", "2019/12/28", "Y") ⇒ 1
現在日付を基にした日数、月数、年数の算出
年齢や入社年数などを算出する場合も同様に行えます。これらを見たい場合、「今時点でどうか」ということを確認したいと思いますので、現在の日付を表すTODAY()関数を先述の引数に設定すればよいです。
今日(2019年12月28日)時点の情報を算出する場合
年齢:=DAYS("1965年5月20日", TODAY(), "Y") ⇒ 54
入社年数:= DAYS("2001年4月1日", TODAY(), "Y") ⇒ 18
日付の書式設定
西暦・和暦の表示
エクセルのデフォルトの表示はYYYY/M/D形式ですが、YYYY年MM月DD日や和暦表示も可能です。TEXT関数を用いれば、色々と日付の書式を変えることができます。
年・月・日・曜日の表示
西暦・和暦のように年月日の表示だけではなく、年のみ、月のみ、日のみの表示も可能です。合わせて曜日も表示可能ですので、TEXT関数をうまく活用してしましょう。
年度の表示
日付操作でよくあるのが、決算月を考慮した年度の算出です。
2019年度:2019年4月1日~2020年3月31日
2020年度:2020年4月1日~2021年3月31日
売上日を元に決算年度を算出し、決算年度で集計を行うというのは、仕事で使う場面の1つではないでしょうか。
年度を算出するのは、これまでご紹介したやり方を組み合わせれば簡単に実現できます。
- 基準とする日付を決める。
(例)2020年3月12日 - 決算月を元に月の増分を決める。
(例)3月決算の場合、3 - 基準とする日付に対して、増分をマイナスした日付を算出する。
(例)2020年3月12日の3ヶ月前 → 2019年3月12日 - 3の日付の年部分が年度となる。
(例)2019年3月12日 → 2019年度
※12月決算の場合、上記を行いません。
基準とする日付の年部分が年度となるためです。
まとめ
エクセル関数による日付操作の基本的なものをご紹介しました。今回ご紹介した内容は業務をするうえで使えるものが多いかと思いますので、ぜひ活用ください!