计算在给定时间工作的人数

时间:2017-06-19 18:40:52

标签: tableau

我有员工登录时以及退出时的数据。我打电话给他们登录的持续时间" Ready"他们被注销的时间和时间为"未准备好"时间。我想要做的是有一个连续的渐变时间线,显示有多少人处于就绪状态。

关于数据的一些注意事项:

  • 数据有开始时间和结束时间。每条记录对于员工和开始时间都是唯一的吗?
  • 我很遗憾无法发布此数据,因为它不属于我。

1 个答案:

答案 0 :(得分:1)

假设你的数据是这样的

employee    start_time  end_time
E1  7/7/2017  10:03:10 AM   7/7/2017  18:03:10 AM
E2  7/7/2017  10:10:10 AM   7/7/2017  18:03:10 AM
E3  7/7/2017  10:13:10 AM   7/7/2017  18:03:10 AM
E1  7/7/2017  11:03:10 AM   7/7/2017  19:03:10 AM
E2  7/7/2017  10:30:10 AM   7/7/2017  18:03:10 AM

在这种情况下,我会按照以下步骤操作:

  • 检查start_time& end_time列不是'timestamp'格式,然后右键单击它并转到'更改数据类型'以选择'Date&时间'
  • 创建参数Select_Report_DateTime。在参数窗口中选择数据类型='日期&时间';显示格式='自动';允许值='全部'
  • 右键单击此参数并选择“显示参数控件”
  • 将计算字段default_date_time创建为#1/1/1900 12:00:00 AM#。如果它不是'timestamp'格式,则右键单击它并转到'更改数据类型'以选择'Date&时间'
  • 将计算字段Report_DateTime_formatted创建为
IF [Select_Report_DateTime] == [default_date_time] then now()
ELSE [Select_Report_DateTime]
END
  • 将计算字段Users(inReadyState)创建为
IF (([Report_DateTime_formatted] >= [start_time]) & 
    ([Report_DateTime_formatted] < [end_time])) THEN "Yes"
ELSE "No"
END
  • 现在将Users(inReadyState)拖入“列”,将CNT[employee]拖入“行”,将“标记”拖动为栏。
  • 你可以很好地利用这个模型来根据你的具体要求获得o / p。

如果有帮助,请不要忘记告诉我们。)