不,你不能這樣做,COUNTIF
功能需要一個範圍內第一個參數 - 對範圍內的任何操作(如使用MONTH
功能)將是範圍的數組COUNTIF
不接受
可能替代方案是使用SUMPRODUCT
例如
=SUMPRODUCT((MONTH(range)=5)+0)
或COUNTIFS
這樣
=COUNTIFS(range,">="&Z1,range,"<"&EOMONTH(Z1,0)+1)
其中Z1是月份的第一計數,例如1 - 5月 - 2013
當然的SUMPRODUCT版本不考慮當年的(雖然你可以添加在),而COUNTIFS確實
說明
在SUMPRODUCT
當您使用像MONTH(range)=5
返回像{TRUE;FALSE;FALSE;TRUE}
的TRUE/FALSE
值的「陣列」 ....但SUMPRODUCT
這裏只總和數字表達,所以我們需要一種方法來「共同ERCE」 TRUE爲1和FALSE爲0。你可以做到這一點與任何數學不改變數值的操作,例如+ 0,* 1也可以添加 - 到前是這樣的:
=SUMPRODUCT(--(MONTH(range)=5))
,所以我們得到類似
=SUMPRODUCT(--({TRUE;FALSE;FALSE;TRUE}))
...這成爲
=SUMPRODUCT({1;0;0;1})
然後SUMPRODUCT總結這些價值得到2,即五月的日期數。
SUMPRODUCT最好SUM
純粹是因爲你不需要「數組進入」配方CTRL + SHIFT + ENTER
爲SUMPRODUCT的一個很好的說明,請參見here和它的許多使用
我打算建議一個數組公式,但是sumproduct要好得多。 – gtwebb
當然,一個數組公式是另一種可能性....... –
非常感謝您的答案,一般來說它是有道理的,但是您能否解釋爲什麼在SUMPRODUCT函數的末尾需要「+0」?我的猜測是,這是沿着強制它到你想要的類型(int)的東西。這是正確的還是別的? – Free