楼主 apolloh |
Q:如何计算某月第三个星期日的日期? A:在A1单元格输入月份数,如6,下列公式返回该月的第三个星期日的日期序列值,再设置单元格格式为日期即可。
|
2楼 gouweicao78 |
=CEILING(A1&-1,7)+15 俺最喜欢捡这种小便宜了,呵呵 前面公式没考虑1号为星期日的情况,修正:
|
3楼 apolloh |
呵呵,Ceiling支持文本日期,A1&-1直接链接不错,不过2003年6月出错了 |
4楼 gouweicao78 |
同理 母亲节——5月第2个星期天 =CEILING("5-1"-1,7)+8或 =CEILING("4-30",7)+8 父亲节——6月倒数第2个星期天 =CEILING("7-1"-1,7)-13或 =CEILING("6-30",7)-13 |
5楼 wshcw |
6月的第三个星期日是父亲节,没有找到倒数第2个星期天的说法。 |
6楼 gouweicao78 |
谢谢,我之前找到的是倒数第2个星期天,后面找到的又是第3个星期天。 =CEILING("5-31",7)+15 |
7楼 wshcw |
原来的解法:(A1为年份) =DATE(A1,6,23-WEEKDAY(DATE(A1,6,1))-(WEEKDAY(DATE(A1,6,1))=1)*7) |
8楼 wshcw |
=CEILING("6-30",7)-13 [/quote] 试了一下,如推算: 2009-11月最一个星期四 2009-12月最一个星期四 公式还不能简化. =CEILING("12-31",7)-9 =CEILING("11-30",7)-9 12月的就错了.因12-31刚好是星期四. |
9楼 gouweicao78 |
我补充说明一下:那个简化并非完全适合每个月,求第n个星期几,用前一个月的最后一天来算;求倒数第n个星期几,则用后一个月的1号来算。碰到跨年度的时候,比如"12-31"则需要把年份标上了。 |
10楼 wshcw |
我补充说明一下:那个简化并 ... [/quote] 其实不完美的公式也可以给公式打个补丁,如:12月最后一个星期四的公式补丁: =--(12&-MAX(DAY(CEILING("12-31",7)-{9;2}))) |
11楼 paul001 |
=CEILING((A1&"-1")-1,7)+15 这个1号为星期日的情况下 也正确 |