资源描述:
《excel中度与度分秒换算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、EXCEL中度与度分秒换算一、度分秒值换算为度首先要将单位符号都去掉,形成1112233的形式,分秒小于十的要在其前补0,必须如此,不然无法判断分与秒的位置。假设原始数据在A列,第一个数据在A2单元格。在你需要放入转换结果的一个单元格内(最好是与A2同一行,这样有大量原始数据要转换时,直接下拉就可以转换所有数据),输入:=value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2),1,3))+value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2
2、),4,2))/60+value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2),6,2))/3600回车即可。下面解释转换方法和函数意义。以1112233为例。算法是111+(22/60)+(33/3600),即把分、秒都算成度后相加。MID:意为选择指定的字符,具体写法为MID(数据,顺位,字符数),先指定1-3位(度位),再指定4-5位(分位)/60,再指定6-7位(秒位)/3600。value:意为转换成为数值,这样才能进行运算。关键问题在于,度有可能是2位数,如果这样整个
3、数就是6位,上例算式中的IF(LEN(A2)=6,CONCATENATE("0",A2),A2)就是处理这样的问题的。意思为如果整个是6位数,就在其前补个0,若不是6位,就直接用原来的数值(呵呵,在中国及周边没有6位和7位以外的经纬度,现在这个算法适用于6位和7位的经纬度)。IF:条件函数,用法:IF(logical_test,value_if_true,value_if_false),其中logical_test为判断条件,在本例中为LEN(A2)=6,满足条件执行value_if_true,不满足则执行valu
4、e_if_false。LEN:为返回字符数的函数。CONCATENATE:为合并字符函数,写法为:CONCATENATE(text1,text2,...),如要直接使用文本字符,就在其上加英文引号。二、度转换为度分秒假设原始数据在A列,第一个数据在A2单元格。在你需要放入转换结果的一个单元格内(最好是与A2同一行,这样有大量原始数据要转换时,直接下拉就可以转换所有数据),输入:=CONCATENATE(INT(A2),IF(INT((A2-INT(A2))*60)<10,CONCATENATE("0",INT((A
5、2-INT(A2))*60)),INT((A2-INT(A2))*60)),IF(ROUND(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60,0)<10,CONCATENATE("0",ROUND(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60,0)),ROUND(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60,0)))回车即可。解释如下:以112.1234567度为例。使用CONCATENATE文本组合函数
6、,将分别计算出的度、分、秒组合在一起(其用法参照前一帖)。本例中的INT(A2),取的是112,即度值;IF(INT((A2-INT(A2))*60)<10,CONCATENATE("0",INT((A2-INT(A2))*60)),INT((A2-INT(A2))*60))取的是分值;IF(ROUND(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60,0)<10,CONCATENATE("0",ROUND(((A2-INT(A2))*60-INT((A2-INT(A2))*60)
7、)*60,0)),ROUND(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60,0)),取的是秒值。比较关键的一点是,分、秒在计算完后可能会小于10,这样就会出现本应为7位的度分秒值成了6位或5位,因此在计算分和秒时,加了一个条件语句,即若其值小于10,就在前面补个0。INT((A2-INT(A2))*60)<10是判断分值是否小于10;ROUND(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60,0)<10是判断秒值是否小于10。INT是取整函数
8、,可对任意实数向下取整为最接近的整数,向下的意思为往小的方向,如=INT(3.38)返回3,=INT(-3.38)返回-4。该函数与TRUNC函数都有取整的功能,TRUNC函数可以按需要截取数字的小数部分,而INT函数则将数字向下舍入到最接近的整数。INT和TRUNC函数在处理负数时不同点:TRUNC(-4.3,0)返回-4,而INT(-4.3)返回-5。R