excel - 修复 h=0 时格式错误的时间 'hh:nn:ss'

标签 excel vba excel-formula

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

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

如果时间为 :34:15,则会出现错误 (#value),但如果时间为 00:34:15,则没关系。

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

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

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

最佳答案

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

="0"&E159

然后,您可以使用此编辑替换原始公式中的所有 E159 引用,使其如下所示:

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

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

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

看起来您正在寻找的最终结果是将时间转换为小时,其中穆鲁特和秒作为下一小时的十分之一。您可以通过执行以下操作来实现此目的:

=E159*24

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

=("0" & E159)*24

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

为什么这样有效

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

关于excel - 修复 h=0 时格式错误的时间 'hh:nn:ss',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11849687/

相关文章:

excel - 使用 VBA 激活打开的 MS Access 文件以发送 key

c# - 使用 C# 对 Excel 工作表运行 VBA 宏

vba - 使用visual basic删除excel中的列?

mysql - 如何用java在数据库中插入excel数据

excel - 在范围内查找总和结果的行号

vba - 命名图表时出现内存不足错误

excel - 从文件夹中的所有文件复制数据

vba - 用户选择(工作簿和工作表名称)然后复制和粘贴

excel - 从一系列单元格中按特定顺序选择值

excel - 在链接中插入单元格