1. 概述
1.1. 预期效果
公司来了一批实习生,工资按工作了多少天进行结算。希望可以通过「开始时间」和「结束时间」,计算出他们一共工作了多少工作日。
1.2 实现思路
通过给日期进行标记,对两个日期的标记数相减,即可获得两个日期间的工作日天数。
2. 操作方式
下载本文示例数据:示例数据.rar
2.1 处理日期表
1) 日期表的内容格式如下表所示:
若用户自己的节假日时间与表格不同,可以对其进行更改。
2) 新建分析主题「计算两个日期间的工作日天数」添加「日期表」,并将「日期表」重命名为「节假日标记表」。如下图所示:
3) 新增公式列,对日期进行 0、1 标记。是节假日的标记为 0 ,非节假日标记为 1 。如下图所示:
4) 新增汇总列,对「0、1标记」列按照日期升序进行累加。如下图所示:
累加后的表如下图所示,可以通过「累加标记」字段直接计算得出两个日期之间的工作日天数。
例如 2011-03-14 与2011-03-08 之间的工作日天数,只需要用对应的「累加标记值」相减:(45-41)+1=5天。
特殊情况:若开始时间是节假日,比如说 2011-03-05(节假日)与 2011-03-09 之间的工作日天数,就只要 42-39=3 即可。
2.2 计算工作日天数
1) 添加数据「人员表」,默认全选字段。如下图所示:
2) 添加 左右合并。选择「节假日标记表」的「日历、是否为节假日、累加标记」字段,合并依据选择「开始时间」和「日历」。如下图所示:
这样我们就可以将人员表中的开始时间用数字标记,并知道开始时间是否为节假日。
3) 更改字段「累加标记」为「开始时间标记」,更改字段「是否为节假日」为「开始时间是否为节假日」。如下图所示:
4) 同样的,再进行一次左右合并。选择「节假日标记表」的「日历」字段和「累加标记」字段,合并依据选择「结束时间」和「日历」,如下图所示:
此步将结束时间与它们的标记对应。
5) 将「节假日标记表-累加标记」改名为「结束时间标记」。
6) 新增列,计算出开始时间到结束时间之间有多少个工作日,有两种情况。写成函数后如下图所示:
开始时间为节假日:结束时间标记-开始时间标记;
开始时间为工作日:结束时间标记-开始时间标记+1;
7) 保存并更新数据。
2.3 效果预览
计算得出的工作日天数如下图所示。例如:James 从2016-07-04实习到2016-08-31,一共实习了 43 个工作日。