跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在Excel中筛选出今天之前或之后的所有日期单元格?

Author Xiaoyang Last modified

在本文中,我们将逐步探讨在Excel工作表中筛选出今天之前或之后的所有日期单元格的方法。管理与分析时效性数据是一项常见的需求,尤其是在处理日志、时间表、项目时间线或跟踪截止日期时。通过按日期高效筛选,可以更容易专注于特定时间点相关的记录,从而提高工作流程和决策的准确性。


使用筛选功能筛选今天之前或之后的所有日期单元格

Excel内置的筛选功能提供了一种直接的方式来识别和显示今天之前或之后的日期。这种方法直观且不需要任何公式或VBA代码,非常适合那些希望快速筛选当前数据集而无需使用公式或VBA的用户。

1. 选择包含日期的列,然后转到“数据”选项卡并点击功能区上的“筛选”。你应该会看到每个列标题旁边出现筛选箭头,如下所示:

a screenshot of enabling the Filter function

2. 点击日期列标题中的下拉箭头。将鼠标悬停在“日期筛选”上,然后根据需要选择“之前”“之后”。例如,选择“之前”以找到早于今天的日期。

a screenshot of specifying the filter condition

3自定义自动筛选 对话框中,点击 日期提取 a screenshot of a calendar icon 图标以打开日历。点击 今天 按钮以快速设置今天的日期。

a screenshot of picking today's date in the calendar

4. 点击“确定”。Excel将筛选您的数据,仅显示符合指定条件(今天之前或之后)的行,如下所示:

a screenshot showing the original data and the filtered data

此方法对于中等大小的表格非常高效且易于操作,因为不需要高级技能。但是,如果数据更新或条件发生变化,你需要手动重复该过程。

⚠️ 注意:如果你的日期列包含文本或未格式化为正确的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日期格式以避免代码错误。

a screenshot of selecting the date range after running the VBA code

4. 点击“确定”以执行筛选。根据你的代码选择,日期在今天之前或之后的行将自动显示,其他所有行都将被隐藏。

⚠️ 注意:基于VBA的筛选减少了用户交互,适合简单和高级需求。然而,在应用VBA之前始终要保存你的数据,并仔细检查所选区域,以避免意外筛选掉重要行。如果遇到错误,请确保所有日期值都是有效日期——非日期条目可能导致宏故障。为了持续方便,考虑将宏分配给按钮以便一键筛选。


使用Excel公式辅助列筛选今天之前或之后的所有日期单元格

另一个多功能解决方案是添加一个带有Excel公式的辅助列,标记出今天之前或之后的日期。此方法在定义和调整筛选条件方面提供了极大的灵活性,尤其适用于动态表格、复杂筛选或当你希望对标记的数据进行进一步分析时。与就地筛选不同,辅助列方法可以让你直观地标记行,然后应用Excel的筛选工具以实现更自定义的控制。这种技术易于实施,非常适合跟踪截止日期、逾期任务或监控即将到来的事件。

1. 在日期列旁边插入一个新列。举例来说,假设你的日期在A列,从A2单元格开始。在新的辅助列(假设为B列)中,在B2单元格中输入以下公式以标记今天之前的日期:

=A2<TODAY()

该公式将返回TRUE表示今天之前的日期,否则返回FALSE

如果你想标记今天之后的日期(即未来的日期),请在B2单元格中使用以下版本:

=A2>TODAY()

2. 将公式向下拖动至辅助列以评估数据集中的所有行。如果数据从第2行开始,只需选择B2单元格,将光标移动到右下角直到它变成一个小黑加号,然后双击以自动填充所有行。

3. 现在,当辅助列针对每一行显示TRUEFALSE时,选择新辅助列的标题并从“数据”选项卡启用筛选(如果尚未启用)。点击下拉箭头并按TRUE筛选以仅查看符合条件的行(根据使用的公式,可以是今天之前或之后)。

💡 提示:为了避免混淆,考虑根据筛选逻辑标记辅助列,例如“Before_Today”或“After_Today”。如果需要按特定条件筛选(例如,仅在一个移动窗口内的日期),请根据需要调整公式。始终检查你的日期列是否仅包含有效的Excel日期,因为空白或非日期条目可能会影响TRUE/FALSE结果。

ℹ️ 其他注意事项:

• 这种基于公式的方法特别有助于查看、排序或进一步分析数据,而不会丢失原始信息的跟踪。它还支持基于TRUE/FALSE值的灵活条件格式和汇总计算,尽管确实需要额外的一列。这种方法的透明性和可重用性往往超过了这一小不便之处。

• 如果你的表格经常更新,只需重新应用或扩展公式即可适应新增的行。如果排序或筛选未能按预期工作,请仔细检查日期列中的空白或不一致条目,并在必要时重新计算辅助公式(如果计算设置为手动,则使用“公式”>立即计算)。


最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


Office Tab为Office带来多标签界面,让您的工作更加轻松

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠