我可以在代表坐标的工作中从我们的数据库中检索值。我使用SQL来检索数据并在Excel中打开结果。它们被存储为以度数格式出现的坐标,例如用于LAT的DDMMSS和用于LONG的DDDMMSS。
使用标记为LAT和LONG的两列创建Excel工作表。但是,值的格式为General,因此Excel将它们视为字符串。例如LAT为987654,LONG为9876543
我需要数据作为时间值来执行Great Circle Distance计算,如下所述:
http://www.cpearson.com/excel/LatLong.aspx
我设法通过使用:
将字符串值转换为时间值=TIME(VALUE(MID(A1,1,2)),VALUE(MID(A1,3,2)),VALUE(MID(A1,5,2)))
但是不保持HH值。
e.g。 544039变为06:40:39
54变为06,因为54/24 = 2.25和0.25 * 24 = 6
但我需要保持54而不是06.
我相信Excel会将其称为“Elapsed Time”,格式如下:
[hh]:mm:ss
如何正确地将544039从字符串值转换为Elapsed Time值; 54:40:39?
任何帮助将不胜感激。如果需要,我愿意运行VB脚本。
答案 0 :(得分:2)
我认为你的混淆是输入值为“544039”时,它不能是HHMMSS,而实际上是DegreesMinutesSeconds。将输入字符串的MinutesSeconds部分转换为小数度数会更好,并且存储结果小数角度,即“544039”变为54.6775,可以存储为数字。有关如何进行转换,请参阅this article。
此外,Excel将日期存储为小数,因此执行此转换然后将结果格式化为已用时间将产生您想要的效果。尝试手动输入时间,然后将其格式更改为十进制,您将看到我的意思。
答案 1 :(得分:0)
我找到了一个很好的解决方案,可以将其转换为必要的数值:
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))
感谢所有回复的人,它帮助指导了我的进一步搜索,并教会了我一些新的东西。
干杯。