【スプレッドシート】日付・時刻の関数一覧と使い方!
スプレッドシートは
ので、エクセル以上に、日付の関数を使うことが多くなると思います。
そこで今回は、スプレッドシートで、使える日付に関わる関数について解説していきたいと思います!
是非この記事を読んで、日付マスターになってください!
日付関係で使える関数一覧
日付関係で使える関数は、下記の通り23種類となっています。
TODAY | TODAY() | 現在の日付に対応するシリアル値を返します。 |
NOW | NOW() | 現在の日付と時刻に対応するシリアル値を返します。 |
DATE | DATE(年, 月, 日) | 指定した年、月、日を日付に変換します。 |
TIME | TIME(時刻, 分, 秒) | 指定した時、分、秒を時刻に変換します。 |
DATEVALUE | DATEVALUE(日付の文字列) | 指定した日付の既知の形式の文字列をシリアル値に変換します。 |
TO_DATE | TO_DATE(値) | 指定した数値を日付に変換します。 |
YEAR | YEAR(日付) | 特定の日付によって指定した年を返します。 |
MONTH | MONTH(日付) | その年の指定した日付に対応する月を数値形式で返します。 |
DAY | DAY(日付) | その月の指定した日付に対応する日を数値形式で返します。 |
HOUR | HOUR(時刻) | 指定した時刻の時引数を数値形式で返します。 |
MINUTE | MINUTE(時刻) | 指定した時刻の分引数を数値形式で返します。 |
SECOND | SECOND(時刻) | 指定した時刻の秒引数を数値形式で返します。 |
EDATE | EDATE(開始日, 月数) | 起算日から指定した月数だけ前または後ろの日付を返します。 |
EOMONTH | EOMONTH(開始日, 月数) | 起算日から指定した月数だけ前または後ろの月の最終日の日付を返します。 |
DAYS | DAYS(終了日, 開始日) | 2 つの日付間の日数を返します。 |
DAYS360 | DAYS360(開始日, 終了日, 方法) | 1 年を 360 日として(利率の計算で使用されます)、2 つの日付の間の日数を返します。 |
NETWORKDAYS | NETWORKDAYS(開始日, 終了日, 休日) | 指定した 2 つの日付の間に含まれる就業日数を返します。 |
WORKDAY | WORKDAY(開始日, 日数, [休日]) | 指定された就業日数をもとに終了日を計算します。 |
DATEDIF | DATEDIF(開始日, 終了日, 単位) | 2 つの日付の間の日数、月数、年数を計算します。 |
YEARFRAC | YEARFRAC(開始日, 終了日, [日数の計算方法]) | 指定した日数の計算方法を使用して、2 つの日付の間の年数(1 年に満たない年も含む)を返します。 |
WEEKDAY | WEEKDAY(日付, 種類) | 指定した日付に対応する曜日を数値で返します。 |
WEEKNUM | WEEKNUM(日付, [種類]) | 指定した日付が該当する年間の週番号を表す数値を返します。新しい Google スプレッドシートでのみ使用できます。 |
ISOWEEKNUM | ISOWEEKNUM(日付) | 指定された日付に該当する、その年の ISO 週番号を返します。 |
TIMEVALUE | TIMEVALUE(時刻文字列) | 1 日 24 時間のうちの、時刻が表す割合を返します。新しい Google スプレッドシートでのみ使用できます。 |
TODAY NOW
まずは、
TODAY | TODAY() | 現在の日付に対応するシリアル値を返します。 |
NOW | NOW() | 現在の日付と時刻に対応するシリアル値を返します。 |
です。
この二つは一見同じように見えますが、
TODAY()は 「日付」のみを返し、
NOW()は 「日付+時間」を返します。
DATE,TIME
次は、
DATE | DATE(年, 月, 日) | 指定した年、月、日を日付に変換します。 |
TIME | TIME(時刻, 分, 秒) | 指定した時、分、秒を時刻に変換します。 |
関数です。
DATEは日付に、TIMEは時刻に変換します。
使い方としては、
ダウンロードしたデータの日付が、
「20200112」のように8桁のフォーマットだった場合。
A1「20200112」
=DATE(LEFT(A,4),MID(A1,5,2),RIGHT(A1,2))
とセルに入力することで、スプレッドシートに日付として認識させることができます。
日付として認識させることで、
本日から1週間以内などの検索などの検索ができるようになりますので、
落としたフォーマットが、日付表示でない場合はこの関数を使用するといいでしょう。
DATEVALUE
DATEVALUE関数は、
DATEVALUE | DATEVALUE(日付の文字列) | 指定した日付の既知の形式の文字列をシリアル値に変換します。 |
TO_DATE | TO_DATE(値) | 指定した数値を日付に変換します。 |
1899/12/31を1として、今までの日数を返します。
使い方としては、DATEVALUE(TODAY())-DATEVALUE(特定の日付)とすることで、
特定の日付から本日までの日数を計算することができます。
TO_DATE関数は、使い方が、少々難しいかもしれませんね。
YEAR,MONTH,DAY,HOUR,MINUTE,SECOND
指定した日付、時刻から指定したデータを数値形式で抜き出します。
日付だけを抜き出して表示するときなどに便利です。
YEAR | YEAR(日付) | 特定の日付によって指定した年を返します。 |
MONTH | MONTH(日付) | その年の指定した日付に対応する月を数値形式で返します。 |
DAY | DAY(日付) | その月の指定した日付に対応する日を数値形式で返します。 |
HOUR | HOUR(時刻) | 指定した時刻の時引数を数値形式で返します。 |
MINUTE | MINUTE(時刻) | 指定した時刻の分引数を数値形式で返します。 |
SECOND | SECOND(時刻) | 指定した時刻の秒引数を数値形式で返します。 |
EDATE,EOMANTH
EDATE,EOMONTH関数は、
月数だけ加算、減算することができます。
EDATE | EDATE(開始日, 月数) | 起算日から指定した月数だけ前または後ろの日付を返します。 |
EOMONTH | EOMONTH(開始日, 月数) | 起算日から指定した月数だけ前または後ろの月の最終日の日付を返します。 |
月の最終日はその月のよって、
28日であったり、30日であったり、31日であったりします。
ですので、次の月の同じ日を計算したい場合、
4/15+30=5/15
となりますが、
5/15+30=6/14
となってしまいます。
こんな時には、
=EDATE("2010/5/15",1)
と入力することで、6/15日を得ることができます。
差を計算したいとき
日付の差を計算したいときなどは
下記関数を使います。
日付 | DAYS | DAYS(終了日, 開始日) | 2 つの日付間の日数を返します。 |
日付 | DAYS360 | DAYS360(開始日, 終了日, 方法) | 1 年を 360 日として(利率の計算で使用されます)、2 つの日付の間の日数を返します。 |
日付 | NETWORKDAYS | NETWORKDAYS(開始日, 終了日, 休日) | 指定した 2 つの日付の間に含まれる就業日数を返します。 |
日付 | WORKDAY | WORKDAY(開始日, 日数, [休日]) | 指定された就業日数をもとに終了日を計算します。 |
日付 | DATEDIF | DATEDIF(開始日, 終了日, 単位) | 2 つの日付の間の日数、月数、年数を計算します。 |
日付 | YEARFRAC | YEARFRAC(開始日, 終了日, [日数の計算方法]) | 指定した日数の計算方法を使用して、2 つの日付の間の年数(1 年に満たない年も含む)を返します。 |
例えば、
=DAYS("2020/6/10","2020/6/20") → 「10」
=DAYS360("2020/6/10","2021/6/20") → 「370」
と出力されます。
就業日まで考慮に入れたい場合は、
NETWORKDAYS、WORKDAY を使います。
休日の設定は、別にセルを設けておく必要があります。
土日など曜日を指定する場合には、
NETWORKDAYS.INTL、WORKDAY.INTL を使うと、
指定した休日+曜日の指定によって、
差や終了日を計算できます。
DATEDIF では、二つの日付の
日数、月数、年数を計算できます。
指定できる関数は、下記の通りとなっております。
"Y": 開始日と終了日の間の年数を返します。
"M": 開始日と終了日の間の月数を返します。
"D": 開始日と終了日の間の日数を返します。
"MD": 開始日と終了日の間から年を差し引いた日数を返します。
"YM": 開始日と終了日の間から年を差し引いた月数を返します。
"YD": 開始日と終了日の間が 1 年以内であるものとして開始日と終了日の間の日数を返します。
YEARFRACは、小数点を含む、年数の差を取り出すことができます。
例えば、
YEARFRAC("2010/6/5","2021/12/5") → 11.5
のように11年と半年の場合は11.5と表示されます。
週の計算
週の計算に使える関数です。
日付 | WEEKDAY | WEEKDAY(日付, 種類) | 指定した日付に対応する曜日を数値で返します。 |
日付 | WEEKNUM | WEEKNUM(日付, [種類]) | 指定した日付が該当する年間の週番号を表す数値を返します。新しい Google スプレッドシートでのみ使用できます。 |
日付 | ISOWEEKNUM | ISOWEEKNUM(日付) | 指定された日付に該当する、その年の ISO 週番号を返します。 |
WEEKDAYは曜日に対応した数値を返すことができます。
デフォルトでは、日曜日が 1 ~ 土曜日が 7 で出力されます。
WEEKNUMは、年間の週番号を計算できます。
ジャンプの発売日のように、1年間で53州となります。
ISOWEEKNUMは世界標準で週番号を計算してくれます。
1日のうちの割合を表示
最後はTIMEVALUE関数です。
日付 | TIMEVALUE | TIMEVALUE(時刻文字列) | 1 日 24 時間のうちの、時刻が表す割合を返します。新しい Google スプレッドシートでのみ使用できます。 |
この関数は、1日のうち時刻が表す割合を示します。
例えば、就業時間が、8:00~17:00の場合、
就業時間の1日の割合を計算してみると
=TIMEVALUE("17:00:00")-TIMEVALUE("8:00:00")
→0.375=37.5%
となります。
まとめ
日付、時刻にまつわる関数を見てきましたが、
DAYS,EOMONTHや、TIMEVALUEなど知っていると便利な関数がたくさん用意されていることが分かりました。
グーグルカレンダーなどを操作する時にいろいろと役に立つと思いますので、
さらっとでも一覧を覚えておくと役立つかもしれませんね!
コメント欄