我有列中的数据A。有些值是日期,有些不是:
Cat
1234
12/25/2016
$123.45
6/10/2016
我想计算列中包含特定格式日期的单元格数。我感兴趣的是计算细胞()工作表函数返回“D4”。
我可以使用辅助列来做到这一点;B1我输入:
=CELL("format",A1)
然后复制下来。然后在另一个单元格中:
=COUNTIF(B:B,"D4")
我也可以使用 VBA UDF 来做到这一点:
Public Function DateCounter(rng As Range) As Long
Dim r As Range
For Each r In rng
If IsDate(r) Then DateCounter = DateCounter + 1
Next r
End Function
我想在没有 VBA 和“帮助”列的情况下完成此操作。
我尝试过的是:
=SUMPRODUCT(--(CELL("format",A1:A5)="D4"))
但这总会回来0 (可以作为普通公式或数组公式)
答案1
CELL()
不支持数组。这是一个古老而众所周知的限制;我认为你能做的不多,除了使用你自己的逻辑来CELL()
检查日期格式,检查斜线是否在正确的位置,月份数字是否有效等等;这会很乏味,但没有其他办法。