excel - 控制Excel时间格式输入/输出

标签 excel time-format

背景:我主持本地的慢跑事件已有大约十年了。我负责处理按类别(年龄段+性别、距离)划分的参与者数据(姓名、运动俱乐部、号码布)。主要任务是收集他们的时间并处理该数据(对类别内的运行者进行排序等)。我基本上可以用 Excel 处理这个问题。

问题:输入参赛者比赛时间的理想时间格式是什么?时间的格式为 mm:ss 或(对于较慢的运行者和/或较长的距离)h:mm:ss。 Excel 似乎没有内置格式,其中小时字段是可选的。为了理想地优化我的工作流程,我希望有一个单元格格式,以便输入 47:12 将被解释为 47 分 12 秒,输入的 1:09:38 将被解释为 1 小时 9 分 38 秒。但是,Excel(具有我发现的最适合的单元格格式)将坚持输入 47:12 表示 47 小时 12 分钟。对于超过 1 小时的时间,如果我的意思是秒字段保留零值,我会输入 1:03:00

How to make Excel realize that when the format can handle up to three numbers as inputs, it would, when given only two numbers, move them towards the end?

思考:我“可以”输入 47 分 12 秒,即 0:47:12 ,没问题。但由于大部分时间都在1小时以内,这部分是白费力气。此外,使用这种格式,数据与多余的 0: 一起显示在屏幕上。更糟糕的是(IIRC)那些前导零 也出现在打印版中,对于初级参与者来说,在较短的距离内这很奇怪(甚至是侮辱性的)。

我的技巧:我以 mm,ss 格式输入时间作为一般数字(在这些部分中,逗号用作小数分隔符)。 Excel 可以很好地将这些数据排序为数字。然后,我将该排序列的数据复制到另一个“可打印”版本(格式为文本),其中数据只是复制,但我手动纠正了超过 60 分钟的时间。只要我不着急(我们的事件不完全是波士顿马拉松,比如说,参与者少于 200 人),这种方法就可以正常工作,并且记住隐藏不应该打印的列。这很糟糕,而且当其他官员催促我打印结果时,还会发生意外。

最佳答案

我设法创建了一种格式,其中时间字段可选。它适用于条件格式。首先,您按照标准设置单元格格式,以便获得逗号值形式的时间。之后,您为这些单元格创建条件格式,它有两个规则:

  1. 如果单元格值 > 0.04166667,格式为 hh:mm:ss
  2. 如果单元格值 < 0.04166666 格式为 mm:ss

结果:
47:12
01:09:38
01:00:00

这样你就得到了你真正想要的,并且可以使用原始值进行排序等。

编辑:

对于输入,您需要另外四个列。您可以根据需要输入时间,例如47:12 和 1:09:38。在接下来的三列中,您将这些值拆分为小时、分钟和秒,其中解释限制为 3 小时 (03:00),即 0.125。

因此,这些是拆分列的公式(您的输入位于 B1 中):

时间:=IF(B1>0.125,0,HOUR(B1))
分钟:=IF(B1>0.125,INT(B1)*24+HOUR(B1),MINUTE(B1))
秒:=IF(B1>0.125,MINUTE(B1),SECOND(B1))

最后,将所有值放在第四列中:

=TIME(C1,D1,E1)

并使用上面的条件格式。

关于excel - 控制Excel时间格式输入/输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46053602/

相关文章:

mysql - 如何总结日期和时间?

JavaFX 时钟小部件随机抛出异常

sql - Postgresql: "Offset"从 HH:MM:SS 到 00:HH:MM 的间隔

excel - 由于依赖问题,无法使用spark-excel导出数据框

performance - 提高 VBA 中的循环效率

vba - 在for循环中更新for循环的上限/界限

javascript - 使用 FireFox 下载时无法打开导出为 .xls 的 HTML 表格

VBA - 循环和低效的 If 语句

datetime - 什么是 TAI64 时间格式?

java - 日期时间格式化程序java