谷歌电子表格 COUNTIF TODAY() 是什么意思?

7

有没有办法使用 COUNTIF 函数统计当前日期的数据?

例如,我有一个工作单电子表格,一旦员工开始工作单,它会捕获时间戳,完成工作单后,它会被移至档案区,我想创建一个简要表格,告诉我我们在那一天完成了多少订单,时间戳格式为:

2/19/2014 17:10:20
所以基本上我需要一个 COUNTIF 来计算当前日期的列数。
这个可行吗?
4个回答

14

谷歌表格的新版本中增加了COUNTIFS函数,可以使用以下公式:=COUNTIFS(A:A,">="&TODAY(),A:A,"<"&TODAY()+1)

但是需要选择新版才能使用。 ("尝试使用新版谷歌表格")


1
虽然是小事,但我认为将今天表示为大于昨天且小于明天会更清晰。因此:=COUNTIFS(A:A,">"&TODAY()-1,A:A,"<"&TODAY()+1) - jbyrd
1
@jbyrd 很不幸,这也包括昨天的所有时间,除了(TODAY()-1)减去那一天午夜的确切值。为避免这些错误,最安全的做法是将范围定义为(min <= x < max),或等价地(x>= min AND x < max)。当业务告诉你“周一到周五”时,你应该实现(MON <= day < SAT)。 - maybeWeCouldStealAVan

4

您需要先在范围上应用一个函数,然后才能使用COUNTIF函数来计算与“今天”匹配的日期。您可以改用SUMPRODUCT函数:

=arrayformula(SUMPRODUCT(1*(INT(A1:A100)=TODAY())))

INT可以从datetime中去除时间。


完美地工作了,而且它就在我眼前,感谢您教导我 =) - b3ck
3
非常好的回答,虽然在arrayformula中使用sumproduct是多余的,因为在Google中,使用一个参数的sumproduct只是避免在Excel中输入ctrl-shift-enter的技巧。任何一个都可以工作:=ArrayFormula(SUM(1*(INT(A1:A100)=TODAY())))=SUMPRODUCT(1*(INT(A1:A100)=TODAY())) - maybeWeCouldStealAVan

0

如果您没有可用的COUNTIFS,根据maybeWeCouldStealAVan的建议,那么您可以使用两个COUNTIF函数,如下所示:

=COUNTIF(A:A,">="&TODAY())-COUNTIF(A:A,">="&TODAY()+1)

通过计算所有大于或等于今天的条目,然后减去所有大于或等于明天的条目,结果是仅计算今天日期的计数

该公式适用于Excel或Google - 另一个选项,类似于Jerry的方法,是使用此特定于Google文档的公式

=count(filter(A1:A100,int(A1:A100)=today()))


-2

试试这个:

    dim i as integer
    dim objDate as date
    dim objStartDate as Date
    dim objEndDate as Date
    dim countOrders as integer

    countOrders = 1
    objStartDate = 'the start date to check with ( could be the start of the day)
    objEndDate = 'the end date to check with (could be the end of the day)

    for i = 1 to 'number of rows
        objDate = CDate(cells(i, 1))
        if (objDate > objStartDate) and (objDate < objEndDate) then
            countOrders = countOrder +1
        end if
    next i

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接