在Microsoft Excel Visual Basic中将DMS格式转换为Decimal的函数

时间:2017-08-14 16:43:05

标签: excel-vba decimal coordinates dms vba

我在Excel女士中使用Visual Basic时遇到问题。我有一种DMS格式(经度和纬度)的坐标数据,但它不是通常的格式。数据看起来像这样:

 E 103 29 12.4562 
 W 3 9 1.4562 
 N 16 5 32.4333 
 S 16 5 2.4333

我想将其转换为标准的十进制格式。但是,我以前从未使用过Visual Basic。 E,N和W,S的约定分别为1和-1。我期待该数据列表的输出是

 103.4867934
 -3.1504045
 16.09234258
 -16.08400925

我希望有人可以制作一个可视化的基本代码来转换这些数据,因为我有很多像这样的数据而我无法手动转换它。

感谢。

1 个答案:

答案 0 :(得分:0)

代替VBA,您可以使用以下公式:

=--(INDEX({"+","+","-","-"},MATCH(LEFT(A1,1),{"E","N","W","S"},0))&MID(A1,3,FIND(" ",MID(A1,3,LEN(A1))))+MID(A1,FIND("}}}",SUBSTITUTE(A1," ","}}}",2))+1,2)/60+MID(A1,FIND("}}}",SUBSTITUTE(A1," ","}}}",3))+1,99)/3600)

enter image description here