Excelの日付関数についてお探しですね。

広告

Excelの日付関算、もう迷わない!TODAY・DATEから自動カレンダーまで完全ガイド

Excelで日付を扱う場面って、意外と多いですよね。

請求書、勤怠管理、スケジュール表、売上集計、カレンダー作成など、仕事でも学校でも日付を扱う機会はたくさんあります。

もちろん手入力でもできるんですが、毎回日付や曜日を打ち込んでいると、入力ミスや更新忘れが起きやすくなってしまいます。

この記事では、Excelの日付関数について、TODAY関数やDATE関数の基本から、日数計算、曜日表示、カレンダーの自動作成まで、初心者の方にも分かりやすく整理して解説していきます。

Excelの日付関数の基本|TODAY・DATE・シリアル値って何?

Excelで日付関数を使いこなすには、まず「Excelは日付を数字として管理している」という仕組みを知っておくと理解が早いです。

Excelでは、日付は内部的に「シリアル値」という連続した数値で管理されています。

画面には「2026/5/12」のように表示されていても、Excelの中では特定の数値として保存されているんです。

この仕組みがあるおかげで、日付に1を足すと翌日になったり、7を足すと1週間後になったりといった計算ができるようになっています。

TODAY関数で今日の日付を自動表示

今日の日付を自動で表示したいときに使う代表的な関数が、**TODAY関数**です。

使い方はとってもシンプルで、セルに「`=TODAY()`」と入力するだけ。

TODAY関数にはカッコの中に何も入れなくてOKで、ファイルを開いた日や再計算されたタイミングで、常に最新の今日の日付が表示されます。

見積書の発行日、日報の作成日、タスク管理表の基準日など、毎日更新される日付を入れたい場面でとても便利です。

ただし、TODAY関数は自動で更新されるので、作成日を固定したい場合は、入力後に「値として貼り付け」をするなどの対応が必要です。

DATE関数で正しい日付を作る

指定した年・月・日から正しい日付を作りたいときに使うのが**DATE関数**です。

基本の形は「`=DATE(年,月,日)`」で、たとえば「`=DATE(2026,5,12)`」と入力すると、2026年5月12日の日付が作成されます。

年、月、日が別々のセルに入力されているデータを1つの日付にまとめたいときにも便利です。

A2セルに年、B2セルに月、C2セルに日がある場合は「`=DATE(A2,B2,C2)`」と入力すれば、日付データとして扱える形に変換できます。

DATE関数の面白いところは、月や日が範囲を超えた場合でも自動で調整してくれることです。

たとえば「`=DATE(2026,13,1)`」は2027年1月1日として扱われ、「`=DATE(2026,6,0)`」は2026年5月31日として扱われます。

この性質を使うと、月末日を求めたり、翌月の予定日を作ったりできます。

ただし、意図しない日付になる可能性もあるので、入力元の数値が正しいか確認する習慣も大切です。

日付から年・月・日・曜日を取り出す方法

日付データから「年だけ」「月だけ」「日だけ」を取り出したいときは、**YEAR関数**、**MONTH関数**、**DAY関数**を使います。

たとえば、A2セルに「2026/5/12」が入力されている場合:
– 「`=YEAR(A2)`」で **2026** が取得できます
– 「`=MONTH(A2)`」で **5** が取得できます
– 「`=DAY(A2)`」で **12** が取得できます

これらの関数は、売上データを年別・月別に集計したいときや、入社日から入社年だけを抜き出したいときに役立ちます。

ピボットテーブルやSUMIFS関数と組み合わせると、日付別のデータ分析もやりやすくなります。

TEXT関数で曜日を表示する

曜日を表示したい場合は、**TEXT関数**を使う方法が分かりやすくて実用的です。

A2セルの日付から曜日を表示する場合:
– 「`=TEXT(A2,”aaa”)`」→「月」「火」のような短い曜日
– 「`=TEXT(A2,”aaaa”)`」→「月曜日」「火曜日」のような表示

英語表記にしたい場合は、「`ddd`」で「Mon」、「`dddd`」で「Monday」のような形式になります。

スケジュール表や作業日報では、日付の横に曜日を自動表示しておくと確認しやすくなりますね。

WEEKDAY関数で曜日を数字で判定

曜日を文字ではなく数字で判定したい場合は、**WEEKDAY関数**を使います。

基本の形は「`=WEEKDAY(日付,種類)`」で、種類を省略または1にすると日曜日が1、月曜日が2、土曜日が7として返されます。

種類に2を指定すると、月曜日が1、火曜日が2、日曜日が7になります。

たとえば土日を判定したい場合は、月曜日始まりの「`=WEEKDAY(A2,2)`」を使うと、土曜日が6、日曜日が7になるので条件式を作りやすくなります。

表示形式とTEXT関数の使い分け

表示形式の違いも押さえておくと、日付関数の使い勝手がぐっと良くなります。

日付そのものを変えずに見た目だけを変更したい場合は、セルの書式設定で「`yyyy/mm/dd`」「`yyyy年m月d日`」「`aaa`」「`aaaa`」などを指定します。

一方、TEXT関数は日付を文字列に変換して表示する関数です。

見た目を整えるだけならセルの書式設定、別の文字列と結合したい場合や曜日名として扱いたい場合はTEXT関数、というように使い分けると失敗が少なくなります。

日付計算に便利な関数|日数・月数・年数・期限管理

足し算・引き算で日付計算

Excelの日付計算では、シンプルな足し算・引き算だけでも多くの処理ができます。

A2セルに開始日がある場合:
– 「`=A2+7`」→7日後
– 「`=A2-1`」→前日
– 「`=TODAY()+30`」→今日から30日後

Excelでは1日が数値の1として扱われるので、日単位の計算はとても直感的です。

納期管理や提出期限の確認では、この考え方を知っているだけでも作業がぐっと楽になります。

EDATE関数で月単位の計算

月単位で日付を進めたい場合は、**EDATE関数**が便利です。

基本の形は「`=EDATE(開始日,月数)`」で:
– 「`=EDATE(A2,3)`」→A2セルの日付から3か月後
– 「`=EDATE(A2,-2)`」→A2セルの日付から2か月前

契約更新日、請求予定日、定期点検日など、毎月または数か月単位で発生する予定を管理する際に役立ちます。

日数を単純に90日足す方法では月の日数差に対応しにくいので、月単位の管理ではEDATE関数を使うのが安全です。

EOMONTH関数で月末日を求める

月末日を求めたい場合は、**EOMONTH関数**を使います。

基本の形は「`=EOMONTH(開始日,月数)`」で:
– 「`=EOMONTH(A2,0)`」→A2セルと同じ月の月末
– 「`=EOMONTH(A2,1)`」→翌月末

請求書の締め日、月次レポートの対象期間、在庫棚卸日など、月末基準で処理する業務では特に便利です。

DATE関数でも「`=DATE(年,月+1,0)`」のように月末を求められますが、EOMONTH関数のほうが目的が明確で読みやすい数式になります。

DAYS関数・DATEDIF関数で期間を計算

2つの日付の差を求める場合は、**DAYS関数**や**DATEDIF関数**を使います。

**DAYS関数**は「`=DAYS(終了日,開始日)`」で、開始日から終了日までの日数を返します。

**DATEDIF関数**は「`=DATEDIF(開始日,終了日,単位)`」で:
– 単位に「`”Y”`」→年数
– 単位に「`”M”`」→月数
– 単位に「`”D”`」→日数

たとえば入社日から今日までの勤続年数を求めるなら「`=DATEDIF(A2,TODAY(),”Y”)`」のように使います。

DATEDIF関数は関数一覧に表示されない場合がありますが、直接入力すれば利用できます。

期限管理の自動化

期限管理では、TODAY関数とIF関数を組み合わせると実務的な判定ができます。

たとえばA2セルに期限日がある場合、「`=IF(A2Excelでカレンダーを自動作成する方法

基本的なカレンダーの作り方

Excelの日付関数を組み合わせると、月を入力するだけで日付と曜日が自動で変わるカレンダーを作成できます。

まず、年をB1セル、月をB2セルに入力する前提で、A5セルに「`=DATE($B$1,$B$2,1)`」と入力します。

これで指定した年と月の1日が表示されます。

次にA6セルへ「`=A5+1`」と入力し、必要な行までコピーすれば、2日、3日と日付が自動で連続します。

曜日は隣のB5セルに「`=TEXT(A5,”aaa”)`」と入力して下方向にコピーすると、自動で表示できます。

月末を超えた日付を非表示にする

ただし、31日分をそのままコピーすると、2月や30日までの月では翌月の日付まで表示されてしまいます。

これを防ぐには、IF関数とMONTH関数を組み合わせます。

A6セル以降に「`=IF(MONTH(A5+1)=$B$2,A5+1,””)`」と入力すれば、指定した月を超えた日付は空白になります。

このようにしておくと、B1セルの年やB2セルの月を変更するだけで、その月に応じた日付が自動的に切り替わるカレンダーになります。

土日を色分けする

土日や定休日を見やすくしたい場合は、条件付き書式を使うと便利です。

日付が入っている範囲を選択し、数式を使った条件付き書式で:
– 「`=WEEKDAY($A5,2)=6`」→土曜日を判定
– 「`=WEEKDAY($A5,2)=7`」→日曜日を判定

土曜日を青、日曜日を赤にするなど、書式を分けて設定すれば、見やすいカレンダーになります。

店舗の定休日や会社の休業日を表示したい場合は、IF関数で「定休日」と表示する列を追加するのも効果的です。

実務で使えるカレンダーにするコツ

自動カレンダーを実務で使う場合は、見た目だけでなく「後から集計しやすい形」にしておくことも大切です。

たとえば、日付は文字列ではなく日付データとして入力し、曜日はTEXT関数や表示形式で補うようにします。

日付を「5月12日」のような文字列で手入力してしまうと、並べ替えや集計、期限判定がうまくいかないことがあります。

日付データとして管理しておけば、SUMIFS関数で月別売上を集計したり、フィルターで特定期間だけ抽出したりすることが簡単になります。

よくあるトラブルと対処法

日付が数値で表示される

日付関数でよくあるトラブルとして、日付が「45200」のような数値で表示されるケースがあります。

これは日付のシリアル値がそのまま表示されている状態なので、セルの表示形式を「日付」に変更すれば解決できます。

日付が文字列として保存されている

外部システムから取り込んだデータでは、日付に見えても文字列として保存されている場合があります。

この場合はDATEVALUE関数やDATE関数、区切り位置機能などを使って、Excelが認識できる日付データに変換する必要があります。

まとめ|日付関数は組み合わせて使うのがポイント

Excelの日付関数は、単体で覚えるよりも、業務の目的に合わせて組み合わせて使うことで真価を発揮します。

– 今日の日付を出すなら→**TODAY関数**
– 正しい日付を作るなら→**DATE関数**
– 曜日を表示するなら→**TEXT関数**や**WEEKDAY関数**
– 期限や勤続年数を計算するなら→**DAYS関数**や**DATEDIF関数**

さらに、条件付き書式やIF関数を組み合わせれば、カレンダーやタスク管理表を自動化できます。

まずは日付入力のミスを減らすところから始めて、少しずつ自動化の範囲を広げていくと、Excel作業の効率はぐっと上がります。

ぜひこの記事を参考に、日付関数を使いこなしてみてください!

広告