全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
17530 6
2010-07-27
悬赏 50 个论坛币 未解决
求程序:
已知项目开始日期、工作日天数,计算到期日期的函数,其中不包括星期六,星期天,与十一,请大虾帮忙!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-7-27 18:06:51
用函数就可以实现
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-27 18:17:50

WORKDAY

用途:返回某日期(起始日期)之前或之后相隔指定工作日(不包括周末和专门指定的假日)的某一日期的值,并扣除周末或假日。

语法:WORKDAY(start_date,days,holidays)

参数:Start_date 为开始日期;Days 为Start_date 之前或之后不含周末及节假日的天数;Days 是正值将产生未来日期、负值产生过去日期;Holidays 为可选的数据清单,表示需要从工作日历中排除的日期值(如法定假日或非法定假日)。此清单可以是包含日期的单元格区域,也可以是由代表日期的序列号所构成的数组常量。日期有多种输入方式:带引号的文本串(如"1998/01/30")、序列号(如1900 日期系统时的35825表示1998 年1 月30 日)或其他公式或函数的结果(例如DATEVALUE("1998/1/30"))。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-27 22:29:37
到期日使用函数datedif()
DATEDIF(start_date,end_date,unit)

Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。日期有多种输入方法:带引号的文本串(例如 "2001/1/30")、系列数(例如,如果使用 1900 日期系统则 36921 代表 2001 年 1 月 30 日)或其他公式或函数的结果(例如,DATEVALUE("2001/1/30"))。有关日期系列数的详细信息,请参阅 NOW。

End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。

Unit 为所需信息的返回类型。  
Unit        返回
"Y"        时间段中的整年数。
"M"        时间段中的整月数。
"D"        时间段中的天数。
"MD"        start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
"YM"        start_date 与 end_date 日期中月数的差。忽略日期中的日和年。
"YD"        start_date 与 end_date 日期中天数的差。忽略日期中的年。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-30 11:06:28
楼上的,人家是要计算到期的日期,而不是返回两个日期之间的间隔
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-3 02:28:29
刚开始学vba,函数还不会写,代码也不是很完善,只是给个思路你参考一下
Sub endday()
    Dim i As Integer
    Dim j As Integer
    Dim wd As Integer
        
    i = 0
    j = 0
    Do Until i = 工作天数
          wd = Application.Weekday(开始日期+ i + j, 2)
         If wd = 6 Or wd = 7 Then
             j = j + 1
        Else
            i = i + 1
        End If
    Loop
结束日期= 开始日期 + i + j - 1
End Sub

这个过程只考虑了周六周日,其他节假日另外添加到条件就是了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群