条件函数中的日期范围
使用日期区间逻辑,在指定期间内求和或计数
条件函数中的日期范围 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。
按时间段筛选
实际报告几乎总会询问某个时间范围:本季度的销售额、上月的订单数、两个日期之间的注册数。您已经学过的条件函数——SUMIFS、COUNTIFS、AVERAGEIFS——只要掌握如何表达日期范围,就能轻松处理这些需求。
关键在于,日期范围实际上是同一日期列上的两个条件:不早于起始日期,以及不晚于结束日期。
日期只是数字
电子表格将日期存储为序列号——第 1 天是 1900 年 1 月 1 日(Google 表格中为 1899 年),之后每一天加 1。因此,您可以像比较普通数字一样,使用 > 和 < 比较日期。
所以,1 月 1 日之后其实就是大于该日期对应序列号的序列号。这正是日期筛选能够生效的关键。
计算两个日期之间的总和
假设 A 列存放订单日期,C 列存放金额。要汇总 2024 年 1 月的销售额,需要将 A 列提供两次:一次表示不早于 1 月 1 日,另一次表示不晚于 1 月 31 日。
请将日期放入 DATE(year, month, day) 函数中,这样无论使用哪种区域格式,都不会产生歧义。这两个条件会形成 AND 关系,只匹配该月份的行。
=SUMIFS(C:C, A:A, ">="&DATE(2024,1,1), A:A, "<="&DATE(2024,1,31))为什么要使用 DATE() 和 & 符号
您可能会尝试直接输入 ">=1/1/2024"。这种写法通常有效,但不够可靠——电子表格可能将其读取为文本,或误解日期中日和月的顺序。
稳妥的写法是 ">="&DATE(2024,1,1)。DATE 函数会生成真实的序列号,而 & 会将运算符与它连接起来。在 Excel 和 Google 表格中,无论使用哪种区域设置,这种写法都很可靠。
=COUNTIFS(A:A, ">="&DATE(2024,1,1), A:A, "<="&DATE(2024,1,31))从单元格提取日期
对于固定报告,直接写入日期没有问题;但灵活的报告应从单元格读取起始日期和结束日期。将起始日期放入 F1,将结束日期放入 F2。
现在,时间段由工作表控制。更改 F1 或 F2 后,所有总计都会重新计算。和往常一样,请使用 & 将运算符与单元格连接——不要将单元格名称放在引号内。
=SUMIFS(C:C, A:A, ">="&F1, A:A, "<="&F2)开放式范围
有时您只需要一个边界。从某个日期起的所有内容使用单个大于或等于条件。截至某个日期的所有内容使用单个小于或等于条件。
这会统计 F1 日期当天及之后的所有订单,没有上限——适用于“上线以来的销售额”这类指标。
=COUNTIFS(A:A, ">="&F1)将日期与其他条件组合
日期条件可以自由地与文本和数字条件组合。要汇总日期范围内东部区域的销售额,只需在两个日期条件对旁边添加区域条件对。
条件的顺序不影响结果——Excel 会将所有条件作为一个大的 AND 进行计算。这里的三个条件对共用同一个平均范围或求和范围。
=SUMIFS(C:C, B:B, "East", A:A, ">="&F1, A:A, "<="&F2)按月份或年份筛选
要汇总整整一年,请将边界设置为该年的第一天和最后一天。使用 DATE 设置起始日期,并设置时间段的结束日期。
对于单个月份,请使用该月第一天作为下限,并使用下一个月的第一天配合严格的 "<" 作为上限——这是避免操心每个月有 28、30 还是 31 天的简便方法。
=SUMIFS(C:C, A:A, ">="&DATE(2024,3,1), A:A, "<"&DATE(2024,4,1))使用 TODAY 的相对时间范围
对于滚动报告,请根据 TODAY() 构建边界。要统计最近 30 天内的订单,下限是今天减去 30 天,上限是今天。
由于工作表每次重新计算时 TODAY() 都会更新,时间范围会自动向前滚动——无需手动编辑。
=COUNTIFS(A:A, ">="&(TODAY()-30), A:A, "<="&TODAY())注意时间成分
如果日期列实际存储的是日期和时间(例如时间戳),1 月 31 日晚些时候的行,其序列号会略大于 1 月 31 日整天对应的数值。使用 "<="&DATE(2024,1,31) 作为边界会将它排除。
安全的修复方法是使用次日严格小于模式:"<"&DATE(2024,2,1) 可以捕获整个 1 月内的每个时刻,包括时间戳。
=SUMIFS(C:C, A:A, ">="&DATE(2024,1,1), A:A, "<"&DATE(2024,2,1))计算时间段内的平均值
同样的日期范围模式也适用于 AVERAGEIFS。要查找某个时间范围内的平均订单金额,请将金额列作为平均范围,并在日期列上添加两个日期条件。
请记住空时间段陷阱:如果日期范围内没有订单,AVERAGEIFS 会返回 #DIV/0!。将其包在 IFERROR 中,可以让没有数据的时间段不会影响按时间筛选的仪表板整洁度。
=IFERROR(AVERAGEIFS(C:C, A:A, ">="&F1, A:A, "<="&F2), "No data")快速检查
回顾在条件函数中比较日期时的稳妥方法。
回顾:条件函数中的日期范围
现在您可以按时间筛选 SUMIFS、COUNTIFS 和 AVERAGEIFS:
- 日期范围是同一日期列上的两个条件(>= 起始日期和 <= 结束日期)。
- 使用
DATE(y,m,d)构建日期,并使用">="&添加运算符。 - 对于月份,请使用次日严格小于的上限(
"<"&DATE(...)),以便处理时间戳。 - 使用
TODAY()创建最近 30 天之类的滚动时间范围。
至此,多条件 IFS 系列就全部完成了。
=SUMIFS(C:C, B:B, F3, A:A, ">="&F1, A:A, "<"&F2)常见问题解答
「条件函数中的日期范围」课时是免费的吗?
是的 — 「条件函数中的日期范围」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。
「条件函数中的日期范围」这节课中我会学到什么?
使用日期区间逻辑,在指定期间内求和或计数 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Excel Formulas Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「条件函数中的日期范围」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Excel Formulas Academy 课中编写并运行代码吗?
能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。