首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减去date+hour,得到以小时为单位的结果

问减去date+hour,得到以小时为单位的结果
EN

Stack Overflow用户
提问于 2015-06-08 23:35:45
回答 3查看 47关注 0票数 0

我如何将下面的日期相减,并提供输出小时数?请注意,小时数是一个数字,而不是日期。因此,我可能还需要一些公式来将其更改为最新版本。我计划在VBA中使用这样的代码

非常感谢你帮助我走出困境。

代码语言:javascript
复制
date_converted
2015-06-02 14:41
2015-06-02 11:24
2015-06-03 09:35
2015-06-03 09:34
EN

回答 3

Stack Overflow用户

发布于 2015-06-08 23:43:12

代码语言:javascript
复制
02/06/2015 14:41    
02/06/2015 11:24    -3.283333333
03/06/2015 09:35    22.18333333
03/06/2015 09:34    -0.016666667

上面的A和B列

代码语言:javascript
复制
B2 = "=(A2-A1)*24" and 
B3 = "=(A3-A2)*24" and 
B4 = "=(A4-A3)*24"
票数 0
EN

Stack Overflow用户

发布于 2015-06-08 23:54:42

=DateValue会将测试转换为excel日期值,然后您可以对日期使用常用的excel函数。

如果您对小时感兴趣(并且不超过9999小时或负数),那么可以将单元格格式化为[h]:mm,也可以将得到的数字乘以24得到小数小时数。

票数 0
EN

Stack Overflow用户

发布于 2015-06-09 00:34:12

这里有一些代码给你。

它查看列A/1中的值并将其作为日期复制到列B/2,然后在列C/3中,仅当不在第1行中时,才从当前行中减去前一行。它遍历所有活动行。

在单元格(x,y)中,如果列号更改,则更改y。

代码语言:javascript
复制
For i = 1 To ActiveSheet.UsedRange.Rows.Count
    a = Format(Cells(i, 1).Value, "mm/dd/yyyy hh:nn")
    Cells(i, 2).Value = a
    If i <> 1 Then
        Cells(i, 3).FormulaR1C1 = "=(RC[-1]-R[-1]C[-1])*24"
    End If
Next i

因此,最终结果如下所示:

2015-06-02 14:41 6/2/2015 14:41 2015-06-02 11:24 6/2/2015 11:24 -3.283333333 2015-06-03 09:35 6/3/2015 9:35 22.18333333 2015-06-03 09:34 6/3/2015 9:34 -0.016666667

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30713432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档