Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 修复格式不正确的时间';hh:nn:ss';当h=0时_Excel_Vba_Excel Formula - Fatal编程技术网

Excel 修复格式不正确的时间';hh:nn:ss';当h=0时

Excel 修复格式不正确的时间';hh:nn:ss';当h=0时,excel,vba,excel-formula,Excel,Vba,Excel Formula,我正在做一份报告,计算人们决定工资的时间。我们从服务器中提取报告并将其粘贴到Excel中进行计算。我在提取数据时遇到了一个问题:如果他们登录的时间不到一小时,我们的公式就不起作用了: =IF(E159=“”,”,((小时(E159)+(分钟(E159)+(秒(E159)/60))/60)) 如果时间是:34:15,则会出现错误(#value),但如果时间是00:34:15,则没有问题 设置单元格格式似乎不起作用 我想浏览一下本专栏,将00添加到所有缺少它的值中,我需要一些帮助或指导 看起来它可能

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

=IF(E159=“”,”,((小时(E159)+(分钟(E159)+(秒(E159)/60))/60))

如果时间是
:34:15
,则会出现错误(
#value
),但如果时间是
00:34:15
,则没有问题

设置单元格格式似乎不起作用

我想浏览一下本专栏,将
00
添加到所有缺少它的值中,我需要一些帮助或指导


看起来它可能会有帮助,但我不确定如何使用它。

假设tiem位于上述公式中的单元格E159中,您可以在时间开始处附加一个0。这将修复所有缺少小时的时间,并且不会影响其他行

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

=IF(E159="","",((HOUR("0"&E159)+(MINUTE("0"&E159)+(SECOND("0"&E159)/60))/60)))
虽然它很难阅读,但它确实起到了作用

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

看起来您要查找的最终结果是将时间转换为小时,并将mulutes和seconds作为下一个小时的小数。您可以通过执行以下操作来实现此目的:

=E159*24
这将得到与原始公式相同的结果。 然后把它和我的第一个答案结合起来,得到一个如下公式:

=("0" & E159)*24
这种方法更易于阅读/编辑,并提供相同的输出

为什么这样做

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

诀窍是否是一种轻描淡写的难以理解的说法,或者不使用宏就无法解决。这是一个很棒的方式。纯正亲切的先生,试试我贴的最后一个公式吧!它做同样的事情,但更容易阅读。很高兴能帮上忙。原始公式将8:30转换为8.5,这需要24的乘法而不是除法。此外,您还可以将零连接到时间值的开头,而不产生任何效果,因此您实际上不需要IF,您可以在所有情况下连接零,即
=(0&E159)*24
@barryhoudini感谢您的关注和见解。我相应地更新了我后来的答案。没问题,我也编辑了最后一个公式,因为你仍然有as/24