我有一个 2 列的 excel 表
A 列 = “CA”、“CR”或“IN”
B 列 = 日期和时间格式 DD/MM/YYYY HH:MM
我想在具有此条件的每一行的列底部进行计数:
i) 第 1-8 行 = “CA”
ii) 第1-8行需要检查一个时间范围,即>“17:00”和<“04:59”
到目前为止,这是我想出的:
=COUNTIFS(A2:A8,"CA",B2:B8,RIGHT(TEXT(B2:B8,"hh:mm"),5)>"04:59"), B2:B8,RIGHT(TEXT(B2: B8,"hh:mm"),5)<"17:00")
我认为在文本函数中使用范围是错误的,但不知道如何解决这个问题。
因为 B 列采用日期和时间格式,所以我必须将其更改为函数中的字符串,以便我可以对时间进行测试 - 也许有更好的方法?)
谢谢
最佳答案
COUNTIFS
的问题是你不能太多地操纵条件。您可以插入仅包含时间的列,在这种情况下您可以使用 COUNTIFS
但如果你不能,你可以使用SUMPRODUCT
代替:
=SUMPRODUCT((A1:A6="CA")*(((TEXT(B1:B6,"hh:mm")*1>TIME(17,0,0))+(TEXT(B1:B6,"hh:mm")*1<TIME(5,0,0)))>0))
这在示例范围 A1:B6 上应用了一些条件:
(A1:A6="CA")
确保该行具有 CA
,(TEXT(B1:B6,"hh:mm")*1>TIME(17,0,0))
确保时间在 17:00 以上(TEXT(B1:B6,"hh:mm")*1<TIME(5,0,0))
确保时间在 05:00 之前(您的问题中有 4:59,如果您的意思是小于 4:59,则更改此部分)。+
对于最后两个条件“或”这两个条件,那么整个事情都是与第一个条件“与”。
关于Excel:计算一个时间段内有多少行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27780136/