There is no interactive solution in Excel because some functions are not vector-friendly, like CELL, above quoted. For example, it's possible counting all the numbers whose absolute value is less than 3, because ABS is accepted inside a formula array.
So I've used the following array formula
(Ctrl+Shift+Enter after edit with no curly brackets)
={SUM(IF(ABS(F1:F15)<3,1,0))}
If Column F has
F
1 ... 2
2 .... 4
3 .... -2
4 .... 1
5 ..... 5
It counts 3! (-2,2 and 1). In order to show how ABS is array-friendly function let's do a simple test: Select G1:G5, digit =ABS(F1:F5) in the formula bar and press Ctrl+Shift+Enter. It's like someone write Abs(F1:F5)(1), Abs(F1:F5)(2), etc.
F G
1 ... 2 =ABS(F1:F5) => 2
2 .... 4 =ABS(F1:F5) => 4
3 .... -2 =ABS(F1:F5) => 2
4 .... 1 =ABS(F1:F5) => 1
5 ..... 5 =ABS(F1:F5) => 5
Now I put some mixed data, including 2 date values.
F
1 ... Fab-25-2012
2 .... 4
3 .... May-5-2013
4 .... Ball
5 ..... 5
In this case, CELL fails and return 1
={SUM(IF(CELL("format",F1:F15)="D4",1,0))}
It happens because CELL return the format of first cell of the range. (D4 is a m-d-y format)
So the only thing left is programming! A UDF(User defined Function) for formula array must return a variant array:
Function TypeCell(R As Range) As Variant
Dim V() As Variant
Dim Cel As Range
Dim I As Integer
Application.Volatile '// For revaluation in interactive environment
ReDim V(R.Cells.Count - 1) As Variant
I = 0
For Each Cel In R
V(I) = VarType(Cel) '// Output array has the same size of input range.
I = I + 1
Next Cel
TypeCell = V
End Function
Now is easy (the constant VbDate is 7):
=SUM(IF(TypeCell(F1:F5)=7,1,0))
It shows 2. That technique can be used for any shape of cells.
I've tested vertical, horizontal and rectangular shapes, since you fill using
for each order inside the function.