Googleスプレッドシートで請求書の支払期限や契約更新日を管理するとき、特定の月数後の日付を求めたい場面があるでしょう。単純に30日を足すと月末調整がうまくいかないことがありますが、EDATE関数なら月単位で正確に加算できます。この記事では、EDATE関数の基本的な使い方から半年後・1年後の計算、さらに応用的なテクニックまでを解説します。EDATE関数をマスターすれば、日付管理が格段に楽になります。
【要点】EDATE関数で月単位の日付加算をシンプルに実現
- =EDATE(開始日, 月数) の構文: 開始日から指定した月数後の日付を返します。月数に正の数を指定すると未来、負の数で過去を計算します。
- 半年後や1年後の計算: 月数に6や12を指定するだけです。例えば2024年1月31日の1年後は2025年1月31日と月末が自動調整されます。
- 月末日の扱いとエラー対策: 開始日が月末の場合は自動的に月末日で調整されます。日付形式が正しくないとエラーになるため、シリアル値であることを確認してください。
ADVERTISEMENT
目次
EDATE関数の仕組みと基本構文
EDATE関数は、指定した開始日から指定した月数だけ進んだ(または戻った)日付を返す関数です。内部では日付シリアル値に対して月単位の加減算を行い、うるう年や月の日数差を自動的に考慮します。例えば1月31日の1ヶ月後は2月28日(うるう年なら29日)になります。手動で日数を計算する必要は一切ありません。
基本構文は =EDATE(開始日, 月数) です。第1引数の開始日は日付シリアル値(DATE関数や日付文字列の入力など)で指定します。第2引数の月数は整数で指定します。正の数で未来、負の数で過去を表します。月数に0を指定すると開始日と同じ日付が返ります。
EDATE関数の基本的な使い方
最もシンプルな使い方から順に説明します。セルに日付が入力されていることを前提とします。
- 結果を表示するセルを選択する
日付を表示したいセルをクリックして選択します。 - EDATE関数を入力する
=EDATE(と入力し、開始日が入力されたセル(例:A2)、続いてカンマ、次に月数(例:3)を入力します。閉じ括弧で数式を完成させます。例:=EDATE(A2, 3) - セルの書式を日付に設定する
結果がシリアル値(数値)で表示される場合は、セルの書式を「日付」に変更します。「表示形式」メニューから「数字」→「日付」を選んでください。
これで3ヶ月後の日付が計算されます。月数を6にすれば半年後、12にすれば1年後です。負の数を使えば過去の日付も簡単に求められます。
半年後・1年後の計算
半年後は月数に6、1年後は12を指定します。例えば契約開始日が2024年7月15日なら、=EDATE(A2, 6) で2025年1月15日、=EDATE(A2, 12) で2025年7月15日が返ります。月を跨ぐ計算も問題なく動作します。
複数月の一括計算
月数をセル参照で指定すれば、複数の月数パターンを一括で計算できます。例えばB列に月数を入力しておき、=EDATE(A2, B2) とすれば、B列の値に応じて異なる月数後の日付をドラッグでコピーできます。支払いスケジュールや定期更新リストを作成する際に便利です。
EDATE関数の応用テクニック
月末日を維持した加算
EDATE関数は、開始日が月末(1月31日など)の場合、その月の月末日を自動調整します。例えば2024年1月31日の1ヶ月後は2024年2月29日(うるう年)、2月29日の1ヶ月後は2024年3月29日となります。もし「月末日は月末日で揃えたい」場合は、EOMONTH関数と組み合わせると良いでしょう。=EOMONTH(EDATE(A2, 1), 0) とすることで、1ヶ月後の月末日を取得できます。
開始日を他の関数から動的に指定する
開始日をTODAY関数やDATE関数で指定することも可能です。=EDATE(TODAY(), 6) とすれば今日から半年後、=EDATE(DATE(2024,1,1), 12) で2024年1月1日の1年後が計算できます。これにより、日付を固定せずに動的な更新が可能です。
条件付き書式と組み合わせて期限をハイライト
EDATE関数で計算した期限日を、条件付き書式で強調表示すると便利です。例えば「今日の日付が期限日を過ぎている」場合にセルを赤くするには、条件付き書式で「カスタム数式」を選び =A2<=TODAY() と設定します。期限管理がひと目で分かるようになります。
ADVERTISEMENT
よくある失敗と注意点
日付がシリアル値として認識されない
開始日が文字列として入力されていると、EDATE関数はエラーになります。文字列の日付はDATEVALUE関数でシリアル値に変換するか、DATE関数を使って日付を入力してください。セルの書式が「日付」になっていても、中身が文字列の場合は注意が必要です。
月数が整数でない場合
月数に小数を指定すると、小数点以下は切り捨てられます。例えば1.5ヶ月後を指定しても1ヶ月後として計算されます。半月単位が必要なら、別途日数で調整する必要があります。
エラー値「#VALUE!」が表示される
開始日または月数が不正な値の場合に発生します。開始日がシリアル値であるか、月数が数値であるかを確認してください。空のセルを参照すると「#VALUE!」エラーになります。
EDATEでは「営業日」は考慮されない
EDATE関数は単純に月数で加算するため、土日や祝日は考慮しません。営業日を加味したい場合は、WORKDAY関数やNETWORKDAYS関数を別途組み合わせる必要があります。
EDATE関数と類似関数の比較
| 関数名 | 機能 | 使用例 |
|---|---|---|
| EDATE | 月単位で日付を加減算 | =EDATE(A2, 6) → 半年後 |
| DATE | 年・月・日を指定して日付を作成 | =DATE(2025,1,15) → 2025/1/15 |
| EOMONTH | 月数後の月末日を返す | =EOMONTH(A2, 1) → 1ヶ月後の月末 |
| WORKDAY | 指定した営業日後の日付を返す | =WORKDAY(A2, 10) → 10営業日後 |
EDATEは月単位の加算に特化しており、日数の調整が必要ない点が最大の利点です。一方、DATE関数は年・月・日を個別に指定でき、EOMONTHは月末日を固定したい場合に便利です。シチュエーションに応じて使い分けましょう。
まとめ
EDATE関数を使えば、開始日から任意の月数後の日付を簡単に計算できます。半年後や1年後といった定期的な日付管理が格段に効率化されます。さらに、TODAY関数や条件付き書式と組み合わせることで、期限管理の自動化も実現できます。ぜひ実際のスプレッドシートでEDATE関数を試し、次はEOMONTH関数やWORKDAY関数にも挑戦してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
