Conversion of simulation time
我正在运行一个模拟(时间长度:100 秒),结果导出到包含两列的 csv。第一个是以秒为单位的"时间"。它包含十进制数字。模拟步骤是可变的。我需要将十进制数转换为 hh:mm:ss 格式。
在 Excel 中将单元格格式从数字更改为时间不是解决方案,因为丢失了模拟步骤。
1 2 3 4 5 6 7 8 9 10
| 0 00:00:00
0,02 00:28:48 WRONG
0,04 00:57:36 WRONG
0,066 01:35:02 WRONG
0,0998 02:23:43 WRONG
0,14374 03:26:59 WRONG
0,200862 04:49:14 WRONG
0,2751206 06:36:10 WRONG
0,37165678 08:55:11 WRONG
0,497153814 11:55:54 WRONG |
我希望格式 HH:MM:SS 保持两个模拟瞬间之间的步长
1 2 3 4 5 6 7 8
| 0 00:00:00
0,02 00:00:00
0,04 00:00:00
........
1,007964 00:00:01
1,090020 00:00:01
......
100 00:01:40 |
- 您能否将您的预期结果编辑到帖子中?或者,至少,你得到的输出的细节是错误的?您可能想阅读有关如何编写最小可重现示例的指南
-
是的,如果您的第一列是时间,您使用什么单位 - 小时、分钟或秒?或者是其他东西?
-
秒。我编辑了我的问题
-
如果您在几秒钟内工作,不应该是 0,02 = 00:00:02 吗?
-
@Mikku 或者 28 分 48 秒,如果你在几天内工作,就像 Excel 一样
-
@DinoC .. 使用下面答案中的公式。
Excel 将日期/时间存储为双精度 - 整数部分是自 1899 年 12 月 31 日以来的天数 - 所以 1 变为 1900-01-01,60 变为 1900-02-29,等等。小数部分是时间,作为一整天的一小部分 - 0.5 是中午 12 点。
因此,0.1 的值是 2 hours, 24 minutes,而不是 100 milliseconds
这意味着您的代码为您编写的内容提供了完全正确的输出,但不是您想要编写的内容。
您实际上想要的是 TIME 函数 - 它接受小时、分钟和秒,并输出如下所示的时间值:
1 2 3 4 5
| =TIME(01, 23, 45)
1:23 AM
=TEXT(TIME(01, 23, 45),"hh:mm:ss")
01:23:45 |
DATE 和 TIME 函数也"溢出"。也就是说=TIME(0, 0, 65)和写=TIME(0, 1, 5)一样,都给1 minute, 5 seconds.
它们也"下溢",所以 TIME(0, 2, -55) 也会给出 1 minute, 5 seconds (并且 =DATE(1900,3,0) 是 1900-02-29 而 =DATE(1901,3,0) 是 1901-02-28)
- 由于某种原因,输出 =TEXT(TIME(1;10;50);"hh:mm:ss") 是 hh:10:50。我错过了什么?
-
@DinoC 你使用什么语言设置? hh 可能不是您的小时代码。您可以删除 TEXT 位并将单元格格式化为时间
-
谢谢时间杀手。我只记得我住在瑞典,小时被称为"tid"。我用 tt:mm:ss 代替 hh:mm:ss,;-)
使用公式:
=TIME(0,0,SUBSTITUTE(E12,",","."))
如果格式使用 , 而不是 .使用功能。 =TIME(0,0,E12)
相应地更改单元格引用。
结果:
-
2 这里的小问题 - 一些国家使用 , 作为小数分隔符,而不是 . - 我怀疑 OP 的设置正在使用该格式,所以你的 SUBSTITUTE 实际上会破坏它。而且,当 OP 指定它应该显示 00:00:00 直到 1.0 时,您的代码会将 0,02 显示为 00:00:02
-
=TIME(0;0;E12) 给出 12:00 AM,其中 E12=0,02。
-
@DinoC ..您还需要将该单元格的格式更改为 Time