用EXCEL计算起止时间在各个时间段内的时长.doc

用EXCEL计算起止时间在各个时间段内的时长.doc

ID:55579405

大小:18.00 KB

页数:2页

时间:2020-05-18

用EXCEL计算起止时间在各个时间段内的时长.doc_第1页
用EXCEL计算起止时间在各个时间段内的时长.doc_第2页
资源描述:

《用EXCEL计算起止时间在各个时间段内的时长.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用EXCEL计算起止时间在各个时间段内的时长EXCELL中,常遇到这样的问题:已知起始时间和结束时间,如何计算该起止时间在指定时间段上的时间长度?比如:开始时间结束时间峰期7:00-11:00平期11:00-19:00谷期19:-07:0013:35:0021:10:005:25:002:10:0023:10:0008:25:001:25:009:50:0012:0008:001:00:007:00:0012:00:00由于起止时间有多种跨越情况,且有零点转换,用EXCEL的自带公式和函数很难实

2、现。下面这个VBA自定义函数,能够轻松解决上面的难题。函数名tj(t1,t2,n)3个参数:t1-开始时间,t2-结束时间,为“时分秒”时间格式,可直接引用单元格n-整数{1

3、2

4、3},(分别代表峰平谷的时间段)返回值:以“时分秒”形式返回起(t1)止(t2)时间在参数n所代表的时间段内的时长。在EXCEL工作表中,打开VBA编辑器,将下列代码作为模块插入,保存后即可在单元格中直接调用,格式开如:=Tj($A2,$B2,1),返回开始时间A2、结束时间B2在7-11点时间段内的时长。以下代码,在

5、解决不同问题时,对部分参数适当修改即可实现。FunctionTj(t1,t2,nAsInteger)Dimf(2)AsInteger,Ti(2),arr(2,1)AsDaten=n-1arr(0,0)=TimeValue("7:00:00")arr(0,1)=TimeValue("4:00:00")arr(1,0)=TimeValue("11:00:00")arr(1,1)=TimeValue("8:00:00")arr(2,0)=TimeValue("19:00:00")arr(2,1)=Ti

6、meValue("12:00:00")s=t2-t1'总时长Ifs<0Thens=TimeValue("23:59:59")+s+TimeValue("00:00:01")EndIf'------------计算开始时间属于哪一时间段,存储于f(0),并将其后的时间段存储于f(1)、f(2)SelectCaset1Casearr(0,0)Toarr(1,0)-TimeValue("00:00:01")f(0)=0f(1)=1f(2)=2t1_=arr(0,1)-(t1-arr(0,0))'t1_

7、用于记录开始时间至该时间段结束点的时长Casearr(1,0)Toarr(2,0)-TimeValue("00:00:01")f(0)=1f(1)=2f(2)=0t1_=arr(1,1)-(t1-arr(1,0))CaseElsef(0)=2f(1)=0f(2)=1Ift1>arr(2,0)Thent1_=arr(2,1)-(t1-arr(2,0))Elset1_=arr(2,0)-arr(2,1)-t1EndIfEndSelect'-------------计算总时长s在各时间段内的时长arr

8、(f(0),1)=t1_i=0While(s>0Andi<3)Ti(f(i))=WorksheetFunction.Min(arr(f(i),1),s)s=s-Ti(f(i))i=i+1WendTi(f(0))=Ti(f(0))+s'如果s在分配至其他时间段后仍有剩余Tj=Ti(n)'返回指定时间段时长IfTj=TimeValue("00:00:00")ThenTj=""EndIfEndFunction

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。