2

我正在做一份报告,计算人们确定工资的时间。我们从我们的服务器中提取报告并将它们粘贴到 Excel 中进行计算。我在提取数据时遇到了一个问题:如果他们登录的时间不到一个小时,我们的公式就不起作用:

=IF(E159="","",((HOUR(E159)+(MINUTE(E159)+(SECOND(E159)/60))/60)))

如果时间是 ,这会给出一个错误 ( #value) :34:15,但如果是,00:34:15那就没问题了。

格式化单元格似乎不起作用。

我想浏览本专栏并将 ' 添加00到所有缺少它的值中,我需要从那里获得一些帮助或指导。

关于 SO 的另一个问题看起来可能会有所帮助,但我不确定如何使用它。

4

1 回答 1

3

假设 The tiem 位于上述公式中的单元格 E159 中,您可以将 0 附加到时间的开头。这将修复所有缺少小时的时间,并且不会影响其他线路。

="0"&E159

然后,您可以使用此编辑替换E159原始公式中的所有引用,使其看起来像这样:

=IF(E159="","",((HOUR("0"&E159)+(MINUTE("0"&E159)+(SECOND("0"&E159)/60))/60)))

虽然很难阅读,但它确实有用。

虽然这回答了你的问题。我认为有更好的方法来实现这个公式。

看起来您正在寻找的最终结果是将时间转换为小时,将 mulutes 和秒作为下一个小时的小数。您可以通过执行以下操作来实现:

=E159*24

这将为您提供与原始公式相同的结果。然后将其与我的第一个答案结合起来,得到一个如下所示的公式:

=("0" & E159)*24

这种方法更容易阅读/编辑并提供相同的输出。

为什么这样有效

Excel 将所有日期存储为整数,并将所有时间存储为天的十进制百分比。因此,当 Excel 存储 12 小时时,它会将其保存为 0.5,因为它是半天。通过将时间输出除以 24,我们将整个时间值从天的百分比转换为小时的百分比。

于 2012-08-07T16:04:21.183 回答