换个思路做流程

一、需求描述:
1、需求为:

将一个月的员工打卡记录,写进Excel,并在状态一列,添加员工是正常打卡,还是迟到与早退。

2、判断状态规则:

当日08:30前上班,17:30后下班为正常;

3、源文件:

为dat格式,用Notepad++ 打开如下图所示:

换个思路做流程

  信息中有员工工号,打卡日期及时间

4、最终输出格式:

按照如下图所示,将打卡数据,通过工号匹配另一张员工信息表,得到员工姓名及所属部门,最终写入Excel,格式如下:

换个思路做流程

二、思路及 poc 实现
1、需求分析;

  首先需要,将dat格式的打卡数据取出,过滤员工同一天同时间重复打卡数据;再匹配 员工信息表,得到对应的员工姓名
及所属部门,最后通过规则判断该员工打开的状态,写入输出总表。
  其中,判断状态规则,按照上午8:30之前打卡为正常,超过及为迟到;下午5:30之后打开为正常,下午在此之前打卡则为
早退。

2、难点分析:

a、从dat格式读取,无难度,如同TXT文本一样读出就可以;
b、过滤同一员工,同一时间段重复打卡。若在同一分钟内打多次,很容易过滤,若间隔1分钟及以上,难度增加;
c、通过打卡数据中员工工号匹配姓名及所属部门,较容易,可以使用设计器 merge 模块进行连接,前提是打卡数据提取出
来后下入Excel;反之,需使用循环去匹配;
d、判断员工打卡状态,按照常规思维,是切割出时间,再进行循环数据,判读出其状态;

三、重点!!!
此贴为经验贴,如标题,我们换个思路去实现。
注意,仅仅是经验与思路,若实施,需优化。

我们准备一个模板文件,为xlsx格式,中有两个sheet。
第一个sheet作用为:过渡,是将dat格式的打开数据,经过一番处理后,写入。

**第二个sheet:为本帖的重中之重,如下图所示:**

换个思路做流程

相信眼尖的小伙伴已经从上图看出来了。对的,我在第三列的状态中,写了一个函数,并格式化了整列。这样的好处是什
么,当我们在时间这一栏填写数据后,状态这一栏,就自动显示了。这样执行的效率,与开发的时间就大大的减少了。 
😄 😄 😄    为防止描述的不够详细,会将工程及用到的文档上传。

这里,并不是鼓励小伙伴们都用这样的方法去解决。只是提供一个思路,而本人也一直认为,一个好的思路能大大的减少我们开发的时间,并在效率上有着明显的提升。而本帖中,我实现的思路主要就在配置 Excel 模板这块。后续基本都是一些平时经常用到的方法。
当然,也会有一些更好的思路,逻辑,只是短时间内可能并不会被想到,只能在项目中慢慢成长与积累了。

7630f0146cde4fb986f09e721d03294e_yiqiwuliu.rar