「このプロジェクトの残り日数は?」「あの社員の勤続年数は何年何ヶ月?」 こうした計算を、カレンダーを見ながら手作業で行っていませんか?
Googleスプレッドシートの「日付関数」を使えば、面倒な日数のカウントや曜日の表示、さらには「満◯歳」といった計算もすべて自動化できます。
一見難しそうに見える日付の処理ですが、実はいくつかの「決まり文句」を覚えるだけ。この記事では、今日から使える基本の関数から、プロが必ず使っているDATEDIF(デイトディフ)関数の裏技まで、初心者の方にも分かりやすく丁寧に解説します。
NOW関数
基本的な使い方
構文=NOW()
現在の日付と時刻に対応するシリアル値を返します。
ヘルプに書かれているとおりの関数で、セルに現在の日付と時刻を入力します。実際にどのように使うかは以下で詳しくご説明させて頂きます。
実際の使い方

セルG2に、以下の数式を入力します。
=NOW()
特に解説は必要ないかと思いますが、注意点としては、表示されている時刻は、シートに変更が加えられる度に更新されます。
NOW関数は、開くたび、更新するたびに時刻が変更されてしまいます。もし「入力した瞬間の時間を固定したい(タイムスタンプ)」場合は、関数ではなく Ctrl + Shift + Alt + :(Windows)というショートカットを使うのが鉄則です。
WEEKDAY関数
基本的な使い方
WEEKDAY(日付, [種類])
指定した日付に対応する曜日を数値で返します。
ヘルプに書かれているとおりの関数で、指定した日付が何曜日に当たるかを「数値」で表示します。ここで大事なのは、「曜日を数値」で表示するということです。「日曜日」や「月曜日」のように表示される訳ではありません。
- 種類が1の場合、数値は、「1が日曜日で7が土曜日になります」
- 種類が2の場合、数値は、「1が月曜日で7が日曜日になります」
上記を踏まえて以下で実際の使い方を見ていきましょう。
実際の使い方

2022年度の祝日を表にしてみました。各日付が何曜日に当たるのかを入力します。セルE2に以下の数式を入力します。
=WEEKDAY(C2)
または
=WEEKDAY(C2,1)

ENTERを押したらセルE2をE17までコピーして貼り付けます。無事に「数値」が入力されました。
しかしこれでは何曜日なのか全く分かりません。そこで以下の手順で「数値」を「曜日」に変更していきます。
応用編(CHOOSE関数)

先程の「WEEKDAY関数」を「CHOOSE関数」の入れ子にします。記入する数式は以下になります。
=CHOOSE(WEEKDAY(C2),”日曜日”,”月曜日”,”火曜日”,”水曜日”,”木曜日”,”金曜日”,”土曜日”)
CHOOSE関数の使い方については別記事でご紹介させて頂きます。
少し入力が面倒ですが、日曜日から土曜日までを「”(ダブルクオーテーション)」で囲って7日分入力しています。先ほどと同様に、ENTERを押して、E17までコピーして貼り付けます。

2022年度の祝日の曜日がすべて入力されました。
応用編(もっとスマートに)

「WEEKDAY関数」と「CHOOSE関数」を使うのは少し面倒に感じる方も多いと思います。もっとスマートに曜日を表示させたい場合は、「表示形式」で変える方法もあります。
WEEKDAY関数を使って、数字を表示させます。

数字になった範囲を選択したうえで、「表示形式」から「数字」、「カスタム数値形式」を選択します。

カスタム数値形式が表示されますので、ボックス内に「dddd」と入力します。最後に「適用」をクリックします。

先ほどの数字が「曜日」に変換されました。曜日も正しく反映されています。
WEEKNUM関数
基本的な使い方
WEEKNUM(日付, [種類])
指定した日付がその年の何週間目に当たるかを数値で返します。
ヘルプに書かれているとおりの関数で、指定した日付が何週間目に当たるかを表示します。[種類]は「1」を選択すると、日曜日から、「2」を選択すると月曜日から週が始まります。実際にどのように使うかは以下で詳しくご説明させて頂きます。
実際の使い方

先程の表の祝日が、何週間目にあたるのか調べて見たいと思います。セルF2に以下の数式を入力します。
=WEEKNUM(C2)
または、
=WEEKNUM(C2,1)
ENTERを押して、セルF2をF17まで、コピーアンドペーストします。

各祝日が、第何週目なのか表示されました。
DAYS関数
基本的な使い方
DAYS(終了日,開始日)
2 つの日付間の日数を返します。
ヘルプに書かれているとおりの関数で、2つの日付間の日数を計算します。実際にどのように使うかは以下で詳しくご説明させて頂きます。
実際の使い方

入社日と退職日から勤続日数を求める数式を、「DAYS関数」を使って求めます。セルE26に以下の数式を入力します。
=DAYS(C26,B26)
ENTERを押して、セルE26をE28まで、コピーアンドペーストします。

3人の勤続日数が無事に表示されました。「DAYS関数」では単純に「日数」を計算しましたが、勤続日数が長くなると日数だと少し分かりにくくなってしまいます。そこで、もう少し分かりやすくするために、次にご紹介する「DATEDIF関数」を使って「年数」や「月数」で表示してみましょう。
ミスの防止: DAYS関数は (終了日, 開始日) という、引き算とは逆の順番で指定します。間違いやすいので注意してください。
DATEDIF関数
基本的な使い方
DATEDIF(開始日, 終了日, 単位)
2 つの日付間の日数、月数、年数を計算します。
ヘルプに書かれているとおりの関数で、2つの日付の期間を計算します。年齢や勤続年数などの計算に大変便利な関数です。なお、「単位」は以下のアルファベットで表します。
| 単位 | 表示内容 |
|---|---|
| Y | 年 |
| M | 月 |
| D | 日 |
| YM | 1年に満たない残りの月 |
| MD | 1月に満たない残りの日 |
| YD | 1年に満たない残りの日 |
実際にどのように使うかは以下で詳しくご説明させて頂きます。
実際の使い方

セルG26からG28まで、「年」、「月」、「日」を表示させます。数式はそれぞれ以下になります。
- 年:=DATEDIF(B26,C26,”Y”)
- 月:=DATEDIF(B27,C27,”M”)
- 日:=DATEDIF(B28,C28,”D”)

上から、「20年」、「192ヶ月」、「761日」と表示されました。しかし、年と月は正確な日数を表示しているわけではありません。そこでもう少し詳しい勤務日数を表示させるために、「YM」と「MD」を使用します。

少し長い数式になりましたが、以下のように入力しています。
=DATEDIF(B26,C26,”Y”)&DATEDIF(B26,C26,”YM”)&DATEDIF(B26,C26,”MD”)
「DATEDIF関数」を「&」で繋いでいます。

先程の数式のままENTERを押すと、結果は表示されるのですが、数字が並んでいるだけでとても分かりにくいものになってしまっています。もう少し見やすくするために、「年」、「月」、「日」も一緒に表示されるように数式を変更してみましょう。

数式を以下のように変更しました。
=DATEDIF(B26,C26,”Y”)&”年”&DATEDIF(B26,C26,”YM”)&”ヶ月”&DATEDIF(B26,C26,”MD”)&”日”
ちょっと長くなりましたが、表には「20年2ヶ月30日」と表示されていますので、とても分かりやすくなったと思います。
DAYS関数とDATEDIF関数のどちらを使うべきか?

開始日と終了日からその間の日数を計算出来る2つの関数、「DAYS関数」と「DATEDIF関数」のどちらを利用すべきでしょうか?実は、どちらの関数を使うかを決める前に、もう一つの選択肢もあるのです。それが、「=AーB」という単純な引き算です。
これら3つの方法のどれを使うかは、使用する状況によるところが大きいと思いますが、2つの関数の場合は、日数が100日以内であれば、「DAYS関数」、100日を超えるようであれば、「月」や「年」を使用した方が分かりやすいと思いますので、「DATEDIF関数」を利用された方が良いでしょう。
単純に「日」を表示する場合、「DAYS関数」と「引き算」であれば、好みで使い分けるのが良いかもしれません。個人的には「引き算」で十分な気がするのですが。
よくある日付のトラブル
- 「#VALUE! エラー」が出たときは?: 日付が『文字』として認識されている可能性があります。セルの左側に数字が寄っていたら、それは文字です。正しい日付形式(2026/05/04など)で入力し直しましょう。
- TODAY関数との使い分け: 時刻まで必要なら
NOW()ですが、日付だけでいいならTODAY()を使いましょう。計算が軽くなり、シートがスッキリします。
- 期限が過ぎたら色を変える: 今回学んだ関数を『条件付き書式』と組み合わせれば、期限を過ぎたタスクのセルを自動で赤く塗ることも可能です。日付関数は、色付け機能とセットで使うのがプロのやり方です。
まとめ
お疲れ様でした!日付関数をマスターすると、スケジュール帳や名簿の管理が驚くほどスムーズになります。
- 今の時間をパッと出したいなら、NOW関数
- 「何曜日?」を調べたいなら、WEEKDAY関数
- 「あと何日?」「勤続何年?」を計算したいなら、DAYSやDATEDIF関数
特にDATEDIF関数で「◯年◯ヶ月◯日」と表示させるテクニックは、そのまま実務のレポートや名簿管理に使える最強の武器です。
スプレッドシートは「日付」を数字(シリアル値)として管理しているため、一度ルールを覚えれば自由自在に操ることができます。ぜひ、あなたの日常業務に取り入れて、スマートなデータ管理を実現してくださいね。
今回も最後までお読みいただき、ありがとうございました。



コメント