不,你不能这样做,COUNTIF 函数需要一个范围作为第一个参数 - 范围上的任何操作(如使用 MONTH 函数)都会将该范围转换为 COUNTIF 不接受的数组
可能的替代方法是使用SUMPRODUCT,例如
=SUMPRODUCT((MONTH(range)=5)+0)
或COUNTIFS 像这样
=COUNTIFS(range,">="&Z1,range,"<"&EOMONTH(Z1,0)+1)
其中 Z1 是要计算的月份的第一天,例如2013 年 5 月 1 日
当然 SUMPRODUCT 版本不考虑年份(尽管您可以将其添加进去),而 COUNTIFS 则考虑
说明
在SUMPRODUCT 中,当您使用像MONTH(range)=5 这样的表达式时,它会返回一个由TRUE/FALSE 值组成的“数组”,例如{TRUE;FALSE;FALSE;TRUE}....但是SUMPRODUCT 这里只对数字求和,所以我们需要一种方法来“ co-erce" TRUE 为 1,FALSE 为 0。您可以使用任何不改变值的数学运算来做到这一点,例如+0, *1 或者你可以像这样在前面添加--:
=SUMPRODUCT(--(MONTH(range)=5))
所以我们得到类似的东西
=SUMPRODUCT(--({TRUE;FALSE;FALSE;TRUE}))
...这就变成了
=SUMPRODUCT({1;0;0;1})
然后 SUMPRODUCT 将这些值相加得到 2,即 5 月的日期数。
SUMPRODUCT 优于 SUM 纯粹是因为您不需要使用 CTRL+SHIFT+ENTER“数组输入”公式>
请参阅here 以获得对 SUMPRODUCT 的良好解释,它有很多用途