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(A2 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セルの月を変更するだけで、その月に応じた日付が自動的に切り替わるカレンダーになります。 土日や定休日を見やすくしたい場合は、条件付き書式を使うと便利です。 日付が入っている範囲を選択し、数式を使った条件付き書式で: 土曜日を青、日曜日を赤にするなど、書式を分けて設定すれば、見やすいカレンダーになります。 店舗の定休日や会社の休業日を表示したい場合は、IF関数で「定休日」と表示する列を追加するのも効果的です。 自動カレンダーを実務で使う場合は、見た目だけでなく「後から集計しやすい形」にしておくことも大切です。 たとえば、日付は文字列ではなく日付データとして入力し、曜日はTEXT関数や表示形式で補うようにします。 日付を「5月12日」のような文字列で手入力してしまうと、並べ替えや集計、期限判定がうまくいかないことがあります。 日付データとして管理しておけば、SUMIFS関数で月別売上を集計したり、フィルターで特定期間だけ抽出したりすることが簡単になります。 日付関数でよくあるトラブルとして、日付が「45200」のような数値で表示されるケースがあります。 これは日付のシリアル値がそのまま表示されている状態なので、セルの表示形式を「日付」に変更すれば解決できます。 外部システムから取り込んだデータでは、日付に見えても文字列として保存されている場合があります。 この場合はDATEVALUE関数やDATE関数、区切り位置機能などを使って、Excelが認識できる日付データに変換する必要があります。 Excelの日付関数は、単体で覚えるよりも、業務の目的に合わせて組み合わせて使うことで真価を発揮します。 – 今日の日付を出すなら→**TODAY関数** さらに、条件付き書式やIF関数を組み合わせれば、カレンダーやタスク管理表を自動化できます。 まずは日付入力のミスを減らすところから始めて、少しずつ自動化の範囲を広げていくと、Excel作業の効率はぐっと上がります。 ぜひこの記事を参考に、日付関数を使いこなしてみてください! 広告基本的なカレンダーの作り方
月末を超えた日付を非表示にする
土日を色分けする
– 「`=WEEKDAY($A5,2)=6`」→土曜日を判定
– 「`=WEEKDAY($A5,2)=7`」→日曜日を判定実務で使えるカレンダーにするコツ
よくあるトラブルと対処法
日付が数値で表示される
日付が文字列として保存されている
まとめ|日付関数は組み合わせて使うのがポイント
– 正しい日付を作るなら→**DATE関数**
– 曜日を表示するなら→**TEXT関数**や**WEEKDAY関数**
– 期限や勤続年数を計算するなら→**DAYS関数**や**DATEDIF関数**
