
日付/時刻関数
CS資格・Excelの実務に一部必須
全部は覚えなくて良い
解説
日付や時間に関するデータ処理を行う関数です。
重要
Windows系のPCでは暦や時刻は1900年1月1日を1として、1日につき1づつ増える数値として扱います。
この数値のことを「日付シリアル値」と言います。
時刻は小数点以下の数値で表され、昼の12時が0.5になります。負の数値はエラーになります。
時刻の簡単な計算法
1日が1ですから
1時間は 1/24
1分は 1/24/60
1秒は 1/24/60/60
5分なら
5*1/24/60
3時間52分16秒なら
3*1/24+52*1/24/60+16*1/24/60/60
と書けば考え易いと思います。
一覧表(赤文字は特に重要)
バージョンによっては使えないものもあります。
関数名 | 解説 | |
日時 | TODAY | 現在の日付値を求めます。 |
NOW | 現在の日付と時刻を求めます。 | |
TIME | 指定した時刻を求めます。 | |
DATE | 指定された日付を求めます。 | |
変換 | DATEVALUE | 日付を表す文字列をシリアル値に変換します。 |
TIMEVALUE | 時刻を表す文字列をシリアル値に変換します。 | |
抽出 | YEAR | シリアル値から年の数値を抽出します。 |
MONTH | シリアル値から月の数値を抽出します。 | |
WEEKDAY | シリアル値から曜日の数値を抽出します。 | |
DAY | シリアル値から日付の数値を抽出します。 | |
HOUR | シリアル値から時刻の数値を抽出します。 | |
MINUTE | シリアル値から時刻の分の数値を抽出します。 | |
SECOND | シリアル値から時刻の秒の数値を抽出します。 | |
計算 | WEEKNUM | 指定した日付がその年の何週目に当たるかを示す値に変換します。 |
EDATE | 開始日から起算し、指定した月数だけ前または後の日付を求めます。 | |
EOMONTH | 開始日から起算し、指定した月数だけ前または後の月の最終日を求めます。 | |
DAYS360 | 1年を 360日(30日×12ヶ月) として、支払計算などに使用する日数を求めます。 | |
NETWORKDAYS | 開始日と終了日を指定して、その期間内の稼動日の日数を求めます。 | |
WORKDAY | 開始日から起算して、指定した稼動日数だけ前または後の日付に対応するシリアル値を求めます。 | |
YEARFRAC | 開始日と終了日を指定して、その間の期間が 1 年間に対して占める割合を求めます。 |
特殊な日付関数
DATEDIF | 書式 DATEDIF(開始日,終了日,単位) 第3引数で指定した単位で、開始日から終了日までの期間を求めます。 単位は「"」で囲んだ文字列、日付は「"2001/1/1"」のように日付データ形式を「"」で囲んだ文字列かセル参照です。 |
この関数はLOTUS1-2-3との互換性を保つためだけに存在しており、ヘルプにすら記載されていません。 うるう年2月29日は一応計算されますが、2月29日を挟んで翌年の3月1日を終了日に指定した場合のように直接関係する場合は誤差が発生する場合も有ります。 |
単位
Y | 年数 |
M | 月数 |
D | 日数(普通に引き算した方が良い) |
MD | 月数未満の日数、「年月日」の日の部分 |
YM | 年数未満の月数、「年月日」の月の部分 |
YD | 年数未満の日数、「1年と160日」なら160 |
例
DATEDIF("2001/1/1","2010/4/1","YD")
DATEDIF(D55,D56,"YM")
セル参照の場合、参照セルのデータは日付シリアル値