我正在将一些excel计算转换为Javascript .
我在excel中遇到一个计算,它使用格式为HH:MM:SS的输入值来计算值,这似乎没有意义 .
首先,这是我试图理解的公式:
=MOD((Jataka!$C$60*24*2.5*5*30), 360)
在上面的公式中, Jataka!$C$60
中的单元格的值为 21:11:29
,单元格的单元格格式为自定义 [h]:mm:ss
以下是excel计算的结果,如果细分为较小的步骤:
自 Jataka!$C$60
= 21:11:29
和 24*2.5*5*30
= 9000
(Jataka!$C$60*24*2.5*5*30)
根据excel等于 190723:29:53
如果您随后将包含 190723:29:53
计算结果的单元格的单元格格式更改为 Number
的单元格格式,则根据excel的数字等效于 190723:29:53
为 7946.81
.
如果您使用 7946.81
并使用 360
的除数对其应用excel的MOD函数,则得到 26.81242183
的计算值和最终值 .
换句话说: =MOD(7946.81, 360)
= 26.81242183
以上是excel中的计算结果 .
我想试试这个计算,这是我的思路......
我假设 21:11:29
表示:小时为21,分钟为11,秒为29 .
因此,我将小时分秒更改为十进制等效值 . 十进制的 21:11:29
假设为 21.191388888888888
然后我得到 21.191388888888888
并将 24*2.5*5*30
或 9000
乘以它 . 21.191388888888888
x 24*2.5*5*30
或 9000
= 190722.5
.
此时我注意到 190722.5
的计算与原始 hh:mm:ss
格式和 Number
等效格式的Excel计算不同 .
在上面的Excel计算中,原始 hh:mm:ss
格式为 190723:29:53
. 如果你将 190723:29:53
转换为十进制,你会得到 190723.49805555557
190723.49805555557
与我们对 190722.5
的计算不同 .
根据excel, 190723:29:53
的数字等效格式为 7946.81
.
7946.81
也与 190722.5
的计算不同 .
所以即使在这一点上,我们已经得到了不同的中间结果......这是什么原因???
excel如何将 21:11:29
之类的值转换为 Number
????
如果我通过执行360的MOD继续我的计算,我得到 =MOD(190722.5, 360)
= 282.5
.
但是在excel文件中,我的计算结果是 26.81
,它基于: =MOD(7946.81, 360)
= 26.81242183
我在这里不理解什么?我错过了什么步骤?
excel如何将 21:11:29
之类的值转换为 Number
????
即使我首先将 21:11:29
转换为excel中的 Number
,我也会获得 0.88
的值 .
我相信这些是解决这个问题的两个重要问题:
1.)什么公式擅长将 21:11:29
乘以 Number
?
2.)以及excel如何将格式为HH:MM:SS的值转换为 21:11:29
到 Number
?
1 回答
21:11:29
或TIME(21, 11, 29)
不是21.191388888888888
.Excel中的日期是 1 ,对于1899年12月31日至1899年 . 今天恰好是42,413 . 时间被认为是一天的小数部分,所以今天中午是42,413.5,今天晚上8点是42,413.83333 .
你的21:11:29(没有日期成分)的时间等于~0.882974537,而不是21.191388888888 . 如果将它乘以24(一天中的小时数)则为21.191388888888,因为您已将小时数从一小时(¹/ 24)转换为整数(1) .
希望这将有助于使其易于理解 . tbh,我无法弄清楚你为什么乘以9000,也不知道你的最终目的是什么 .