我们知道感恩节是每年1l月份的第四个星期四,这种形式表述的日期每年是不同的,需要进行计算才行。若年份在Al单元格,要获得感恩节具体日期的公式为:
=DATE(A1,11,1)+IF(5<WEEKDAY(DATE(A1,11,1)),7-WEEKDAY(DATE(A1,11,1))+5,5-WEEKDAY(DATE(A1,11,1)))+((4_1)*7)
公式说明:
(1)DATE(A1,11,1):返回Al单元格表示年份的11月1日的数字序列。
(2)WEEKDAY(DATE(A1,11,1):返回Al单元格表示年份的11月1日为星期几的数字,用数字1表示星期日,……,数字7表示星期六。
(3)IF(5<WEEKDAY(DATE(A1,11,1》,7-WEEKDAY(DATE(A1,11,1)+5,5-WEEKDAY(DATE(A1,11,1)))+((4-1)*7):计算1l月第4个星期四距离11月1日的天数。
用这个公式,可得到2005年感恩节的日期为11月24曰,2006年为11月23日(注意要将公式结果所在单元格设置为日期格式),如图6-3所示。
![]() 计算节日日期 本例中主要使用了WEEKDAY函数。WEEKDAY函数返回某日期为星期几。默认情况下,其值为1(星期天)到7(星期六)之间的整数。
语法为:WEEKDAY(serial_number,return_type)
serial_number表示一个顺序的序列号,代表要查找的那一天的日期。如果日期以文本的形式输入,则会出现问题。
return_type为确定返回值类型的数字:
●l或省略:返回数字l(星期日)到数字7(星期六)。
●2:返回数字l(星期一)到数字7(星期日)。
●3:返回数字0(星期一)到数字6(星期日)。
根据上面公式的含义,可以用一个通用公式来计算形如某年某月第几个星期几这种方式来表述的日期(假设年份在All,月份在Bll,第几个星期在Cll,星期几在Dll,用1表示周日,2表示周一):
=DATE(A11,B11,1)+IF(D11<WEEKDAY(DATE(A11,B11,1)),7-WEEKDAY(DATE(A11,B11,l))+Dll,Dll-WEEKDAY(DATE(A11,B11,1)))+((C11-1)*7)
|
|