早教吧 育儿知识 作业答案 考试题库 百科 知识分享

EXCEL日期数计算在EXCEL中,求某几个时间段内,(如:A:2009/4/26-2010/12/4,B:2011/1/16-2012/1/13),总月数、星期二和星期三的总天数(其中去除法定节假日以及自定义指定日期),另,以某时

题目详情
EXCEL 日期数计算
在EXCEL中,求某 几个 时间段内,(如:A:2009/4/26-2010/12/4,B:2011/1/16-2012/1/13),总月数、星期二和星期三的总天数(其中去除法定节假日以及自定义指定日期),另,以某时间为分界如每月的26日,基数为1500,每增加一月,数字增加150,从某日期至今,如2010/2/14-至今(或某日),这个数值为多少。 以上两个公式,望达人赐教~
▼优质解答
答案和解析

声明一下,根据问题的描述我的理解是各时间段没有重叠的部分,也就是说下一时间段的起始日期晚于上一时间段的截止日期。后面给出的函数都必须是在符合上述条件的前提下才能保证它的正确性,否则请说明重叠部分是否需要累加计算,我再给出相应的函数。
表格 A B C D
1 2009-4-26 2010-12-4 日期1 =WEEKDAY(C1)
2 2011-1-16 2012-1-13 日期2 =WEEKDAY(C2)
3 日期3 =WEEKDAY(C3)
4 日期4 =WEEKDAY(C4)
E F
1 =IF(D1=3,C1,0) =IF(D1=4,C1,0)
2 =IF(D2=3,C2,0) =IF(D2=4,C2,0)
3 =IF(D3=3,C3,0) =IF(D3=4,C3,0)
4 =IF(D4=3,C4,0) =IF(D4=4,C4,0)
G
1 =COUNTIFS(E1:E4,">="&A1,E1:E4,"<="&B1)
2 =COUNTIFS(E1:E4,">="&A2,E1:E4,"<="&B2)
H
1 =COUNTIFS(F1:F4,">="&A1,F1:F4,"<="&B1)
2 =COUNTIFS(F1:F4,">="&A2,F1:F4,"<="&B2)
总月数=SUM(DATEDIF(A1,B1,"M"),DATEDIF(A1,B1,"M"))
从起始日期y-m-d至y-(m+1)-d或(y+1)-1-d为一个单位的月数,如果月数的含义不是这样请说明。
星期二的总天数=SUM(CEILING((B1-(A1+3-WEEKDAY(A1)+(WEEKDAY(A1)>3)*7)+1)/7,1)-G1,CEILING((B2-(A2+3-WEEKDAY(A2)+(WEEKDAY(A2)>3)*7)+1)/7,1)-G2)
星期三的总天数=SUM(CEILING((B1-(A1+4-WEEKDAY(A1)+(WEEKDAY(A1)>4)*7)+1)/7,1)-H1,CEILING((B2-(A2+4-WEEKDAY(A2)+(WEEKDAY(A2)>4)*7)+1)/7,1)-H2)
C列为法定节假日及自定义日期;D列计算同一行C列日期为星期几(因忽略第二个参数,星期日用1表示);E列保留C列为星期二的日期值;F列保留C列为星期三的日期值;G列计算在同一行的时间段内,E列出现几个星期二,区域E1:E4可使用E:E或者根据C列连续输入日期的行数用其它函数自动求出,这里暂不讲解了;H列同G列一样用来计算星期三的个数。

声明我的理解是先满足一个月的条件(月的概念同上面的),再满足“日”数大于等于“界”的条件方可产生基数。
表格 A B
1 2010/2/14 =TODAY()或指定的日期
累计数=75*(DATEDIF(A1,B1,"M")+(DAY(B1)>=26)-1)*(18+DATEDIF(A1,B1,"M")+(DAY(B1)>=26))
若以其它“日”为“界”,用那个数替换26,基数和增加数改变的话,你把下面的1500和150分别换成相应的数再简化就可以了。
=(DATEDIF(A1,B1,"M")+(DAY(B1)>=26)-1)*1500+(DATEDIF(A1,B1,"M")+(DAY(B1)>=26)-1)*(DATEDIF(A1,B1,"M")+(DAY(B1)>=26)-2)/2*150