设计智能推算的轮值表

数字办公

很多单位都是24小时运作的,例如炼钢厂,工人做的是四班三倒的工作(就是夜班、白班、中班、休班,每天上一个班, 4天后循环),没有周末和节假日,所以在日历上是查不到休息日期的。

如果利用四天一个循环的原理,制作一个轮值表计算器,那么就可以查看到几个星期或几个月后某一天自己是不是休息,早作安排。下面就以制作广电公司三期轮值表为例,看看制作的过程。

1.模型设计

建立一个Excl 的电子表格,在D3、F3、H3、J3中输入四班三倒顺序(图1),并且在F5里输入“年”(不包括引号,以下相同),在H5输入“月”,J5里输入“日”,E5、G5、I5就是输入年、月、日的地方。在L7里输入“=CONCATENATE(E5,"-",G5,"-",I5)”,它的意思是把输入的E5(年)、G5(月)、I5(日)连接起来成为日期格式。

11-f12-1-1.jpg
图1

2.排序设计

在D7 里输入“=MOD((DATEVALUE(L7)),4)”,DATEVALUE(L7)的意思是取得所输入日期距离1900年1月1日的天数;MOD函数是取余数的函数。如果你发现输入倒班的顺序与真实倒班顺序有几天的差距,不用在D3、F3、H3、J3中重新输入数据,可以在=MOD((DATEVALUE(L7)),4)中加相差的天数。例如相差一天就加个1,在D7重新输入“=MOD((DATEVALUE(L7))+1,4)”。

小提示:工作簿使用1900日期系统,则Excel会将1900年1月1日保存为系列数1,例如在1900日期系统中,Excel会将1998年1月1日保存为系列数35796,因为该日期距离1900年1月1日为35795天。

3.结果显示设计

在D9中输入“=IF(D7=1,TEXT(D3,1),IF(D7=2,TEXT(F3,1),IF(D7=3,TEXT(H3,1),TEXT(J3,1))))”,它的意思是如果D7的数值为1就显示D3表格的内容;如果D7的数值为2就显示F3表格的内容;如果D7的数值为3就显示H3表格的内容;如果D7的数值为其他就显示J3表格的内容。

在F7中输入“=WEEKDAY(DATE(E5,G5,I5),2)”,DATE(E5,G5,I5)的意思是将输入的日期转换成日期格式,WEEKDAY函数又把日期换成星期。以后输入年月日后,就可以在F7中显示星期几了。

4.优化设计

接着要把数值型表示的星期转换成中国人习惯的大写星期。在N6 中输入“你查询当天是星期”,在U6中输入“=IF(F7=1,REPLACE(1,1,1,"一"),IF(F7=2,REPLACE(2,1,1,"二"),IF(F7=3,REPLACE(3,1,1,"三"),IF(F7=4,REPLACE(4,1,1,"四"),IF(F7=5,REPLACE(5,1,1,"五"),IF(F7=6,REPLACE(6,1,1,"六"),REPLACE(7,1,1,"日")))))))” ,REPLACE函数把某个字符替换成指定字,最后美化一下表格即可完成设计(图2)。

11-f12-1-2.jpg
图2

轮值表计算器下载地址:http://download.cpcw.com