【Googleスプレッドシート】データ検証で日付範囲を制限!過去・未来の入力禁止

【Googleスプレッドシート】データ検証で日付範囲を制限!過去・未来の入力禁止
🛡️ 超解決

Googleスプレッドシートで日付を入力する際、過去の日付や未来の日付を誤って入力してしまうことはありませんか。データ検証を使えば、入力できる日付を特定の範囲に制限できます。この記事では、過去の日付だけを禁止する方法、未来の日付だけを禁止する方法、特定の期間内のみ許可する方法を詳しく解説します。

【要点】データ検証のカスタム数式で日付範囲を柔軟に制御

  • データ検証の「カスタム数式」: 条件に合わない日付の入力をブロックできます。例えば過去日を禁止する場合はセル値が今日以降であることを指定します。
  • =TODAY() 関数: 現在の日付を返す関数で、過去日制限には「セル値 >= TODAY()」、未来日制限には「セル値 <= TODAY()」と使います。
  • 日付範囲の指定: 特定の期間(例:今日から30日後まで)を許可するには、AND関数とTODAY関数を組み合わせたカスタム数式を使います。

ADVERTISEMENT

データ検証とは何か、なぜ日付制限が必要か

データ検証は、セルに入力できる値を制限するGoogleスプレッドシートの機能です。日付の入力制限を設定することで、誤った日付の入力や、スケジュール管理のミスを防げます。例えば、プロジェクトの開始日には過去の日付を入力させない、締め切り日には未来の日付だけを許可する、といった使い方ができます。この機能を使えば、手動で目視確認する手間を省き、データの正確性を高められます。

データ検証は数値や文字列にも使えますが、日付制限に特化した場合は、ルールを「日付」から選ぶ方法と、「カスタム数式」で柔軟に条件を指定する方法の2種類があります。本記事では、より自由度の高いカスタム数式を使った方法を中心に説明します。

データ検証で日付範囲を制限する手順

ここでは、過去の日付を禁止する方法と未来の日付を禁止する方法、そして特定の範囲内のみ許可する方法を順に説明します。いずれも基本的な手順は同じで、カスタム数式の条件が異なります。

過去の日付を禁止して未来日のみ許可する

  1. 対象セルを選択する
    日付を入力したいセル範囲(例:A2:A100)を選択します。
  2. 「データ」メニューから「データの検証」を開く
    メニューバーの「データ」をクリックし、「データの検証」を選択します。
  3. ルールを設定する
    表示されたダイアログで、「セルの範囲」が選択した範囲になっていることを確認します。「条件」で「カスタム数式」を選び、数式欄に次のように入力します。
    =A2>=TODAY()
    ただし、最初のセルがA2でなければ、そのセル番地に置き換えます。この数式は「セルの値が今日の日付以上であること」を条件にします。つまり、過去の日付(今日より前)を入力しようとすると拒否されます。
  4. 拒否時の動作を選択する
    「無効なデータが入力されたとき」で「入力を拒否する」を選びます。「ヘルプテキストを表示する」にチェックを入れ、メッセージ例として「過去の日付は入力できません。本日以降の日付を入力してください。」と入力しておくと親切です。
  5. 保存して動作を確認する
    「保存」をクリックして設定を完了します。実際に過去の日付を入力してみて、拒否されることを確認してください。

未来の日付を禁止して過去日のみ許可する

逆に、未来の日付を禁止して過去の日付のみを許可する場合は、カスタム数式の不等号を逆向きにします。

  1. 同様にセルを選択し、データの検証を開く
    上記手順1〜2と同じ操作です。
  2. カスタム数式を設定する
    数式欄に =A2<=TODAY() と入力します。これでセルの値が今日の日付以下であること、すなわち今日以前の日付のみ許可されます。
  3. 拒否設定とヘルプテキスト
    「入力を拒否する」を選択し、ヘルプテキストに「未来の日付は入力できません。本日以前の日付を入力してください。」と設定します。
  4. 保存して確認
    未来の日付を入力して拒否されることをテストします。

特定の日付範囲のみ許可する

今日から30日後までの日付だけを許可したい場合など、開始日と終了日を指定するにはAND関数を使います。

  1. データの検証ダイアログを開く
    対象セルを選択し、「データ」→「データの検証」を開きます。
  2. カスタム数式にAND関数を設定する
    数式欄に =AND(A2>=TODAY(), A2<=TODAY()+30) と入力します。これで、今日から30日後までの日付のみ許可されます。開始日を過去にしたい場合は、TODAY()の代わりに特定の日付を指定することも可能です(例:=AND(A2>=DATE(2025,1,1), A2<=DATE(2025,12,31)))。
  3. 拒否設定と保存
    同様に「入力を拒否する」を選び、適切なヘルプテキストを入力して保存します。

データ検証で日付を制限するときの注意点とよくあるトラブル

データ検証は便利ですが、いくつかの落とし穴があります。以下に主な注意点を挙げます。

カスタム数式で参照するセル番地を間違える

カスタム数式は選択範囲の先頭セルを基準に書きます。例えば範囲がB2:B100なら、数式は =B2>=TODAY() とします。範囲が異なる場合も同様に調整してください。間違えると検証が正しく機能しません。

TODAY()関数はリアルタイムで更新される

TODAY()関数はスプレッドシートを開くたびにその日の日付に更新されます。そのため、過去日禁止のルールは今日の日付を基準に再計算されます。固定の日付を基準にしたい場合は、TODAY()の代わりにDATE関数を使います。例えば =A2>=DATE(2025,1,1) とすれば常に2025年1月1日以降が許可されます。

データ検証は手動コピーでは引き継がれない

データ検証のルールは、セルをコピー&ペーストした場合、値だけを貼り付けると保持されません。ルールごとコピーするには、「形式を選択して貼り付け」で「条件付き書式とデータ検証」を選ぶ必要があります。また、行や列を挿入した場合、挿入されたセルにはルールが適用されないため、範囲を再設定する必要があります。

ヘルプテキストは設定しておくと親切

ヘルプテキストを設定しておけば、ユーザーが違反した日付を入力しようとしたときに、理由を示すメッセージが表示されます。チームで共有するシートでは必須と言えるでしょう。

ADVERTISEMENT

過去日禁止と未来日禁止の違いを比較

制限の種類 カスタム数式 許可される日付 使用例
過去日禁止 =A2>=TODAY() 今日以降の日付 予約日、開始日
未来日禁止 =A2<=TODAY() 今日以前の日付 完了日、発生日
範囲指定 =AND(A2>=開始日, A2<=終了日) 開始日〜終了日 特定の月、四半期

この表を参考に、目的に合った制限を選んでください。カスタム数式はAND以外にもORやNOT関数を使うことで、より複雑な条件も設定できます。

まとめ

データ検証のカスタム数式を使えば、過去の日付や未来の日付の入力を簡単に禁止できます。TODAY関数と不等号を組み合わせるだけで、今日を基準にした制限が設定可能です。また、AND関数を使えば特定の期間だけを許可することもできます。この機能を活用して、日付入力ミスを防ぎ、スプレッドシートの信頼性を高めてください。次に試す応用としては、日付の入力と同時に条件付き書式で色を変えることも検討してみるとよいでしょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。