首页 > 解决方案 > 从日志文件计算时间跟踪

问题描述

我有一个日志文件,用于存储用户会话的登录和注销。我的用户在一天内多次登录和注销。现在我想计算我的用户每天或每周在线的时间。

这是我的日志文件的示例:

  DATE & Time   Status
1/25/2021 22:45 LOGIN
1/25/2021 7:49  LOGOUT
1/25/2021 4:16  LOGIN
1/25/2021 3:16  LOGOUT
1/24/2021 21:33 LOGIN
1/24/2021 7:38  LOGOUT
1/24/2021 5:37  LOGIN
1/24/2021 4:47  LOGOUT
1/24/2021 1:28  LOGIN
1/24/2021 1:23  LOGIN
1/23/2021 21:58 LOGIN
1/23/2021 13:09 LOGOUT
1/23/2021 11:41 LOGIN
1/23/2021 8:54  LOGOUT
1/23/2021 8:48  LOGIN
1/23/2021 5:54  LOGOUT
1/23/2021 1:06  LOGIN
1/22/2021 21:54 LOGIN
1/22/2021 21:53 LOGOUT
1/22/2021 21:46 LOGIN

CSV

可以用excel计算在线时间吗?

最好的祝福。

我附上了我的示例文件(我将其转换为 xlsx)

https://www.sendspace.com/file/40rwg5

标签: excelexcel-formula

解决方案


如果数据满足某些先决条件,您可以使用以下公式:

  1. 登录/注销必须成对
  2. 在时间方面登录必须在注销之前
  3. 登录/注销必须在一天内

我编辑了您的示例数据以获得正确的结果。

要获取日期列表,请使用数组公式:

=IFERROR(INDEX(INT($A$2:$A$21),MATCH(1,--(COUNTIF($D$1:D1,INT($A$2:$A$21))=0),0)),"")

ctrl+ shift+确认编辑后的数组公式enter

计算小时数使用:

=SUMPRODUCT($A$2:$A$21*(D2=INT($A$2:$A$21))*("logout"=$B$2:$B$21)-$A$2:$A$21*(D2=INT($A$2:$A$21))*("login"=$B$2:$B$21))

在此处输入图像描述


推荐阅读