【関数】スプレッドシートで日付を自動入力!日付関連の関数のまとめとサンプルデータ

関数
この記事は約6分で読めます。

スプレッドシートで日付の関数を使用すると、
便利に使うことができるようになります。

この記事では、GASを使用せずに関数のみで日付を表示させる方法を書いています。

スポンサーリンク

関数ではなく、GASを使いたい場合や、
チェックボックスで日付を自動表示させたい場合はこちら
【GAS】スプレッドシートで日付を自動で入力!日付更新・曜日自動サンプル【Google Apps Script】

この記事で解説している関数

TODAY()
YEAR()
MONTH()
DAY()
EDATE()
EOMONTH()
DATE()

スプレッドシートの日付関数

本日の日付

本日の日付はTODAY関数を使用します。

TODAY()

システム(PC)の日付を返す関数です。

TODAY関数は、時刻を含まない現在の日付を返します。
時刻を含めた日付の取得は、NOW関数を使用します。

NOW()

○日後の日付を表示

基準日から◯日後を指定して表示させるには、TODAY関数に+◯日を指定するだけです。

3日後なら+3

TODAY()+3

「+◯」で指定すると、シリアル値で表示されてしまうことがあります。

シリアル値とは、1900年1月1日を「1」として、そこから何日経っているかの日数を数値にしたものです。
1900/01/01 だと シリアル値「1」
1900/01/02 だと シリアル値「2」

2022/02/22 だと シリアル値「44614」

シリアル値で表示されてしまった場合は、
メニューから「表示形式」→「数字」→「日付」に変更すると、日付で表示できるようになります。

日付から年、月、日を表示

日付から年、月、日を別々で取り出したい場合は、
YEAR関数,MONTH関数,DAY関数を使用します。

YEAR()
MONTH()
DAY()

()内には、日付や関数を入力します。

YEAR("2022/02/22")  → 2022
MONTH("2022/02/22")  →  2
DAY("2022/02/22")  →  22

TODAY関数や他の日付関数を入れることもできます。
YEAR(TODAY())
MONTH(TODAY())
DAY(TODAY())

数値を指定して年月日表示させる

数値を指定して、年月日表示させる場合はDATE関数を使用します。

DATE(年、月、日)

○ヶ月後を指定して表示

◯ヶ月後を指定するには、EDATE関数を使用します。

EDATE(開始日,月数)

来月:EDATE(TODAY(),1)
前月:EDATE(TODAY(),-1)
半年後:EDATE(TODAY),6)
1年後:EDATE(TODAY(),12)

月末の日付を表示させる

末日は、EOMONTH関数を使用します。

EOMONTH(開始日,月数)

スポンサーリンク

今月の末日:EOMONTH(TODAY(),0)
来月の末日:EOMONTH(TODAY(),1)
前月の末日:EOMONTH(TODAY(),-1)

日付関数のサンプルデータ


スプレッドシートで日付のサンプルデータを公開しています。
【Copori】日付を関数で使う

サンプルデータと関数

サンプルデータのスプレッドシートには、
この記事で紹介している関数を使用したセルと、
簡単なタスク管理の日付表示ができる表があります。

全て関数のみで動いています。

関数のみでタスク管理

毎日のタスクの期限表示と、毎月、月末のタスクの期限を、
本日の日付を基準として期限日の表示をしています。

期限日を表示させる関数は、E19に入っていて、
ARRAYFORMULA関数でE19〜E21まで適用しています。

中身はIFS関数で基準日を軸として判定を行なっていますが、
分解して説明していきます!

毎日のタスク

毎日のタスクは基準日にTODAY関数が入っていて、
そこから次の日の日付を次のタスク期限日に表示させています。

IF(D19=TODAY(),TODAY()+1)


D19が今日の日付なら、+1して表示させるだけの簡単な数式です。

毎月のタスク

毎月のタスクは、基準日を期限として、
本日の日付が基準日より前なら、今月の期限の日付、
本日の日付が基準日より後なら、来月の期限の日付を表示しています。

IF(D19<31,IF(DAY(TODAY())>D19,DATE(YEAR(TODAY()),
MONTH(EDATE(TODAY(),1)),D19),
DATE(YEAR(TODAY()),MONTH(TODAY()),D19))

最初の「D19<31」で、日付の数値かどうかを判定しています。 次のIF文の「DAY(TODAY())>D19」
ここで、本日の日付が今月の基準日(D19)より後かどうかの判定をしています。

本日の日付が今月の基準日(D19)を過ぎていたら、
「DATE(YEAR(EDATE(TODAY(),1)),MONTH(EDATE(TODAY(),1)),D19)」
DATE関数で、来月の年、来月の月、基準日を指定しています。

本日の日付が今月の基準日(D19)より前だったら、
「DATE(YEAR(TODAY()),MONTH(TODAY()),D19))」
DATE関数で、本日の年、本日の月、基準日を指定しています。

月末のタスク

月末のタスクは、基準日に”末”と記入することで判定できるようにしています。
本日の日付から月末の日付を期限として表示させているだけです。

IF(D19="末",EOMONTH(TODAY(),0)

最初の「D19="末"」でD19に末が入力されているかの判定をしています。

後は、EOMONTH関数で月末を表示させているだけです。
「EOMONTH(TODAY(),0」

組み合わせてIFS関数+ARRAYFORMULA関数を使用

後は、組み合わせていくだけです。

=IFS(D19=TODAY(),TODAY()+1,
D19<31,IF(DAY(TODAY())>D19,DATE(YEAR(EDATE(TODAY(),1)),
MONTH(EDATE(TODAY(),1)),D19),DATE(YEAR(TODAY()),MONTH(TODAY()),D19)),
D19="末",EOMONTH(TODAY(),0))

ARRAYFORMULA関数を使用する時は範囲を指定するだけ

=ARRAYFORMULA(IFS(D19:D21=TODAY(),TODAY()+1,D19:D21<31,IF(DAY(TODAY())>D19:D21,DATE(YEAR(EDATE(TODAY(),1)),MONTH(EDATE(TODAY(),1)),D19:D21),DATE(YEAR(TODAY()),MONTH(TODAY()),D19:D21)),D19:D21="末",EOMONTH(TODAY(),0)))

実際の関数や動きはサンプルデータを使用してみてください。
【Copori】日付を関数で使う

チェックボックスと連動したり、GASを使って自動で日付を表示させる場合は、
こちらの記事を参考にどうぞ!
【GAS】スプレッドシートで日付を自動で入力!日付更新・曜日自動サンプル【Google Apps Script】

ありがとうございました!

スポンサーリンク

コメント

タイトルとURLをコピーしました