可以使用COUNTIF与范围值的函数?
假设我有一个从A1开始的date列表,
1/3/2014
2/5/2014
5/5/2015
8/10/2016
...
我想统计一个月内出现在这个范围内的次数。 我目前的解决scheme是,它下面的行只包含=MONTH(x1)
,其中x
是列,然后我调用该行上的COUNTIF。
我不认为这是一个解决scheme如此糟糕,但它需要一大堆额外的单元格来计算我的电子表格中的月份,而这对于其他任何事情都是不必要的。
那么基本上,有什么办法可以按照= COUNTIF(MONTH(range),5)的行来计算,例如5月份发生的事情的次数?
不,你不能这样做, COUNTIF
函数需要一个范围作为第一个参数 – 范围上的任何操作(如使用MONTH
函数)将该范围转换为COUNTIF
不接受的数组
可能的select是使用SUMPRODUCT
例如
=SUMPRODUCT((MONTH(range)=5)+0)
或者像这样的COUNTIFS
=COUNTIFS(range,">="&Z1,range,"<"&EOMONTH(Z1,0)+1)
其中Z1是本月的第一天,例如2013年5月1日
当然,SUMPRODUCT版本并不考虑年份(尽pipe你可以添加),而COUNTIFS也可以
说明
在SUMPRODUCT
当您使用像MONTH(range)=5
这样的expression式时,会返回TRUE/FALSE
值(如{TRUE;FALSE;FALSE;TRUE}
MONTH(range)=5
的“数组”,但SUMPRODUCT
仅将数字相加,所以我们需要一种方法以“cocecece”TRUE为1,FALSE为0.您可以使用任何不会更改值的math运算(例如+0,* 1)或者可以像这样添加到前面:
=SUMPRODUCT(--(MONTH(range)=5))
所以我们得到类似的东西
=SUMPRODUCT(--({TRUE;FALSE;FALSE;TRUE}))
…变成了
=SUMPRODUCT({1;0;0;1})
然后SUMPRODUCT将这些值相加得到2,即5月份的date数。
SUMPRODUCT是首选的SUM
纯粹是因为您不需要“数组input”的公式与CTRL + SHIFT + ENTER
在这里看到SUMPRODUCT的一个很好的解释,它有很多用途