我对 Excel 绝对不算非常熟练,但我知道足够的基础知识。
经过多次论坛讨论和深思熟虑后,我得出了以下公式,我将讨论它应该做什么。(它在 Office 2010 中似乎运行良好,但在 2003 中根本不起作用,我不知道文件必须格式化为 2003)
=SUMPRODUCT(--(Deploy!T3:Deploy!T60<=TODAY()),--(Deploy!T3:Deploy!T60>(EDATE(TODAY(),-12))))
Deploy
是 Sheet 名称,cellsT3-T60
是计算单元格。该公式用于计算出当前日期前 1 年内的单元格数量。
如果有人能找出该公式的简化版本,我将不胜感激,因为我在整个工作表中使用了这个公式及其一些修改版本(主要是月份计数的变化)。
答案1
我在 Excel 2003 中尝试了您的公式并且它对我有用 -SUMPRODUCT
并且TODAY
是 Excel 2003 中的内置函数但是EDATE
是加载项的一部分Analysis ToolPak
- 如果您没有安装该加载项那么您可能会收到 #VALUE! 错误。
尝试启用分析工具库
工具 > 插件 > 勾选“分析工具库”框。您可能需要重新输入公式。
如果这不起作用,或者你不想或不能安装插件,那么你可以用这个公式获取 12 个月前的日期
=DATE(YEAR(TODAY())-1,MONTH(TODAY()),DAY(TODAY()))
....或者您也可以使用 TODAY()-365(尽管这显然不太准确,因为它没有考虑闰年)
所以那要么
=SUMPRODUCT(--(Deploy!T3:T60<=TODAY()),--(Deploy!T3:T60>DATE(YEAR(TODAY())-1,MONTH(TODAY()),DAY(TODAY()))))
要不就
=SUMPRODUCT(--(Deploy!T3:T60<=TODAY()),--(Deploy!T3:T60>TODAY()-365))
如果仍然出现错误,那么可能是数据范围中存在错误Deploy!T3:T60
。如果是这样,那么另一种方法是将一个COUNTIF
函数减去另一个函数。这很有帮助,因为COUNTIF
会忽略数据中的错误,公式将是
=COUNTIF(Deploy!T3:T60,"<="&TODAY())-COUNTIF(Deploy!T3:T60,"<="&DATE(YEAR(TODAY())-1,MONTH(TODAY()),DAY(TODAY())))
答案2
假设您的日期格式为日期(而不是日期+时间)并且您不介意有额外的列,您可以尝试这样做:
- 单元格 B2 包含今天的日期
=TODAY()
。 - 单元格
B5-B11
包含您想要计算的日期。 - 单元格
C5-C11
包含今天的日期和列表中的日期之间的差值,以减法计算B5-$B$2
。 - 单元格 C13 包含公式 `=COUNTIF(C5:C13,"<365")