用excel函数判断一个日期是工作日还是休息日。

工具/材料

excel/函数
判断一个日期是否为周末(周六、周日)可以用weekday()函数:
=if(weekday(today(),2)>=6,"周末","不是周末")
但是要判断一个日期是否为休息日,就要复杂一些,因为要涉及到法定节假日、调休和调整工作日等。
表格所列是国务院办公厅公布的2015年节日假期和调整工作日的安排。
名词解释:
节日假期——法定节假日放假的日期。
调整工作日——本来是周末双休日,但因节日假期的安排而调整为工作日。
现在我们来分析一下,一个日期是休息日需要满足下面两个条件之一:
1. 是节日假期
2. 是周末同时不是调整工作日
换言之,两个条件只要满足一个就是休息日,如果两个都不满足,就是工作日。
用Excel函数表述是这样:
if(是节假日,"休息日",if(是周末,if(不是调整工作日,"休息日","工作日"),"工作日"))
假设要判断的日期放在E2单元格。上面表述中三个条件:“是节日假期”、“是周末”、“不是调整工作日”分别用函数代替。
是节日假期(在B列中能找到E2的值)--COUNTIF(B:B,E2)>=1
是周末(是一周中的第6或第7天)--WEEKDAY(E2,2)>=6
不是调整工作日(在C列中找不到E2的值)--COUNTIF(C:C,E2)=0
最终的公式如下:
=if(COUNTIF(B:B,E2)>=1,"休息日",if(WEEKDAY(E2,2)>=6,if(COUNTIF(C:C,E2)=0,"休息日","工作日"),"工作日"))
把公式复制到F2单元格。
这是公式计算结果:
示例文档下载地址:
http://pan.baidu.com/s/1ntNxEdz