跳至主要内容

按年、月统计Excel中的日期数量

Author: Xiaoyang Last Modified: 2025-05-07

在使用Excel工作表时,有时您可能希望统计给定年份或月份的日期单元格数量,如下截图所示。为了解决这个任务,您可以结合使用SUMPRODUCT、YEAR和MONTH函数来创建公式,以统计属于特定年份或月份的日期数量,满足您的需求。

doc-count-dates-by-year-1


统计给定年份的日期数量

要统计给定年份中的日期数量,可以将SUMPRODUCT和YEAR函数结合起来使用,通用语法如下:

=SUMPRODUCT(--(YEAR(date_range)=year))
  • date_range: 包含要统计日期的单元格列表;
  • year: 表示要统计年份的值或单元格引用。

1. 在希望获取结果的空白单元格中输入或复制以下公式:

=SUMPRODUCT(--(YEAR($A$2:$A$14)=C2))

注意:在此公式中,A2:A14是包含日期的单元格范围,C2包含要统计的特定年份。

2. 然后,向下拖动填充柄以将此公式应用到其他单元格,您将根据给定年份获得日期数量,见截图:

doc-count-dates-by-year-2


公式解释:

=SUMPRODUCT(--(YEAR($A$2:$A$14)=C2))

  • YEAR($A$2:$A$14)=C2: YEAR函数从日期列表中提取年份值,例如:{2020;2019;2020;2021;2020;2021;2021;2021;2019;2020;2021;2019;2021}; 然后,每个年份与C2单元格中的年份值进行比较,返回一个由TRUE和FALSE组成的数组:{FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE}。
  • --(YEAR($A$2:$A$14)=C2)=--{FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE}: 双负号将TRUE值转换为1,FALSE值转换为0。因此,您将得到如下结果:{0;1;0;0;0;0;0;0;1;0;0;1;0}。
  • SUMPRODUCT(--(YEAR($A$2:$A$14)=C2))= SUMPRODUCT({0;1;0;0;0;0;0;0;1;0;0;1;0}): 最后,SUMPRODUCT函数对数组中的所有项求和,并返回结果:3。

统计给定月份的日期数量

如果您想根据给定月份统计日期数量,SUMPRODUCT和MONTH函数可能会帮助您,通用语法如下:

=SUMPRODUCT(--(MONTH(date_range)=month))
  • date_range: 包含要统计日期的单元格列表;
  • month: 表示要统计月份的值或单元格引用。

1. 在希望获取结果的空白单元格中输入或复制以下公式:

=SUMPRODUCT(--(MONTH($A$2:$A$14)=C2))

注意:在此公式中,A2:A14是包含日期的单元格范围,C2包含要统计的特定月份。

2. 然后,向下拖动填充柄以将此公式应用到其他单元格,您将根据给定月份获得日期数量,见截图:

doc-count-dates-by-year-3


公式解释:

=SUMPRODUCT(--(MONTH($A$2:$A$14)=C2))

  • MONTH($A$2:$A$14)=C2: MONTH函数从日期列表中提取月份编号,例如:{12;3;8;4;8;12;5;5;10;5;7;12;5}。然后,每个月份与C2单元格中的月份编号进行比较,返回一个由TRUE和FALSE组成的数组:{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE}。
  • --(MONTH($A$2:$A$14)=C2)= --{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE} : 双负号将TRUE值转换为1,FALSE值转换为0。因此,您将得到如下结果:{0;0;0;0;0;0;1;1;0;1;0;0;1}。
  • SUMPRODUCT(--(MONTH($A$2:$A$14)=C2))= SUMPRODUCT({0;0;0;0;0;0;1;1;0;1;0;0;1}): SUMPRODUCT函数对数组中的所有项求和,并返回结果:4。

按年份和月份统计日期数量

如果要基于年份和月份统计日期数量,例如,我想知道2021年5月有多少个日期。

doc-count-dates-by-year-4

在这种情况下,您可以结合使用SUMPRODUCT、MONTH和YEAR函数来获取结果,通用语法如下:

=SUMPRODUCT((MONTH(date_range)=month)*(YEAR(date_range)=year))
  • date_range: 包含要统计日期的单元格列表;
  • month: 表示要统计月份的值或单元格引用;
  • year: 表示要统计年份的值或单元格引用。

请在空白单元格中输入或复制以下公式以输出结果,然后按Enter键获取计算结果,见截图:

=SUMPRODUCT((MONTH($A$2:$A$14)=D2)*(YEAR($A$2:$A$14)=C2))

注意:在上述公式中,A2:A14是包含日期的单元格范围,D2包含要统计的特定月份,C2是要统计的年份数字。

doc-count-dates-by-year-5


相关函数:

  • SUMPRODUCT:
  • SUMPRODUCT函数可用于将两列或多列或数组相乘,然后获取乘积的总和。
  • MONTH:
  • Excel中的MONTH函数从日期中提取月份,并显示为1到12之间的整数。
  • YEAR:
  • YEAR函数根据给定日期返回四位数序列格式的年份。

更多文章:

  • 统计包含特定文本的单元格数量
  • 假设您有一系列文本字符串,并希望找到包含某些文本作为其内容一部分的单元格数量。在这种情况下,您可以使用通配符字符(*),它代表COUNTIF函数中的任何文本或字符。本文将介绍如何在Excel中使用公式来处理这项任务。

最佳的办公生产力工具

Kutools for Excel - 助您脱颖而出

🤖 Kutools AI 助手:基于以下功能彻底改变数据分析方式:智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用Kutools函数
热门功能查找、高亮或标记重复项  |  删除空行  |  合并列或单元格而不丢失数据  |  四舍五入无需公式 ...
超级VLookup多条件  |  多值  |  跨多个工作表  |  模糊查找...
高级下拉列表简易下拉列表  |  级联下拉列表  |  多选下拉列表...
列管理器添加指定数量的列  |  移动列  |  切换隐藏列的可见状态  比较列以 选择相同和不同的单元格 ...
精选功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿与工作表管理器 | 资源库(自动文本)  |  日期提取  |  合并数据  |  加密/解密单元格  |  按列表发送电子邮件  |  超级筛选  |  特殊筛选(筛选粗体/斜体/删除线...) ...
排名前15的工具集12个 文本 工具添加文本删除特定字符 ...)  |  50多种 图表 类型甘特图 ...)  |  40多种实用 公式基于生日计算年龄 ...)  |  19个 插入 工具插入二维码从路径插入图片 ...)  |  12个 转换 工具小写金额转大写汇率转换 ...)  |  7个 合并与拆分 工具高级合并行分割Excel单元格 ...)  |  ... 还有更多

Kutools for Excel拥有超过300种功能,确保您需要的功能只需一键即可实现...


Office Tab - 在Microsoft Office(包括Excel)中启用标签式阅读和编辑

  • 一秒内切换数十个打开的文档!
  • 每天为您减少数百次鼠标点击,告别鼠标手。
  • 在查看和编辑多个文档时,您的工作效率将提高50%。
  • 为Office(包括Excel)带来高效的标签页,就像Chrome、Edge和Firefox一样。