我有以下公式来计算时间大于3:00 pm或小于4:00 am的行。如果我的行E1:E5
只有几次,它会按预期工作。但是,问题在于E列是日期时间,我希望保持这种状态。因此,公式当前返回0
。
公式
=COUNTIF(E1:E5,">="&TIME(15,0,0)) + COUNTIF(E1:E5,"<="&TIME(4,0,0))
E列
2018/10/1下午2:40:58
10/1/2018 2:11:58 AM
10/1/2018 2:09:50 AM
2018/10/1上午9:41:53
2018/10/1上午9:22:21
该公式应返回3。谢谢您的帮助。
答案 0 :(得分:0)
如果您对帮助器列没问题(可以根据需要将其隐藏在AA
列中),则可以执行以下操作:
如果您决定使用列AA
,请在AA1
中输入:
=MOD($E1, 1)
然后填写。任何实数都可以自己除,所以 MOD 只会返回余数-这就是代表时间的小数。
您的COUNTIF()
公式将如下所示:
=COUNTIF($AA1:$AA5,">="&TIME(15,0,0)) + COUNTIF($AA1:$AA5,"<="&TIME(4,0,0))
答案 1 :(得分:0)
受一些建议的启发,我提出了以下建议:
=SUMPRODUCT(
((A2:A17-TRUNC(A2:A17))>=0.625)*
((A2:A17-TRUNC(A2:A17))<=1))
+SUMPRODUCT(
((A2:A17-TRUNC(A2:A17))>=0)*
((A2:A17-TRUNC(A2:A17))<=(1/6)))
编辑:根据其他答案,使用MOD
而不是TRUNC
更容易阅读:
=SUMPRODUCT(
(MOD(A2:A17,1)>=0.625)*
(MOD(A2:A17,1)<=1))
+SUMPRODUCT(
(MOD(A2:A17,1)>=0)*
(MOD(A2:A17,1)<=(1/6)))
说明:
A2:A17-TRUNC(A2:A17)
仅返回数字的小数部分-时间
0.625
-15:00(下午3点)
1
-午夜
0
-午夜
=0.166667
或1/6
-4:00(凌晨4点)
我敢肯定还有其他方法可以做到这一点,但这似乎很简单,不需要帮助列。