【问题标题】:Excel: Hours/Minutes to Decimal ValuesExcel:小时/分钟到十进制值
【发布时间】:2014-02-15 21:54:56
【问题描述】:

首先,我使用的是 Excel 2010。

我正在尝试简化从我运行的报告中获取信息的过程,该报告生成以秒为单位的时间。我需要十进制时间而不是小时,到目前为止,这是我能想到的唯一解决方案。示例:

A1 包含以秒为单位的时间。

1843 (seconds)

B1 包含将秒转换为小时的公式

=B1/(1440*60) This gives me 0:30:43

然后我要计算0:30:00还剩下多少时间,这是我需要的。

=IF(B1<$H$1,"ON TIME",SUM(B1-$H$1))

这个公式我把它放在C2中,H1包含时间限制0:30:00,单元格格式为[h]:mm:ss。我用它来计算超出限制的时间。

一旦我的时间超过限制,在本例中为 0:00:43 秒,我必须将其转换为小数,以便从所有这些中得到我真正需要的,为此我使用以下公式。

=C2*60*24

这个公式(放置在 R1 中)给我的结果是 0.72,但我必须复制这个结果并将其粘贴到另一个单元格上,当我这样做并粘贴值时,我得到了这个。 0.71666666666667。即使单元格格式为带 2 位小数的数字。它只影响我在单元格中看到的内容,而不影响单元格中的实际值。

现在,解决这个问题并获得正确的号码。我在 S1 中有另一个公式位置给我正确的数字,在复制并粘贴为值之后,我得到了我需要的实际值。

=TRUNC(R1,2)

这给了我 0.71,如果我复制并粘贴从该公式中获得的内容并将其粘贴为值,我将保留 0.71。

有没有办法通过 VBA 或任何其他公式替代方法来缩短这个过程?

感谢您的帮助。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    如果您想要如图所示的十进制 minutes 的答案,那么将所有内容转换为代表 minutes 的十进制数字会更容易,例如将 A1 除以 60 并将 H1 乘以 1440,因此假设 A1 中的秒值始终为 greater 而不是 H1 中的等效值,您可以使用这个单一公式

    =FLOOR(A1/60-$H$1*1440,0.01)

    格式为带 2 位小数的数字,根据需要得到 0.71

    如果您想在 IF 功能中加入“准时”部分,请使用此版本

    =IF(A1/60&gt;$H$1*1440,FLOOR(A1/60-$H$1*1440,0.01),"ON TIME")

    如果 H1 不变,您可以将公式中的 $H$1*1440 替换为小数分钟,例如30

    【讨论】:

    • 谢谢。第一个公式效果很好,给了我正确的数字,但第二个公式给了我一个负数,除非我将单元格格式化为带有正负数的数字。
    • 没关系,我想通了。我在公式中输入了错误的语句,已更正,现在它正在工作。非常感谢,这大大减轻并减少了我的报告的大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 2018-08-06
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多