使用Excel的MID函数实现度分秒到十进制度数的批量转换
2009-04-17 14:31:13 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄧ粯銇勯幒瀣仾闁靛洤瀚伴獮鍥敍濮f寧鎹囬弻鐔哥瑹閸喖顬堝銈庡亝缁挸鐣烽崡鐐嶆棃鍩€椤掑嫮宓佸┑鐘插绾句粙鏌涚仦鎹愬闁逞屽墰閹虫捇锝炲┑瀣╅柍杞拌兌閻ゅ懐绱撴担鍓插剱妞ゆ垶鐟╁畷銉р偓锝庡枟閻撴洘銇勯幇闈涗簼缂佽埖姘ㄧ槐鎾诲礃閳哄倻顦板┑顔硷工椤嘲鐣烽幒鎴旀瀻闁规惌鍘借ⅵ濠电姷鏁告慨顓㈠磻閹剧粯鈷戞い鎺嗗亾缂佸鏁婚獮鍡涙倷閸濆嫮顔愬┑鐑囩秵閸撴瑦淇婇懖鈺冪<闁归偊鍙庡▓婊堟煛鐏炵硶鍋撻幇浣告倯闁硅偐琛ラ埀顒冨皺閺佹牕鈹戦悙鏉戠仸闁圭ǹ鎽滅划鏃堟偨缁嬭锕傛煕閺囥劌鐏犻柛鎰ㄥ亾婵$偑鍊栭崝锕€顭块埀顒佺箾瀹€濠侀偗婵﹨娅g槐鎺懳熺拠鑼舵暱闂備胶枪濞寸兘寮拠宸殨濠电姵纰嶉弲鎻掝熆鐠虹尨宸ョ€规挸妫濆铏圭磼濡搫顫嶇紓浣风劍閹稿啿鐣烽幋锕€绠婚悹鍥у级瀹撳秴顪冮妶鍡樺鞍缂佸鍨剁粋宥夋倷椤掍礁寮垮┑鈽嗗灣閸樠勭妤e啯鍊垫慨妯煎亾鐎氾拷

今天想往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,这里不考虑四舍五入,只取前面的。
更多精彩
赞助商链接