求excel统计和今天相差30天的日期 出现的个数.

如题想求下 在表中和今天相差30天的日期 出现的个数, 结果应该等于1,尝试写了一个公式,COUNTIF(DATEDIF(A1:A26,TODAY(),"D"),"=30")提示有误, 反倒是同时满足相差30天,B列也等于30的这个公式SUMPRODUCT((DATEDIF(A1:A26,TODAY(),"D")=30)*(B1:B26=30)),提示等于1又没有问题。所以求高手指点。第2个问题,如果是求大于今天的日期,出现的个数又该怎么写呢?

第1个回答  2014-01-20
COUNTIF函数,第一参数必须为单元格引用,不能是公式结果,所以不能用
DATEDIF(A1:A26,TODAY()
来充当。
而SUMPRODUCT函数,是计算乘积之和的函数,即可以对单元格引用,也可以对公式结果进行计算,所以能够使用。
如果求大于今天日期的个数,可以用COUNTIF
=countif(A1:A26,">"&today())
也可以用SUMPRODUCT
=SUMPRODUCT(N(A1:A26>TODAY()))
第2个回答  2014-01-20
统计今天相差30天的个数:sum(if(abs(today()-A2:A1000)=30,1,0)) ,ctrl+shinft+enter
统计大于今天的日期个数:sum(if(A2:A1000-today()>0,1,0)) ,ctrl+shinft+enter追问

第一个不对哦,你试试。应该结果等于1,才对吧。

追答

结果是对的,与今天相差30天的个数,我测试过,你注意一下区域

追问

ok 这次可以了,突然发现个问题,如果日期大于今天的日期,在计算天数差的话就回出错。这样其他的公式就更着出错了。请问高手有没有什么好方法解决。

追答

可以使用绝对值函数ABS(),你A列直接可以得到日期差,为什么又要增加辅助列计算天数再又用函数算,有点画蛇添足哦

追问

其实是想写一个 找相差30天以内的项目,然后在求B列的和,看看发生了金额这样。为了方便验算,又懒得在插入一行,就像直接B天数求和了。=SUMPRODUCT((DATEDIF(A1:A26,TODAY(),"D")<=30)*B1:B26) 但是如果里面的日期大于今天的日期,这个公式就出错了。

本回答被提问者采纳
第3个回答  2014-01-20
如果用COUNTIF函数的话,应该改为:=COUNTIF(A1:A26,TODAY()-30)这种形式。
相似回答