度分秒的换算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

度分秒转换原理

度分秒的换算就像时间中的“小时、分钟、秒”,各个单位中的进率都是60

1度=60分;1分=60秒;1度=60分=60*60=3600秒

如:4度=?分=?秒

解:4度=4*60=240分=240*60=14400秒

记住:度是大单位,秒是小单位,从大化小就乘以进率,从小到大就除以进率。

如:45′18〃等于多少度(应化分和秒为度)

45/60+18/3600=3/4+1/200=0.755°

角度间相除化成同单位

45°/135°=1/3

20′25〃/20〃=(20*60〃+25〃)/20〃=61.25

角度除一个数

120°15′/3=120 °/3+15′/3=40°5′

加减要相单位分别加减并按60进率进位或借位。

EXCEL中度与度分秒换算

一、度分秒值换算为度

首先要将单位符号都去掉,形成 1112233 的形式,分秒小于十的要在其前补0,必须如此,不然无法判断分与秒的位置。

假设原始数据在A列,第一个数据在A2单元格。

在你需要放入转换结果的一个单元格内(最好是与A2同一行,这样有大量原始数据要转换时,直接下拉就可以转换所有数据),输入:

=value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2),1,3))+value(MID(IF(LEN(A2)=6,CO NCATENATE("0",A2),A2),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位数,如果这样整个数就是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,不满足则执行value_if_false。

LEN:为返回字符数的函数。

CONCATENATE:为合并字符函数,写法为:CONCATENATE(text1,text2,...),如要直接使用文本字符,就在其上加英文引号。

二、度转换为度分秒

假设原始数据在A列,第一个数据在A2单元格。

在你需要放入转换结果的一个单元格内(最好是与A2同一行,这样有大量原始数据要转换时,直接下拉就可以转换所有数据),输入:

=CONCATENATE(INT(A2),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))*60,0)),ROUND(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60,0)))

回车即可。

解释如下:

以112.1234567度为例。

使用 CONCATENATE 文本组合函数,将分别计算出的度、分、秒组合在一起(其用法参照前一帖)。

本例中的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))*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 是取整函数,可对任意实数向下取整为最接近的整数,向下的意思为往小的方向,如=INT(3.38)返回3,=INT(-3.38)返回-4。该函数与 TRUNC 函数都有取整的功能,TRUNC 函数可以按需要截取数字的小数部分,而 INT 函数则将数字向下舍入到最接近的整数。INT 和TRUNC 函数在处理负数时不同点:TRUNC(-4.3,0)返回-4,而INT(-4.3)返回-5。

ROUND 为四舍五入函数,本例中秒值不再留有小数,因此将其四舍五入了,这就是计算分值的时候用INT 函数,而计算秒值的时候用ROUND 函数的原因。该函数的写法为ROUND(number,num_digits),其中的number是待处理的数值(也可是表达式的结果),num_digits是保留的小数位数。本例中的小数保留

三、求度分秒范围转度的中心坐标值

这里只算经度或纬度的一项,要算另一项,只需改动原始数据位置,重复操作即可。

假设原始数据在A列和B列,B列数据比A列数据大。第一个数据项在A2和B2。

每个值的算法原理是:

将经纬度都设立成7位,将度、分、秒都折算成度,转换方法参照前帖。用度来计算的好处是不会产生度分秒的进位问题,而同时度也可在上图时使用,若想将度转换成度分秒,就参照本人的前一帖。

结果的算法是(B2-A2)/2+A2。

在你需要放入转换结果的一个单元格内(最好是与A2、B2的同一行,这样有大量原始数据要转换时,直接下拉就可以转换所有数据),输入:

=((value(MID(IF(LEN(B2)=6,CONCATENATE("0",B2),B2),1,3))+value(MID(IF(LEN(B2)=6,CONCATENATE("0",B2),B2),4,2))/60+value(MID(IF(LEN(B2)=6,CONCATENATE("0",B2),A2),6,2))/3600)-(value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2),1,3))+value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2),4,2))/60+value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2),6,

2))/3600))/2+value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2),1,

3))+value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2),4,2))/60+value(MID(IF(LEN(A2)=6,CONCATENATE("0",A2),A2),6,2))/3600

相关文档
最新文档