Excel で今日より前または後のすべての日付を含むセルをフィルターするにはどうすればよいですか?
本記事では、Excel ワークシートで「今日より前」または「今日より後」のすべての日付セルをフィルターするためのステップバイステップの方法をご紹介します。ログ管理、スケジュール調整、プロジェクトのタイムラインや期限日の追跡など、タイムリーなデータの管理・分析はビジネスシーンで頻繁に求められる作業です。日付に基づく効率的なフィルタリングにより、その時点で重要なレコードに集中しやすくなり、業務フローと意思決定の精度がさらに高まります。
➤ フィルター機能で今日より前または後のすべての日付セルをフィルターする
➤ VBA コードで今日より前または後のすべての日付セルをフィルターする
➤ Excel の関数ヘルパー列で今日より前または後のすべての日付セルをフィルターする
フィルター機能で今日より前または後のすべての日付セルをフィルターする
Excel の組み込みフィルター機能を使えば、今日より前または後の日付を簡単に識別・表示できます。この方法は視覚的で、数式や VBA コードを一切使わずに現在のデータセットを素早く絞り込めるため、コード不要で手軽にフィルターをかけたいユーザーに最適です。
1.日付を含む列を選択し、データタブに移動して、フィルターリボンをクリックします。すると、下図のように各列のヘッダー横にフィルターの矢印が表示されます。

2.日付列のヘッダーにあるドロップダウン矢印をクリックし、「日付フィルター」にカーソルを合わせて、目的に応じて「前」または「後」を選択します。たとえば、今日より前の日付を検索するには「前」を選択してください。

3.「オートフィルターの設定」ダイアログボックスで、日付ピッカー
アイコンをクリックしてカレンダーを開きます。「今日」ボタンをクリックすれば、すぐに今日の日付が設定されます。

4.「OK」をクリックすると、Excel は指定した条件(今日より前または後)に該当する日付を持つ行のみを表示します(下図参照)。

この方法は中規模のテーブルに効率的で、高度なスキルが不要なため、非常に使いやすいです。ただし、データが更新されたり条件が変更されたりした場合は、手動で再度この手順を繰り返す必要があります。
⚠️ 注意:日付列にテキストが含まれている場合や、Excel の日付形式でない場合は、日付フィルターの下にフィルターオプションが表示されないことがあります。
VBA コードで今日より前または後のすべての日付セルをフィルターする
データを繰り返しフィルターする必要がある場合や、大規模なデータセットの処理を自動化したい場合は、VBA コードを使うのが非常に実用的です。特にアナリストや、レポート作成の自動化、定期的に「今日の日付」でフィルターをかけるワークフローに最適です。VBA を使えば、ワンクリックでフィルターを適用でき、手動での繰り返し作業を省けます。ただし、VBA を使用するにはマクロをサポートする形式().xlsm)でブックを保存する必要があり、マクロのセキュリティ設定によっては一部のユーザーが制限を受ける場合があります。
1.ALT + F11キーを押して、Microsoft Visual Basic for Applicationsウィンドウを開きます。
2.エディターで、挿入 > 標準モジュールをクリックし、次のいずれかのコードブロックをモジュールウィンドウに貼り付けてください。
VBA コード:今日より前のすべての日付セルをフィルターする:
Sub FilterDateBeforeToday()
Dim xLastRow As Long
Dim xRg As Range
On Error Resume Next
Set xRg = Application.InputBox("Please select filtered column:", "KuTools for Excel", Selection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
ActiveSheet.AutoFilterMode = False
If xRg.Count = 1 Then Set xRg = xRg.CurrentRegion
xRg.AutoFilter 1, "<" & CDbl(Date)
Application.ScreenUpdating = True
End Sub
VBA コード:今日より後のすべての日付セルをフィルターする:
Sub FilterDateAfterToday()
Dim xLastRow As Long
Dim xRg As Range
On Error Resume Next
Set xRg = Application.InputBox("Please select filtered column:", "KuTools for Excel", Selection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
ActiveSheet.AutoFilterMode = False
If xRg.Count = 1 Then Set xRg = xRg.CurrentRegion
xRg.AutoFilter 1, ">" & CDbl(Date)
Application.ScreenUpdating = True
End Sub
3.上記のコードのいずれかをコピー&ペーストした後、F5キーを押して実行してください。プロンプトボックスが表示されるので、日付を含む範囲または列を選択できます。コードエラーを回避するには、関連データの範囲のみを選択し、日付が正しいExcel の日付形式になっていることを確認してください。

4.「OK」をクリックしてフィルターを実行すると、選択したコードに応じて、今日より前または後の日付を持つ行のみが自動的に表示され、他の行は非表示になります。
⚠️ 注意:VBA ベースのフィルタリングは、ユーザー操作を最小限に抑えながら、シンプルな要件から高度な要件まで幅広く対応可能です。ただし、VBA を適用する前に必ずデータを保存し、重要な行を誤ってフィルターで除外しないよう、対象範囲を慎重に確認してください。エラーが発生した場合は、すべての日付値が有効な日付形式であることをご確認ください。日付以外のデータが含まれていると、マクロが正常に動作しなくなる可能性があります。さらに利便性を高めるには、マクロをボタンに割り当てて、ワンクリックでフィルタリングできるようにすることをおすすめします。
Excel の関数ヘルパー列で今日より前または後のすべての日付セルをフィルターする
もう一つの柔軟な解決策として、今日より前または後の日付をフラグ付けするExcel 数式を含むヘルパー列を追加する方法があります。このアプローチは、フィルター条件の定義と調整に高い柔軟性をもたらし、ピボットテーブルの利用、複雑なフィルタリング、またはフラグ付きデータの詳細な分析に特に適しています。インプレースフィルタリングとは異なり、ヘルパー列方式では行を視覚的にマークした上でExcel のフィルター機能を活用できるため、よりきめ細やかな制御が可能です。実装も簡単で、締切日の追跡、期限超過タスクの管理、今後のイベントの監視などに最適です。
1.日付が列 Aにあり、セルA2から始まると仮定します。その隣(例:列)B)に新しいヘルパー列を挿入し、セルB2に、今日より前の日付にフラグを付ける次の数式を入力します。
=A2<TODAY() この数式は、今日より前の日付に対してTRUEを返し、それ以外の場合はFALSEを返します。
将来の日付(つまり、今日より後の日付)をフラグ付けしたい場合は、セルB2に次の数式を使用します。
=A2>TODAY() 2.ヘルパー列の数式をデータセットのすべての行に適用するには、セルを下方向にドラッグします。データが2 行目から始まる場合は、B2 を選択し、カーソルをセルの右下隅に移動させて小さな黒いプラス記号(フィルハンドル)が表示されたら、ダブルクリックするだけで全行に自動的に入力されます。
3.これでヘルパー列に各行ごとにTRUEまたはFALSEが表示されるようになったので、新しいヘルパー列のヘッダーを選択し、データタブからフィルターを有効にしてください(まだ有効でない場合)。ドロップダウン矢印をクリックしてTRUEで絞り込むと、使用した数式に応じて今日より前または後の日付に一致する行のみが表示されます。
💡 ヒント:混乱を避けるには、フィルターのロジックに合わせてヘルパー列に「今日より前」や「今日より後」などのラベルを付けると効果的です。特定の条件(例:移動ウィンドウ内の日付のみ)でフィルターしたい場合は、必要に応じて数式を調整してください。また、日付列には常に有効なExcel 日付のみが含まれていることを確認しましょう。空白セルや日付以外のデータが含まれていると、TRUE/FALSEの結果に影響を与える可能性があります。
ℹ️ 追加情報:
• この数式ベースの手法は、元の情報を一切失うことなく、データを表示・並べ替え・さらに分析するのに特に役立ちます。また、TRUE/FALSE 値に基づく柔軟な条件付き書式や集計計算もサポートしますが、そのためには追加の列が必要です。この手法が持つ透明性と再利用性は、わずかな手間を上回るメリットをもたらすことが多くあります。
• テーブルが頻繁に更新される場合は、新しい行が追加された際に数式を再適用または拡張してください。並べ替えやフィルターが期待どおりに動作しない場合は、日付列に空白セルや不整合なエントリがないか再度確認し、必要に応じてヘルパー列の数式を再計算してください()数式 > 今すぐ計算:計算モードが手動に設定されている場合)。
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得