历史版本13 :数据加工并分析 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

基础表处理 中已经将数据表接入 BI,并对其进行了简单的清洗。

接下来需要解决的问题有:

  • 只有请假的员工会标注考勤状态,有过打卡行为的员工不能区分考勤状态;

  • 打卡信息中缺少员工的姓名、年龄、性别等基础信息,这些信息都在「人员信息表」中;

  • 数据中只有打卡时间,但是缺少工作时长的数据等等。

需要通过 在我的分析编辑数据 来解决。

2. 区分打卡行为编辑

2.1 标记有打卡行为的数据

1)新建一个分析主题,并添加「公共数据」中「打卡信息表」的字段。

2022-08-31_11-36-31.gif

并双击表名重命名为「考勤数据(不请假)」表。

2022-08-31_11-39-17.png

2)过滤出非公休非请假的数据,即「状态」字段为空时的数据,这部分数据中员工应该正常打卡,将其过滤出来以便对他们的打卡数据进行分析。如下图所示:

过滤详细说明参见:过滤基础功能

2022-08-31_11-41-26.png

2)添加分组汇总,求出用户每天打卡的最早时间和最晚时间。如下图所示:

最早时间对应员工的上班时间

最晚时间对应员工的下班时间

分组汇总详细说明参见:分组汇总基础功能

2022-08-31_11-55-57.png

3)新建一个字段「判断是否迟到」,在李明明的公司中,晚于 9:30 到公司就算迟到。所以我们新建一个 9:30 的字段用于判断,输入公式:

TODATE(CONCATENATE(LEFT(日期,10)," ","09:30:00")),如下图所示:

2022-08-31_11-51-58.png

公式说明:

公式
说明
LEFT(日期,10)取日期的年月日字段
CONCATENATE(LEFT(日期,10)," ","09:30:00")

拼接出日期+9:30 的迟到时间数据

比如当前日期是 2022-05-05  则得到2022-05-50 09:30:00

TODATE(CONCATENATE(LEFT(日期,10)," ","09:30:00"))将迟到时间设置为日期类型

并使用时间差,如果结果<0,就是迟到,如下图所示:

新增列详细说明参见:新增列-时间差

2022-08-31_11-53-33.png

4)对考勤时间进行比较判断。

当工作时长小于六小时时,判断为缺勤;

当上班时间大于 9:30 时,判断为迟到;其余判断为「全勤」。

计算出工作时长后,新增列输入公式:IF(工作小时<6,"缺勤",IF(是否迟到<0,"迟到","全勤")),如下图所示:

新增列详细说明参见:新增列-公式函数

2022-08-31_13-46-16.png

5)隐藏我们之后不需要的字段。如下图所示,在字段设置中取消勾选即可。

字段设置详细说明参见:字段设置

2022-08-31_13-52-25.png

6)保存并更新该表。

2.2 汇总考勤数据

此时需要将请假的用户数据和未请假的数据进行汇总。

1)在分析主题添加数据:本地工程上的「打卡信息表」。重命名为「考勤汇总」表

2)过滤出所有请假的数据(注意不选择公休和调休数据)。如下图所示:

注:因为只统计工作日数据,所以这里不选择公休和调休数据。

1661926736175257.png

2)添加分组汇总,设置和「考勤数据(不请假)」相同的条件,如下图所示:

注:此处为合并 2.1 节数据做准备。

2022-08-31_14-17-54.png

3)将请假的数据和 2.1 节正常打卡的数据合并到一张表中。进行上下合并,如下图所示:

上下合并详细说明参见:上下合并基础功能

2022-08-31_14-16-24.png

3. 合并姓名、性别等数据编辑

已经完成了对考勤数据的整理,接下来希望打卡信息中能新增员工的姓名、年龄、性别等基础信息,这些信息都在「人员信息表」中。

因此需要使用左右合并功能,通过「工号」字段将两张数据表的数据进行合并,由于我们希望保留「打卡信息表」的所有数据,因此选择左合并,如下图所示:

左右合并详细说明参见:左右合并基础功能

2022-08-31_14-25-13.png

4. 计算工作时长和年龄编辑

只有打卡时间但想要知道每个员工的工作时长,此时需要继续使用数据集进行数据处理。

使用函数 DATESUBDATE 计算「最晚时间」和「最早时间」的时间差。输入公式:DATESUBDATE(最晚时间,最早时间,"m")/60,如下图所示:

注:时间字段需要选择数据表中的字段,不能手动输入文字。

2022-08-31_14-27-17.png

若使用的实时数据,你可以使用新增列-时间差 计算工作时长,如下图所示:

2022-08-31_14-28-56.png

在合并数据后,知道了员工身份证号,就可以通过计算,得到员工的年龄,使用公式:YEAR()-TOINTEGER(MID(身份证号码,7,4)),如下图所示:

注:身份证号码需要选择数据表中的字段,不能手动输入文字。

2022-08-31_14-30-47.png

此时我们的数据处理就完成了,当然可以在使用字段设置取消掉不需要使用的中间字段。

5. 习题练习编辑

本节为你准备了习题,你可以使用习题对学习的内容进行练习,更好的掌握内容:数据处理习题