COUNTIFS日期之间的事件,但也是时间

时间:2015-11-08 20:48:55

标签: excel date excel-formula timestamp

报告我以CSV格式从pbx导出原始数据。有许多列包含数据。与此案相关的是:

  • A栏:事件发生的日期(同一天有很多事件)
  • B列:以秒为单位的事件长度
  • C列:每个事件的日期+时间戳

我过滤掉所有短于或等于90秒的事件,

我可以通过更改我为此场合创建的2个单元格中的日期来调整范围(开始日期在D1中,结束日期在单元格D2中)。如果没有整合时间,我会使用:

= COUNTIFS(B:B; “> = 90”; A:A; “> =” &安培; D1; A:A; “=<” &安培; D2)

它就像一个魅力。我在单元格D1和单元格中选择一个范围。 D2和我自动获取这些日期之间的所有事件,不包括事件更短或=到90秒。

除此之外,我需要知道某些时间戳之间发生了多少事件/事件。例如,从11月1日到11月7日,我需要知道在12:00h和13:00之间人类事件是如何发生的,15:00h和15:00之间发生了多少事件。 18:00h等

从逻辑上讲,我认为只需添加另一个 criteria_range 条件(在此示例中为C列)即可。唉,添加C列似乎不起作用,我已经用很多方法进行了调整。

我的直觉是 DATE + TIME格式不合适,对我来说是不合适的。

C栏如下:02/11/2015 21:59:47

作为欧洲人,我对DD / MM / YYY符号感到满意,但似乎没有公式可以考虑到TIME而忽略了前面的DATE。请记住,我已经使用A列作为日期。在C列中,我对TIMESTAMP感兴趣。

欢迎任何aideas或建议。

非常感谢你。

PS:我总是可以将时间从使用文本的日期拆分为列功能。然而,这意味着我将格式化原始导出,我想不惜一切代价避免这种情况,这样我就可以在我的控制表中复制粘贴新导出而无需进行各种格式化。

1 个答案:

答案 0 :(得分:1)

  

如果没有样本数据,很难判断您是将经过时间视为90秒(整数)还是00:01:30(真实秒数,小数部分为1)。您的公式似乎表示经过时间为整数,但在其他地方也是错误的(例如=<而不是<=)所以唯一可以肯定的是它不是一个有效的公式。确定时间窗口也是如此。您是将其与1213作为整数或12:00:0013:00:00作为真实时间进行比较?它们绝对不是一回事。

SUMPRODUCT function可以提供将日期时间视为仅限时间(例如MOD(C2:C12, 1))所需的循环处理,或者表示一天中小时的整数(例如HOUR(C$2:C$12))。< / p>

TIME over COUNTIFS

F2,F5和F7中的公式是

=COUNTIFS(B:B; ">="&E2; A:A; ">="&E3; A:A; "<="&E4)
=SUMPRODUCT((A$2:A$12>=E$3)*(A$2:A$12<=E$4)*(MOD(C$2:C$12; 1)>=E5)*(MOD(C$2:C$12; 1)<=E6)*(B$2:B$12>=E$2))
=SUMPRODUCT((A$2:A$12>=E$3)*(A$2:A$12<=E$4)*(MOD(C$2:C$12; 1)>=E7)*(MOD(C$2:C$12; 1)<=E8)*(B$2:B$12>=E$2))

如果E5和E6分别是1213而不是12:00:0013:00:00,那么F5中的公式就是,

=SUMPRODUCT((A$2:A$12>=E$3)*(A$2:A$12<=E$4)*(HOUR(C$2:C$12)>=E5)*(HOUR(C$2:C$12)<=E6)*(B$2:B$12>=E$2))