最新历史版本 :计算两个日期间的工作日天数 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1. 预期效果

公司来了一批实习生,工资按工作了多少天进行结算。希望可以通过「开始时间」和「结束时间」,计算出他们一共工作了多少工作日。

21.png

1.2 实现思路

通过给日期进行标记,对两个日期的标记数相减,即可获得两个日期间的工作日天数。

2. 操作方式编辑

下载本文示例数据:示例数据.rar

2.1 处理日期表

1)日期表的内容格式如下表所示:

若用户自己的节假日时间与表格不同,可以对其进行更改。

23.png

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 即可。

29.png

2.2 计算工作日天数

1)添加数据「人员表」,默认全选字段。如下图所示:

2)添加 左右合并。选择「节假日标记表」的「日历、是否为节假日、累加标记」字段,合并依据选择「开始时间」和「日历」。如下图所示:

这样我们就可以将人员表中的开始时间用数字标记,并知道开始时间是否为节假日。

3)更改字段「累加标记」为「开始时间标记」,更改「是否为节假日」为「开始时间是否为节假日」。如下图所示:

4)同样的,再进行一次左右合并。选择「节假日标记表」的「日历」字段和「累加标记」字段,合并依据选择「结束时间」和「日历」,如下图所示:

此步将结束时间与它们的标记对应。   

5)将「节假日标记表-累加标记」改名为「结束时间标记」。

6)新增列,计算出开始时间结束时间之间有多少个工作日,有两种情况。写成函数后如下图所示:

  • 开始时间为节假日:结束时间标记-开始时间标记;

  • 开始时间为工作日:结束时间标记-开始时间标记+1;

7)保存并更新数据。

2.3 效果预览

计算得出的工作日天数如下图所示。例如:James 从2016-08-31实习到2016-07-04,一共实习了 43 个工作日。