将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,并教会我一些新的东西。
干杯。