2016-02-14 128 views
0

我正在将一些Excel计算转换为Javascript。使用HH:MM进行Excel计算:SS:

我在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:2924*2.5*5*30 = 9000

(Jataka!$C$60*24*2.5*5*30)根据Excel中,根据到Excel数等效的190723:29:53等于190723:29:53

如果随后使保持着的190723:29:53计算的Number信元格式的结果的单元格的单元格格是​​。

如果你拿​​并将excel的MOD函数应用于它,除数为360,则得到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*309000乘以它。 21.191388888888888 x 24*2.5*5*309000 = 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是​​。

​​也是从190722.5出计算不同。

因此,即使在这一点上,我们已经得到不同的中间结果.... ,这是什么原因???

如何Excel的转换像21:11:29Number值????

如果我继续我的计算做360的MOD我得到 =MOD(190722.5, 360) = 282.5

在我立足我的计算结果中的Excel文件

不过是一种基于26.81上: =MOD(7946.81, 360) = 26.81242183

什么我不理解吗? 我错过了什么步骤?

如何Excel的转换像21:11:29Number值????

即使我首先将21:11:29转换为excel中的Number,我得到的值为0.88

我相信这是解决这个问题的两个重要问题:

1)不使用Excel公式什么用Number21:11:29

2.)以及excel如何将格式为HH:MM:SS的值转换为21:11:29Number

回答

2

因此更改小时分秒为十进制等价物。十进制21时十一分29秒被假设是21.191388888888888

21:11:29TIME(21, 11, 29)是NOT 21.191388888888888

在Excel中的日期是过去每天1899年12月31日。今天恰好是42,413。时间被认为是一天中的一个小数部分,所以今天中午时分是42,413.5,今天晚上8:00时是42,413.83333。

你的21点11分29秒的时间(没有日期分量)等于〜0.882974537,不21.191388888888。如果将它乘以24(一天中的小时数),则它是21.191388888888,因为您已将小时数从一天中的小数(1/24)转换为整数(1)。

希望这可以帮助理解。 tbh,我无法弄清楚为什么你会乘以9000,也不知道你的最终目的是什么。

+0

嗨,你有一个Javascript函数的代码片段,它返回一个Excel日期和时间的日期编号吗?我在哪里可以找到它?谢谢... – preston

+1

要处理Javascript时间作为原始数据与Excel日期和时间,您将需要转换。 Javascript时间更接近POSIX时间。有关转换因子的解释,请参阅[将Unix时间戳转换为dd/mm/yyyy hh:mm:ss](http://stackoverflow.com/questions/33773149#33773295)。 Javascript的附录是在评论中。 – Jeeped