【问题标题】:Calculate "Working hours " based on IN and OUT time Employee Attendance Power bi根据进出时间员工出勤率计算“工作时间”
【发布时间】:2020-06-16 09:21:15
【问题描述】:

我正在使用 Power bi,我想根据员工进出公司的时间来计算他们的工作时间。 这是数据样本 假定的总小时数应为 7 小时 8 分钟。 因此,员工外出无所事事的时间。就我而言,我应该排除从 OUT 2:04:20 到 IN 3:09:46 大约 1 小时的时间。

【问题讨论】:

    标签: sql datetime powerbi dax


    【解决方案1】:

    您可以为每个in 计算下一个out 并取其差:

    select t.employee_id,
           sum(datediff(second, local_time, next_local_time)) as diff_seconds
    from (select t.*,
                 lead(local_time) over (partition by employee_id order by local_time) as next_local_time
         from t
        ) t
    where action = 'IN'
    group by t.employee_id;
    

    注意:这假设 INs 和 OUTs 是交错的,因此一行中没有具有相同操作的行。

    这也以秒为单位给出结果 - 可以转换为十进制小时数或您想要的任何其他特定格式。

    【讨论】:

    • 感谢您的回答,但如何在 power bi 中实现此功能?
    【解决方案2】:

    在 Power BI/Power Query 中,假设您的表与帖子的结构相同,您可以使用以下脚本创建一个新表。在此脚本中,yourSource 引用了您的表格。

    let
        #"Sorted Rows" = Table.Sort(yourSource,{{"EmployeeID", Order.Ascending}, {"LOCAL_TIME", Order.Ascending}}),
        #"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 1, 1, Int64.Type),
        #"Added Custom1" = Table.AddColumn(#"Added Index", "Employee_In_Out_Index", each if [Action] = "IN" then [Index] else null),
        #"Filled Down" = Table.FillDown(#"Added Custom1",{"Employee_In_Out_Index"}),
        #"Removed Columns" = Table.RemoveColumns(#"Filled Down",{"Index"}),
        #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"Employee_In_Out_Index", "EmployeeID", "Action", "LOCAL_TIME"}),
        #"Pivoted Column" = Table.Pivot(#"Reordered Columns", List.Distinct(#"Reordered Columns"[Action]), "Action", "LOCAL_TIME"),
        #"Added Custom" = Table.AddColumn(#"Pivoted Column", "Time Difference", each [OUT] - [IN])
    in
        #"Added Custom"
    

    在新表中,每条记录都是一进一出。这里有一个Time Difference 列,您可以在计算中使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多