Excel日期筛选条件设置与公式用法详解
时间:2026-07-11 | 作者:318050 | 阅读:0用Excel按日期筛选数据,最不容易出错的思路其实很简单:
- 先确认日期列都是合规的日期值
- 再把筛选条件单独放在单元格里
- 最后调用
FILTER函数引用这些条件
这次操作演示用的是Microsoft 365版本的Excel。FILTER 属于动态数组函数。如果你用的是WPS或者更早版本的Excel,先确认下软件支不支持这个函数再动手。
写这类公式不用追求多复杂。核心就是让Excel把待筛选的日期列、你填的条件日期都识别成可对比的日期数值。接下来我们拿一份带人员、日期、数量的样例数据表一步步讲。
第一步:确认日期列可以参与比较
先核对你数据里的日期列——所有日期都要放在同一列。单元格显示成 2024/01/02 这种标准日期格式,不能是前面带英文引号、前后藏了多余空格的文本内容。
样例里的B列就是后续公式要判断的日期列,公式会逐行校验这一列的内容是否符合筛选要求。
如果你的日期是别处复制粘贴过来的,先选中整列日期,去顶部「开始」选项卡的数字格式区看下,确认格式选的是日期。
要是筛选出来结果是空的,也可以临时套个 =ISNUMBER(B3) 检查单元格,返回 TRUE 才说明这个单元格里的内容是可直接参与大小对比的合法日期。
第二步:把筛选条件放进单元格
别把筛选条件直接硬写死在公式里——把起止日期、要筛的月份、星期这类条件都单独放到空白单元格里。之后要改筛选规则,直接改对应单元格的内容就行,不用每次都翻出来改公式。
图里右侧标绿的单元格就是预留的条件区,公式会直接读取这里填的数值。

要筛某个时间段的话,E2 填起始日期,F2 填结束日期就行。比如分别填 2024/02/01 和 2024/02/28。
要是想按月份筛,直接在条件单元格里填对应的月份数字,公式后续会调用 MONTH 函数从日期列里提取月份做匹配。
第三步:用 FILTER 写日期判断
日期区间最常用的写法,就是让日期列同时满足「大于等于开始日期」和「小于等于结束日期」两个要求。
假设原始数据在 A3:C24,日期列在 B3:B24,开始日期在 E2,结束日期在 F2,公式可以直接这么写:
=FILTER(A3:C24,(B3:B24>=E2)*(B3:B24<=F2),"没有符合条件的数据")
图里的样例公式用 MONTH 和 WEEKDAY 做了两个筛选条件,逻辑是完全一样的:括号里的每一项判断都会生成一组TRUE/FALSE结果,两个条件中间用乘号连接,代表必须两项同时满足才会保留对应行的数据。

这里的乘号你可以直接理解成「并且」的逻辑。
- 要做「开始日期到结束日期之间」的筛选,就写两个大小对比条件。
- 要做「2月并且是星期一」的筛选,就写
(MONTH(B3:B24)=G2)*(WEEKDAY(B3:B24,2)=G3)。 - 要加更多条件也没问题,只要每组判断的行数和原始数据的行数一致,直接往后相乘就行。
第四步:按月份、星期或组合条件扩展
日期筛选不一定只按起止日期来。下面样例的两个结果区,分别演示了按月份筛选、按星期筛选的写法。
- 按月份筛:
=FILTER(A3:C24,MONTH(B3:B24)=G2,"没有符合条件的数据") - 按星期筛:
=FILTER(A3:C24,WEEKDAY(B3:B24,2)=G3,"没有符合条件的数据")

WEEKDAY(B3:B24,2) 里的第二个参数填 2,代表星期一返回1,星期二返回2,一直到星期日返回7。按这个规则设置的话,条件单元格填 1 就会筛出所有周一的数据,填 6 就会筛出所有周六的数据。
FILTER 函数语法拆解
FILTER 的完整语法是:
=FILTER(array, include, [if_empty])
各参数说明:
- array:要返回的所有数据区域。在日期筛选里写法:
A3:C24,通常包含日期列旁边的人员、数量等关联字段。 - include:筛选条件,输出结果的行数必须和原始数据区域的行数对应。写法:
(B3:B24>=E2)*(B3:B24<=F2)。 - [if_empty]:没有匹配记录时显示的内容,可省略。写法:
"没有符合条件的数据"。
常见的日期筛选逻辑分三类:
- 按区间筛:用大小比较符号。
- 按月份筛:用
MONTH函数。 - 按星期筛:用
WEEKDAY函数。
要是你条件单元格里填的是文本格式的日期,建议转成标准日期值,或者直接用 DATE(2024,2,1) 这类写法生成合法日期值。
容易出错的地方
筛选结果为空的时候,先检查日期列是不是文本格式。很多表格看起来显示的是日期,实际存的是纯文本,做对比的时候自然会失效。这种情况可以用 DATEVALUE 函数转换,也可以选中日期列,去顶部「数据」选项卡里用分列功能,把文本格式的日期批量转成真正的日期值。
出现 #CALC! 报错的时候,大概率是没有匹配到结果,而且公式没写第三个参数。把公式补全成 =FILTER(A3:C24,(B3:B24>=E2)*(B3:B24<=F2),"没有符合条件的数据"),空结果就会显示你自定义的提示内容,不会直接抛错。
出现 #SPILL! 报错的时候,说明公式要动态展开的结果区域被原有内容挡住了。把公式右下方所有被占用的单元格清空,动态数组就能正常溢出显示全部结果。
出现 #VALUE! 报错的时候,基本都是条件区域的长度和要返回的数据区域长度不匹配。比如你要返回的 array 是 A3:C24,对应的日期条件就必须用 B3:B24,不能写成整列引用 B:B,也不能写成行数不对的 B3:B20。
几个能直接套用的日期筛选公式
筛选2024年2月的全部数据:
=FILTER(A3:C24,(B3:B24>=DATE(2024,2,1))*(B3:B24
筛选最近30天的数据:
=FILTER(A3:C24,B3:B24>=TODAY()-30,"没有符合条件的数据")
筛选指定某一天的数据:
=FILTER(A3:C24,B3:B24=DATE(2024,2,20),"没有符合条件的数据")
把这些公式套到你自己的表格里的时候,先替换成你自己的原始数据区域和对应日期列,再调整条件单元格的位置。公式能正常返回结果之后,再去调整字段顺序或者加其他筛选条件,排查问题会省事很多。
来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- Excel2019中如何输入以0开头的数字01的完整详细教程
- 时间:2026-07-25
-
- Excel单元格内换行快捷键及图文操作步骤
- 时间:2026-07-25
-
- Excel多表汇总合并求和快速方法
- 时间:2026-07-25
-
- Excel多个表格合并与数据排序方法
- 时间:2026-07-25
-
- Excel筛选符合条件数据及快速填充数字步骤
- 时间:2026-07-25
-
- Excel合并单元格保留所有内容与按条件合并数据图文步骤
- 时间:2026-07-25
-
- Excel表格内容显示不全调整及固定表头图文教程
- 时间:2026-07-25
-
- Excel绝对引用与相对引用区别及输入图文步骤
- 时间:2026-07-25
精选合集
更多大家都在玩
热门话题
大家都在看
更多-
- iOS 13.5.1电池续航差是电池耗电问题吗
- 时间:2026-07-25
-
- 苹果教育优惠开启 附购买攻略
- 时间:2026-07-25
-
- 苹果iOS 14 beta 2 测试版主要更新内容:除细节变化外修复多项Bug
- 时间:2026-07-25
-
- iOS 14 beta 2 是否解决内存占用过多问题?
- 时间:2026-07-25
-
- 受欢迎的奥特曼游戏有哪些
- 时间:2026-07-25
-
- iOS 14信息应用5大更新变化
- 时间:2026-07-25
-
- iOS 14正式版上线时间公布 官方全新介绍
- 时间:2026-07-25
-
- 最新苹果iOS 14 Beta 2版本更新内容全解析与升级教程
- 时间:2026-07-25