我提取了大量以 h:mm:ss 格式输入的数据,当时间少于一小时时,它会显示为 :59:59,而我需要它显示为 0:59:59。有没有办法设置一个可以自动执行此操作的程序,这样我就不需要进入每个单元格并添加 0 了?
格式已经是 h:mm:ss,如果少于一小时,则不会为 h 添加任何内容。我尝试过“设置单元格格式”>“自定义”>“h:mm:ss”和“设置单元格格式”>“自定义”>“[h]:mm:ss”,但它仍然显示 :19:53,而我需要的是 0:19:53
下面是我刚刚提取数据的几个示例:
:19:05 = :19:05
1:04:44 = 1:04:44 AM
我尝试了多种时间格式,但它仍然保持为:19:05
我从一个名为 CMS 的程序中提取报告中的数据,当粘贴到 excel 中时,任何少于 1 小时的数据都会以自然文本形式显示(缺少小时槽)。任何超过一小时的数据都以 h:mm:ss, 8:30:09 = 8:30:09 AM 的形式显示。当我手动将 0 添加到需要的单元格时,它会从 :18:26 更改为 12:18:26 AM,并在单元格中显示为 0:18:26
导致问题的是显示格式,当 : 为空白时,我需要强制在 : 前显示 0。添加 0 后,一切正常,我的条件格式可以正常工作。
答案1
我能够复制您的问题。如果粘贴的时间值在小时位置没有任何内容,则输入将被解释为文本并按输入的方式显示。无论单元格的格式如何,Excel 都不会将其接受为时间值。这是一个解决方案(不是很优雅,但有效)。
解决方案使用转换单元格。假设您的时间条目粘贴在 A 列中。您不使用公式中的 A 列值,而是使用另一列(例如 B 列)的转换值。因此,如果第一个数据值在 A2 中,则单元格 B2 将是:
=IF(ISTEXT(A2),TIMEVALUE(0&A2),A2)
根据需要将其复制到列中。由于缺少小时值会将条目转换为文本,因此会对此进行测试。如果是这种情况,它会附加前导零并将字符串转换为时间值。将单元格格式化为所需的时间格式(如 h:mm:ss)。然后使用此值代替输入数据。
答案2
希望您可以通过选择整个列并应用以下设置来实现这一点:
选择您想要采用 0:59:59 格式的列 > 右键单击并选择“设置单元格格式”> 自定义 > 选择 h:mm:ss。这应该会按预期显示结果。