ひっそりとExcel関数のおさらい(日付/時刻に関するもの)
今回は日付/時刻に関する関数について、おさらいをします。と、同時に新たな気づき、アイデアに繋がればいいなーと思ってます。
Excel関数に関しては、既に多くのウェブサイト・書籍等で解説しつくされていますが、自分の頭を整理するためになるべく自分の言葉で書き、表現したいと思います。(結果、既存のものと似たような書きぶりになっている場合もあります・・・)
チョイスする関数は個人的に使用頻度の高いもの、今後使用しそうなもの、または単なる好みだったりするので、ご了承ください。
目次
- 日付、時刻を表すシリアル値とは?
- 現在の日付、時刻を取得する(TODAY関数、NOW関数)
- シリアル値から年、月、日、時、分、秒、曜日を求めて表示する(YEAR関数、MONTH関数、DAY関数、HOUR関数、MINUTE関数、SECOND関数、WEEKDAY関数)
- 2つの日付から経過年数・月数・日数を求めて表示する(DATEDIF関数)
日付、時刻を表すシリアル値とは?
シリアル値とは、1日を整数の「1」として表現し、1900年1月1日の「1」から始まり9999年12月31日の「2958465」まで続く値のことです。たとえば、2018年1月13日であればシリアル値は「43113」であり、1900年1月1日から43113日が経過していることを意味しています。1日のうちの時刻は、小数点以下の数値で表され、2018年1月13日の14時30分であればシリアル値は「43113.6041666667」となります。
このようにシリアル値で管理することによって、Excel上で日付の計算を容易に行うことができるようになっています。
現在の日付、時刻を取得する(TODAY関数、NOW関数)
TODAY関数
該当のセルに現在日付を表示する場合は=TODAY()
と入力します。引数はありませんが、()が必要です。
NOW関数
該当のセルに現在日付と時刻を表示する場合は=NOW()
と入力します。引数はありませんが、()が必要です。
なお、先ほども述べましたが「日付」のシリアル値は整数で、「時間」のシリアル値は小数で表されます。
関数で取得した日付・時間を「標準」書式に変更して見てみると、シリアル値がどうなっているか確認することができます。
・TODAY関数で取得したシリアル値
・NOW関数で取得したシリアル値
シリアル値から年、月、日、時、分、秒、曜日を求めて表示する(YEAR関数、MONTH関数、DAY関数、HOUR関数、MINUTE関数、SECOND関数、WEEKDAY関数)
YEAR関数=YEAR(シリアル値)
引数のシリアル値から「年」に該当する1900~9999の範囲の整数を返します。
なお、引数はシリアル値以外に日付文字列(要するにExcelが日付と認識できる文字列"2018/1/13"など)とすることもできます。また、シリアル値・日付文字列が入ったセル参照とすることも可能です。
MONTH関数=MONTH(シリアル値)
引数のシリアル値から「月」に該当する1~12の範囲の整数を返します。なお、引数は日付文字列・セル参照とすることもできます。
DAY関数=DAY(シリアル値)
引数のシリアル値から「日」に該当する1~31の範囲の整数を返します。なお、引数は日付文字列・セル参照とすることもできます。
HOUR関数=HOUR(シリアル値)
引数のシリアル値から「時」に該当する0~23の範囲の整数を返します。なお、引数は日付文字列・セル参照とすることもできます。
MINUTE関数=MINUTE(シリアル値)
引数のシリアル値から「分」に該当する0~59の範囲の整数を返します。なお、引数は日付文字列・セル参照とすることもできます。
SECOND関数=SECOND(シリアル値)
引数のシリアル値から「秒」に該当する0~59の範囲の整数を返します。なお、引数は日付文字列・セル参照とすることもできます。
WEEKDAY関数=WEEKDAY(シリアル値,[種類])
[]内は省略可能な引数
引数のシリアル値から「曜日」に該当する1~7の範囲の整数を返します。なお、引数は日付文字列・セル参照とすることもできます。
このままでは、数値として表示されるだけなので、曜日として表示するには表示形式の変更が必要です。
表示形式のユーザー定義に「aaa」を追加し、OKします。
第2引数の種類で、始まりを何曜日にするかの指定ができますが、個人的には省略でよいかと思います。省略の場合は1(日曜)~7(土曜)になります。
2つの日付から経過年数・月数・日数を求めて表示する(DATEDIF関数)
=DATEDIF(開始日,終了日,"単位")
なお、開始日・終了日は、シリアル値・日付文字列・セル参照とすることができます。
・単位をYとした場合
開始日から終了日までの経過年数(月日は切り捨て)を取得します。
・単位をMとした場合
開始日から終了日までの経過月数(日は切り捨て)を取得します。
・単位をDとした場合
開始日から終了日までの経過日数を取得します。
・単位をYMとした場合
開始日から終了日までの1年未満の月数を取得します。
・単位をYDとした場合
開始日から終了日までの1年未満の日数を取得します。
・単位をMDとした場合
開始日から終了日までの1ヶ月未満の日数を取得します。
・YM,YD,MDの使い方の例
例えば、開始日から終了日までの経過年・月・日数を表示したい場合などは、Yで年数を取得し、YMおよびMDで1年未満の月数・日数を取得するとよいと思います。
下記画像では
A5セルに、=DATEDIF(A2,B2,"Y")
A6セルに、=DATEDIF(A2,B2,"YM")
A7セルに、=DATEDIF(A2,B2,"MD")
を入力し、経過年・月・日数を表示しています。