You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在COUNTIF函数中使用CDate函数统计近两周的文本格式日期数据?

解决COUNTIF中无法直接使用CDate的问题

首先明确说:你没法直接在COUNTIF的区域参数里嵌套CDate函数,因为COUNTIF要求第一个参数必须是实际的单元格区域(比如Table1[Date Closed]),它不支持对区域做函数转换后再作为统计范围。不过不用急,不用VBA也能解决这个问题,用SUMPRODUCT函数就可以实现你的需求,而且不需要修改原表格的文本日期列。

推荐公式

直接用这个公式就能统计距今不超过两周的文本格式日期数量:

=SUMPRODUCT(--(CDATE(Table1[Date Closed])>=TODAY()-14))

或者用DATEVALUE函数(效果完全一致,适配更标准的文本日期格式):

=SUMPRODUCT(--(DATEVALUE(Table1[Date Closed])>=TODAY()-14))

公式解释

  • CDATE(Table1[Date Closed]):把文本格式的日期转换成真正的日期序列号,生成一个对应区域的数组
  • >=TODAY()-14:判断每个转换后的日期是否在过去两周内,得到一组TRUE/FALSE的布尔值
  • --:把布尔值转换成1(TRUE)和0(FALSE),这样SUMPRODUCT就能对这些数值求和,最终得到符合条件的日期数量
  • SUMPRODUCT本身支持数组运算,新版Excel直接回车即可生效,无需按Ctrl+Shift+Enter触发数组公式

为什么COUNTIF不行?

COUNTIF的设计逻辑是针对原生单元格区域的条件统计,它不会解析区域内的函数转换结果——你写COUNTIF(CDATE(Table1[Date Closed]),...)的时候,Excel会把CDATE(Table1[Date Closed])当成无效的区域引用,所以会返回错误或者不正确的统计结果。

如果是Excel 365/2021版本,也可以用更简洁的COUNTX函数:

=COUNTX(Table1,--(CDATE([Date Closed])>=TODAY()-14))

不过SUMPRODUCT的兼容性更好,能适配所有Excel版本。

内容的提问来源于stack exchange,提问作者Sammii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:14:26