分享

职场Excel之人力资源管理:你知道今天是星期几吗?

 温暖南方 2020-01-03

资讯速递:自2020年1月1日起,对在职职工总数30人(含30)以下的企业,暂免征收残保金。新老企业都能享受,不再受36个月的限制。——发改价格规(2019)2015号




人力资源管理工作中,考勤数据的处理是最基础的工作之一。今天我们来分享下考勤表的制作。

先来看一下考勤表的最终效果。


我们来改变一下日期,看看有什么变化。


从上图可以看出,当改变A2中的日期时,制表日期、日期行、星期行都随之变动,且周六、周日所在列的底纹颜色都会变成我们预先设置的颜色。



在开始之前,我们先来学习一下案例里要用到的三个函数。

EOMONTH(start_date,months),返回一串日期,表示指定月数之前或之后的月份的最后一天。
Start_date ,一个代表开始日期的日期。
Months    , start_date 之前或之后的月份数。months 为正值将生成未来日期;为负值将生成过去日期,为0将生成当月的日期。

COLUMN(reference),返回单元格或单元格区域的列标。
参数如果是一个单元格,则返回参数中单元格所在列的列号(如COLUMN(A1)返回1);如果是一个区域,则返回区域中第一列的列号;如果不填写,则返回当前选定单元格所在列的列号。

WEEKDAY(serial_number,return_type),返回对应于某个日期的一周中的第几天。
serial_number,一个序列号,指定要查找的那一天的日期。
return_type,用于确定返回值类型的数字。默认情况下,天数是1(星期日)到7(星期六)范围内的整数。


下面我们开始制作考勤表。

一、考勤表表头的制作

A1单元格输入表名,跨列居中或合并居中。

A2单元格输入标准日期,如2019/12/1,跨列居中或合并居中,单元格格式设置为日期XXXX年X月。

Z3单元格输入“制表日期”。AC3单元格输入公式:EOMONTH(A2,0),获得2019年12月的最后一天的日期是2019/12/31。


二、日期行数据的处理

根据我们想要的效果,B4显示1、C4显示2……,本质上B4为2019/12/1、C4为2019/12/2……我们可以用DATE函数提取A2单元格的“年”、“月”。而“日”,可以用COLUMN函数来生成。B4=DATE(YEAR($A$2),MONTH($A$2),COLUMN(A1))。把公式向右填充,得到了1-31日的日期。


设置B4:AF4的单元格格式:数字 - 自定义,右侧框中输入字母 d ( Day的缩写,日期的自定义代码,代表天数)。


这样就得到了初步的效果。


我们来验证一下公式是否正确。

在A2中输入2019/11/1,我们发现AF4等于1,日期自动顺延到了下一个月。


要解决这个问题,我们需要增加一个条件判断,用DAY(AC3)获取当月的天数,当日期行的数值大于当月的天数时,就不显示数据。此时B4的公式为:IF(COLUMN(A1)>DAY($AC$3),'',DATE(YEAR($A$2),MONTH($A$2),COLUMN(A1)))。这时看到AF4已为空。



三、星期行数据的处理

设置好日期行的数据,星期行数据的处理就简单多了。

我们让星期行的数据等于日期行的数据,B5=B4、C5=C4……,再给B5:AF5设置单元格格式:数字 - 自定义,右侧框中输入字母aaa ( 日期的自定义代码,将日期显示为缩写的星期几,显示为一、二、三、四、五、六、日)。这里不再赘述,大家自己去设置一下。

具体操作步骤如下图:


四、周末单元格底纹的设置

用条件格式和WEEKDAY函数来设置周末单元格的底纹,以区别于其他单元格

WEEKDAY函数返回的是对应于某个日期的一周中的第几天。那么如果其返回的值大于5就意味着当天为周六或周日。可以用这个条件来判断哪天为周六、周日,再用条件格式来设置满足这个条件的单元格的底纹。

操作步骤如下。


这样,一个比较智能化的考勤表就制作完成了。大家可以试试看是否有更加简便的其他方法。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多