在Excel表中进行度分秒单位转换
前言
日前在做项目的时候遇到了一个度分秒单位转换小问题,查询到网上的Excel度分秒单位转换的教程都是依据单元格中某个字符以固定长度截取字符,这样带来的后果就是缺位的情况下,会出现截取字符与期望值不符而造成结果出错,因此经过重新梳理教程,彻底解决了这个问题。
实现目标:
转换为
思路:以逗号为分隔符,分别对前后两部分进行转换
一、提取逗号以前的字符(纬度)
=LEFT(J2,FIND(",",J2)-1)
二、提取逗号以后的字符(经度)
=RIGHT(J2,LEN(J2)-FIND(",",J2))
三、x°,x',x"度分秒之前数字的提取
①度
=LEFT(O2,FIND("°",O2)-1)
②分
=MID(O2,FIND("°",O2)+1,FIND("′",O2)-FIND("°",O2)-1)
③秒
=MID(O2,FIND("′",O2)+1,FIND(CHAR(34),O2)-FIND("′",O2)-1)
提示:CHAR(34)实际为""",但Excel函数识别不了,提示函数错误,需要用字符代码进行替换
拓展:=FIND(CHAR(34),A1)
CHAR()是CODE()的反函数。
CODE()用来找字符的值,CHAR()用值来找字符。
CHAR(34):34就是"的code
前言
日前在做项目的时候遇到了一个度分秒单位转换小问题,查询到网上的Excel度分秒单位转换的教程都是依据单元格中某个字符以固定长度截取字符,这样带来的后果就是缺位的情况下,会出现截取字符与期望值不符而造成结果出错,因此经过重新梳理教程,彻底解决了这个问题。
实现目标:
转换为
思路:以逗号为分隔符,分别对前后两部分进行转换
一、提取逗号以前的字符(纬度)
=LEFT(J2,FIND(",",J2)-1)
二、提取逗号以后的字符(经度)
=RIGHT(J2,LEN(J2)-FIND(",",J2))
三、x°,x',x"度分秒之前数字的提取
①度
=LEFT(O2,FIND("°",O2)-1)
②分
=MID(O2,FIND("°",O2)+1,FIND("′",O2)-FIND("°",O2)-1)
③秒
=MID(O2,FIND("′",O2)+1,FIND(CHAR(34),O2)-FIND("′",O2)-1)
提示:CHAR(34)实际为""",但Excel函数识别不了,提示函数错误,需要用字符代码进行替换
拓展:=FIND(CHAR(34),A1)
CHAR()是CODE()的反函数。
CODE()用来找字符的值,CHAR()用值来找字符。
CHAR(34):34就是"的code
注:如果Excel提示出错,则逐步检查,如果确定位置为CHAR(34),则可能是因为用户的"的符号编码问题,通过CODE函数检查"的编号,即可继续通过CHAR函数引入相应的编号。
④度分秒组合转换算法
=LEFT(O2,FIND("°",O2)-1)*1+MID(O2,FIND("°",O2)+1,FIND("′",O2)-FIND("°",O2)-1)/60+MID(O2,FIND("′",O2)+1,FIND(CHAR(34),O2)-FIND("′",O2)-1)/3600
四、将步骤三分别组合步骤一和步骤二
①经度
=LEFT(RIGHT(J2,LEN(J2)-FIND(",",J2)),FIND("°",RIGHT(J2,LEN(J2)-FIND(",",J2)))-1)*1+MID(RIGHT(J2,LEN(J2)-FIND(",",J2)),FIND("°",RIGHT(J2,LEN(J2)-FIND(",",J2)))+1,FIND("′",RIGHT(J2,LEN(J2)-FIND(",",J2)))-FIND("°",RIGHT(J2,LEN(J2)-FIND(",",J2)))-1)/60+MID(RIGHT(J2,LEN(J2)-FIND(",",J2)),FIND("′",RIGHT(J2,LEN(J2)-FIND(",",J2)))+1,FIND(CHAR(34),RIGHT(J2,LEN(J2)-FIND(",",J2)))-FIND("′",RIGHT(J2,LEN(J2)-FIND(",",J2)))-1)/3600
②纬度
=LEFT(LEFT(J2,FIND(",",J2)-1),FIND("°",LEFT(J2,FIND(",",J2)-1))-1)*1+MID(LEFT(J2,FIND(",",J2)-1),FIND("°",LEFT(J2,FIND(",",J2)-1))+1,FIND("′",LEFT(J2,FIND(",",J2)-1))-FIND("°",LEFT(J2,FIND(",",J2)-1))-1)/60+MID(LEFT(J2,FIND(",",J2)-1),FIND("′",LEFT(J2,FIND(",",J2)-1))+1,FIND(CHAR(34),LEFT(J2,FIND(",",J2)-1))-FIND("′",LEFT(J2,FIND(",",J2)-1))-1)/3600
④度分秒组合转换算法
=LEFT(O2,FIND("°",O2)-1)*1+MID(O2,FIND("°",O2)+1,FIND("′",O2)-FIND("°",O2)-1)/60+MID(O2,FIND("′",O2)+1,FIND(CHAR(34),O2)-FIND("′",O2)-1)/3600
四、将步骤三分别组合步骤一和步骤二
①经度
=LEFT(RIGHT(J2,LEN(J2)-FIND(",",J2)),FIND("°",RIGHT(J2,LEN(J2)-FIND(",",J2)))-1)*1+MID(RIGHT(J2,LEN(J2)-FIND(",",J2)),FIND("°",RIGHT(J2,LEN(J2)-FIND(",",J2)))+1,FIND("′",RIGHT(J2,LEN(J2)-FIND(",",J2)))-FIND("°",RIGHT(J2,LEN(J2)-FIND(",",J2)))-1)/60+MID(RIGHT(J2,LEN(J2)-FIND(",",J2)),FIND("′",RIGHT(J2,LEN(J2)-FIND(",",J2)))+1,FIND(CHAR(34),RIGHT(J2,LEN(J2)-FIND(",",J2)))-FIND("′",RIGHT(J2,LEN(J2)-FIND(",",J2)))-1)/3600
②纬度
=LEFT(LEFT(J2,FIND(",",J2)-1),FIND("°",LEFT(J2,FIND(",",J2)-1))-1)*1+MID(LEFT(J2,FIND(",",J2)-1),FIND("°",LEFT(J2,FIND(",",J2)-1))+1,FIND("′",LEFT(J2,FIND(",",J2)-1))-FIND("°",LEFT(J2,FIND(",",J2)-1))-1)/60+MID(LEFT(J2,FIND(",",J2)-1),FIND("′",LEFT(J2,FIND(",",J2)-1))+1,FIND(CHAR(34),LEFT(J2,FIND(",",J2)-1))-FIND("′",LEFT(J2,FIND(",",J2)-1))-1)/3600
---2018年6月于东莞麻涌