使用Excel的MID函数实现度分秒到十进制度数的批量转换

4/17/2009来源:Excel教程人气:10496

今天想往ArcMap 9.2中导入一系列的点坐标数据,原始数据是度分秒格式的,ArcMap不认,查找帮助文件得知ArcMap只能识别十进制的度格式的数据。第一想法就是去网上找类似的软件,但是下回来一看,只能一次转换一个点,而且还要手动输入,但我有近100个点,因此只能找其它办法,后来看到有人提示说Excel的MID函数或许可以,于是就自己试了一下。

MID函数用法:=mid(A1,a,b)。这里A1代表数据所在单元格,a表示数据其实位置,b表示长度。如A2单元格中有一句话“度分秒与十进制转换”,我们在A3中输入“=mid(A2,2,3)”,那么得到的结果将是“分秒与”。

熟悉了语法后,我们就可以开始编辑了。假设A1栏是N29°14′45″,那么我们想输出十进制,结果自然是29+14/60+45/3600,这时候我们可以这样写语句“=mid(A1,2,2)+mid(A1,5,2)/60+mid(A1,8,2)/3600”。同样,如果是E102°45′25″,可以写成“=mid(A1,2,3)+mid(A1,6,2)/60+mid(A1,9,2)/3600”,之后按着鼠标往下一拖,剩下的就可以自动完成了。当然,如果字符的长度不同,例如可能有的是E99°,有的是E101°,这样你需要略作修改,或者最后″的地方如果不是整数,那也要统一小数位长度才可以。

附:

N29°14′45″          =mid(A1,2,2)+mid(A1,5,2)/60+mid(A1,8,2)/3600

E102°45′25″        =mid(A1,2,3)+mid(A1,6,2)/60+mid(A1,9,2)/3600

E99°45′25″          =mid(A1,2,2)+mid(A1,5,2)/60+mid(A1,8,2)/3600

E99°45′25.2394″ =mid(A1,2,2)+mid(A1,5,2)/60+mid(A1,8,7)/3600   

注意,最后的7和″的位数有关,含小数点,如25.2394含小数点正好7位,当然如果精度要求不这么高,或是为了统一格式,那么可以用(A1,8,5),这个时候就只会取25.23,这里不考虑四舍五入,只取前面的。