求excle日期处理函数

weekhb 2018-02-06 10:15:43
有两列数据开始日期,结束日期

现在想得出两个日期的之间的相差小时,但是要排除17:00-次日8:00之间的时间。
开始日期2018-2-6 12:0
结束日期 2018-2-7 9:00

时间差应该为6小时。。

...全文
643 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
X-i-n 2018-02-07
  • 打赏
  • 举报
回复
公式太难了。试试VBA吧。a1单元格:2018/2/6 12:00 a2单元格:2018/2/9 09:00 结果是:24
Sub calcdate()
    Cells(1, 3) = hourdiff(Cells(1, 1), Cells(1, 2))
End Sub

Function hourdiff(date1 As Date, date2 As Date)
    Dim d1 As Date, d2 As Date
    If date1 > date2 Then
        d1 = date2
        d2 = date1
    Else
        d1 = date1
        d2 = date2
    End If
    Dim hours1 As Integer, hours2 As Integer
    hours1 = DateDiff("h", d1, Format(d1, "yyyy-MM-dd 17:00"))
    If hours1 < 0 Then hours1 = 0
    hours2 = DateDiff("h", Format(d2, "yyyy-MM-dd 8:00"), d2)
    If hours2 < 0 Then hours2 = 0
    If Format(d1, "yyyy-MM-dd") = Format(d2, "yyyy-MM-dd") Then
        hourdiff = hours1 + hours2
    Else
        hourdiff = hours1 + hours2 + 9 * (DateDiff("d", Format(d1, "yyyy-MM-dd"), Format(d2, "yyyy-MM-dd")) - 1)
    End If
End Function

6,210

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office应用
社区管理员
  • Microsoft Office应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧