将LAT LONG坐标从string转换为Elapsed Time值

我可以从代表坐标的工作中检索数据库中的值。 我使用SQL来检索数据并在Excel中打开结果。 它们被存储为度数格式的坐标,例如LAT的DDMMSS和LONG的DDDMMSS。

Excel工作表创build时标有LAT和LONG两列。 但是,这些值被格式化为常规,所以Excel将它们视为string。 例如LAT的987654和LONG的9876543

我需要数据作为时间值来执行大圆距离计算,如下所述:

http://www.cpearson.com/excel/LatLong.aspx

我设法将string值转换为时间值通过使用:

=TIME(VALUE(MID(A1,1,2)),VALUE(MID(A1,3,2)),VALUE(MID(A1,5,2))) 

但是HH值不能保持。

例如544039变成06:40:39

54成为06,因为54/24 = 2.25和0.25 * 24 = 6

但是我需要把它保持为54而不是06。

我相信Excel会以下面的格式称为“已用时间”:

 [hh]:mm:ss 

如何正确地将544039从string值转换为经过时间值; 54:40:39?

任何帮助,将不胜感激。 我打开运行VB脚本,如果需要的话。

我觉得你的困惑是,如果input的值是“544039”,它不能是HHMMSS,但实际上是DegreesMinutesSeconds。 将inputstring的MinutesSeconds部分转换为分数度数,并存储结果小数点angular度,即“544039”变为54.6775,可以将其存储为数字。 看到这篇文章如何做转换。

此外,Excel将date存储为小数,所以执行此转换,然后将结果格式化为已用时间将会产生所需的效果。 尝试手动input时间,然后将其格式更改为十进制,你会明白我的意思。

我发现一个很好的解决scheme,将其转换为必要的数值在这里:

http://www.excelbanter.com/showthread.php?t=235046

由Bernard V Liengme提交的答复,所以信用卡给他!

代码如下:

 =(INT(A1/10000)/24)+(MOD(INT(A1/100),100)/(24*60))+(MOD(A1,100)/(24*60*60)) 

感谢所有回答的人,这有助于指导我进一步的search,并教会我一些新的东西。

干杯。