怎样在excel表格中设置,输入10.4852代表10°48′52〃
推荐答案
数据在a1
b1输入 =left(a1,2)&"°"&mid(a1,4,2)&"′"&mid(a1,6,2)&"〃"
或者可以这样
选中数据-点右健设置单元格格式-自定义输入
0."°"00"′"00"〃"
确定
最好复制我的,ctrl+c,ctrl+v
最佳答案:
=MID(A1,1,FIND(".",A1)-1)&"°"&MID(A1,FIND(".",A1)+1,2)&"′"&MID(A1,FIND(".",A1)+3,2)&"〃"
测试结果:
10.9826 10°98′26〃
191.16521 191°16′52〃
87.01263 87°01′26〃
数据在A列,在B1输入公式=TEXT(A1*10000,"00°00′00〃")公式向下复制。
- 74° 10'21.50"
转换成 带正负 DD.DDDDDD
最佳答案
=IF(LEFT(A1)="-","-","")&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(LEFT(A1)="-",MID(A1,2,99),A1)," ",""),"°",":"),"'",":"),"""","")*24
计算公式,可以精确得计算出结果,如下:
fx=TEXT(INT(A2),"0")&“."&TEXT(INT((A2-INT(A2))*60),"00")&TEXT(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60*x,"000000")
其中A2代表十进制度数所在的单元格
调节x的位数,可以取得秒的不同精度,如10000,会取到秒的小数点后四位;1000000,取到后六位。
如:130.03145632,输出130.0153242752
如果要加上度、分、秒等汉字或符号,只需在中间&符号处稍作文章,如:
f(x)=TEXT(INT(A2),"0")&"°"&TEXT(INT((A2-INT(A2))*60),"00")&"′"&TEXT(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60,"00.0000")&"〃"
此处需注意后面秒的格式。精度调节此时要在后面的"00.0000"格式字符串中调节。
如:130.03145632,输出130°01′53.2428〃
格式-单元格-数字-自定义-类型:
[h]°mm′ss〃
输入的时候要用冒号“:”隔开
若要实现快速输入
可用下面的方法
在A1输入下面的公式往下拉:
=VALUE(CONCATENATE(MID(B1,1,2),":",MID(B1,3,2),":",MID(B1,5,2)))
B列设置为文本格式
每个单元格输入六位数
不足的补0
第3第5位的数要小于6
EXCEL中度与度分秒换算
(2006-12-31 16:30:47)
转载
分类: 电脑路基础
一、度分秒值换算为度
首先要将单位符号都去掉,形成 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),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
回车即可。
也就是将123.456度转换成123度 ***分 **** 秒的方法,我想要请教的是用函数公式计算的方法和表示方法,是将123.456度转换成123度 ***分 **** 秒。
假设数据在A1,在B1输入
=INT(LEFT(A1,LEN(A1)-1))&"度"&INT(MOD(LEFT(A1,LEN(A1)-1)*60,60))&"分"&INT(MOD(LEFT(A1,LEN(A1)-1)*3600,60))&"秒"
就可以了。
返回 123度27分21秒
123+27/60+21/3600=123.455833333333,约等于123.456
比如单元格A1中输入 79°31′29〃
单元格A2中输入 237°42′47〃
要求单元格A3公式为=A1+A2,计算结果应该显示317°14′16〃
写这个公式我都有点烦了:(,不知道还有没有更好的方法,也许还是用VBA方便点吧。
=LEFT(A1,FIND("°",A1)-1)+LEFT(B1,FIND("°",B1)-1)+INT((MID(A1,FIND("°",A1)+1,FIND("′",A1)-FIND("°",A1)-1)+MID(B1,FIND("°",B1)+1,FIND("′",B1)-FIND("°",B1)-1)+INT((MID(A1,FIND("′",A1)+1,FIND("〃",A1)-FIND("′",A1)-1)+MID(B1,FIND("′",B1)+1,FIND("〃",B1)-FIND("′",B1)-1))/60))/60)&"°"&MOD(MID(A1,FIND("°",A1)+1,FIND("′",A1)-FIND("°",A1)-1)+MID(B1,FIND("°",B1)+1,FIND("′",B1)-FIND("°",B1)-1)+INT((MID(A1,FIND("′",A1)+1,FIND("〃",A1)-FIND("′",A1)-1)+MID(B1,FIND("′",B1)+1,FIND("〃",B1)-FIND("′",B1)-1))/60),60)&"′"&MOD(MID(A1,FIND("′",A1)+1,FIND("〃",A1)-FIND("′",A1)-1)+MID(B1,FIND("′",B1)+1,FIND("〃",B1)-FIND("′",B1)-1),60)&"〃"
楼主,可试试这样的方法:
A1、B1、C1、D1,分别输入79 31 29 =A1&"°"&B1&"′"&C1&"〃"
A2、B2、C2、D2,分别输入237 42 47 =A2&"°"&B2&"′"&C2&"〃"
A3、B3、C3、D3,分别输入=IF(B1+B2>60,A1+A2+1,A1+A2) =IF(C1+C2>60,IF(B1+B2>60,B1+B2-60+1,B1+B2-60)) =IF(C1+C2>60,C1+C2-60,C1+C2) =A3&"°"&B3&"′"&C3&"〃"
另外可拆散开来,单独加度分秒,比如设置单元格A1格式为自定义:G/通用格式°,确定后输入数据79就为79°,分秒方法依此类推。
如果用自定义格式来显示°′〃的话,即
0"°"00"′"00"〃"
这样公式可以变成:
=(INT(A1/10000)+INT(B1/10000)+INT(ROUND(RIGHT(A1,4)+RIGHT(B1,4)-11,-2)/6000))*10000+MOD(ROUND(RIGHT(A1,4)+RIGHT(B1,4)-11,-2),6000)+MOD(MOD(A1,100)+MOD(B1,100),60)
如果是格式的话,就如10楼吧主说的用自定义格式 0"°"00"′"00"〃"
不过原数值*10000,才能正确显示。
如果进行角度的运算的话,在单元格中输入60进制的角度,如:23度41分27秒
按23.4127格式输入,小数点前是度,后面是分和秒。然后用INT函数将60进制转换成十进制(=INT(A1)+INT((A1-INT(A1))*100)/60+((A1-INT(A1))*100-INT((A1-INT(A1))*100))/36)参加加减运算,最后可用(=Int(A1) + Int((A1 - Int(A1)) * 60) / 100 + ((A1- Int(A1)) * 3600 - (Int((A1 - Int(A1)) * 60)) * 60) / 10000)公式再转换为度.分秒格式。
以上仅供参考。
假设数据在A1,在B1输入
=INT(LEFT(A1,LEN(A1)-1))&"度"&INT(MOD(LEFT(A1,LEN(A1)-1)*60,60))&"分"&INT(MOD(LEFT(A1,LEN(A1)-1)*3600,60))&"秒"
就可以了。
如何用Excel表格将“度”转换成“度分秒”格式??
20
[ 标签:excel表格,度分秒 ]
就是 将 123.456度 转换成 123度 ***分 **** 秒 的 方法
问题补充 2010-02-26 11:15
我想要请教 的是 用函数公式 计算的方法 和表示方法
是 将 123.456度 转换成 123度 ***分 **** 秒
~╲_/~↘磊〓 回答:3 人气:13 解决时间:2010-02-26 12:53
满意答案
好评率:100%
假设数据在A1,在B1输入
=INT(LEFT(A1,LEN(A1)-1))&"度"&INT(MOD(LEFT(A1,LEN(A1)-1)*60,60))&"分"&INT(MOD(LEFT(A1,LEN(A1)-1)*3600,60))&"秒"
就可以了。
提问人的追问 2010-02-26 11:27
这个不对啊 分 是对了 秒不对啊 你再看看
回答人的补充 2010-02-26 11:35
对的。
返回 123度27分21秒
123+27/60+21/3600=123.455833333333,约等于123.456
提问人的追问 2010-02-26 12:29
你看看 这个秒是0 啊 用别的算 也差在秒上
回答人的补充 2010-02-26 12:44
呵呵,理解错误,我以为你在A1输入的是 123.456度
公式更简单了:
=INT(A1)&"度"&INT(MOD(A1*60,60))&"分"&INT(MOD(A1*3600,60))&"秒"
提问人的追问 2010-02-26 12:52
恩 这回 对 了 呵呵 真是高手啊 谢谢了
使用Excel的MID函数实现度分秒到十进制度数的批量转换
来源:考试吧(Exam8.com) 2010-9-19 【考试吧:中国教育培训第一门户】 模拟考场
-
今天想往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,这里不考虑四舍五入,只取前面的。
这个工式也很好用=INT(E5)&"°"&INT((E5-INT(E5))*60)&"′"&INT((60*(E5-INT(E5))-INT(60*(E5-INT(E5))))*60)&"″"
教你设置Excel单元格度分秒°′″的通用格式
作者:闵涛 文章来源:敏韬学习网 点击数:181 更新时间:2010-6-21 21:51:46
Excel单元格数据格式的自定义格式,是一种个性化的、通用的数据格式,我们可以给多个单元格或需要的单元格设置一种通用的格式,就可以很方便的输入各种数据!
本例,我们学习度分秒°′″的数据格式!
执行菜单操作:“格式”→“单元格”,弹出如下图的对话框!
上图中,在“数字”选项卡中的“分类”,选择“自定义”,然后,在其右方的“类型”中输入
0“°“00“′“00.0“″“
然后点击“确定”按钮退出,这样就行了!
以后呢,在输入这样的数据的时候,如下图!
我们只需要输入相应的数字,Excel会自动转换为相应的格式,如下图!
就这样,本文到此结束,希望对你有所帮助!
[办公软件]手工设置Excel单元格背景颜色的方法 [办公软件]VBA设置Excel修改单元格需要输入密码
[办公软件]vba设置Excel单元格左对齐、右对齐、居中对齐、字… [办公软件]自行设置Excel单元格边线、工作表网格线颜色的方法
-
来源:[敏韬网-办公软件] http://www.mintao.net/Article/ShowArticle.asp?ArticleID=33245
1、先打开一个工作簿(或者WORD文档也可以),任意单元格内输入°、 ′、 〃等所要的符号;
2、用鼠标选中这个符号,并复制;
3、选择需要显示这些符号的单元格--鼠标右键--》设置单元格格式---》数字——》自定义
4、在类型输入框里输入##,然后把刚才复制的符号---》粘贴(注意把这个符号应该用英文双引号括起来)
5、确定即可
本贴来自天极网群乐社区--http://q.yesky.com/group/review-10954626.html
计算啊,例如 20°30′
20 + 30/60 = 20.5
· 对我有用[0]
· 丢个板砖[0]
· 引用
· 举报
· 管理
· TOP
精华推荐:借人气宣传一下自己开发的语言Dao
·
· wk_knife
· (学习ORACLE)
· 等 级:
·
#3楼 得分:0回复于:2005-08-13 10:48:15
172.55 0°32′ 250°54′
201.42 0°4′ 231°36′
230.22 0°10′ 128°24′
259.03 0°17′ 32°48′
287.65 0°23′ 341°36′
如何写公式或VBA把“0°23′”变成“0.38°”?
· 对我有用[0]
· 丢个板砖[0]
· 引用
· 举报
· 管理
· TOP
精华推荐:用汇编修改dos版三国英杰传支持键盘操作__附带制作过程
·
· icansaymyabc
· (水园所有党派元首)
· 等 级:
·
#4楼 得分:0回复于:2005-08-15 13:58:12
Function ttt(s As String) As String
Dim i
ttt = Val(s)
i = InStr(1, s, "° ")
If i > 0 Then
ttt = ttt + Val(Mid(s, i + 1)) / 60
i = InStr(i, s, "′ ")
If i > 0 Then
ttt = ttt + Val(Mid(s, i + 1)) / 360
End If
End If
ttt = CStr(Round(Val(ttt), 4)) + "° "
End Function
Sub aaa()
MsgBox ttt( " 0°32′ "), , " 0°32′ "
MsgBox ttt( "250 °54′ "), , "250 °54′ "
MsgBox ttt( " 0°4′ "), , " 0°4′ "
MsgBox ttt( "231 °36′ "), , "231 °36′ "
MsgBox ttt( " 0°10′ "), , " 0°10′ "
MsgBox ttt( "128°24′ "), , "128°24′ "
MsgBox ttt( " 0°17′ "), , " 0°17′ "
MsgBox ttt( "32°48′ "), , "32°48′ "
MsgBox ttt( " 0°23′ "), , " 0°23′ "
MsgBox ttt( " 341°36′ "), , " 341°36′ "
End Sub
· 对我有用[0]
· 丢个板砖[0]
· 引用
· 举报
· 管理
· TOP
精华推荐:一个关于mov占用时钟周期的问题。
·
· DawnPine
· (拂晓的松)
· 等 级:
· 2
#5楼 得分:0回复于:2005-08-16 13:38:39
楼上正解
楼主要注意的是, " 0°23′ "
不能写成 "23′ "
· 对我有用[0]
· 丢个板砖[0]
· 引用
· 举报
· 管理
· TOP
精华推荐:EFI/UEFI BIOS 入门 : All For Beginners - 另附深入学习指南以及有用的URL连接
·
· wk_knife
· (学习ORACLE)
· 等 级:
·
#6楼 得分:0回复于:2006-03-26 16:44:52
还是看我自己写的吧
将C2改成所要转换的数据开始的单元格,将下面的公式复制到EXCEL的单元格中即可(C在我的例子里是方位角所在的列,2是数据开始的行,1行是标题)
=IF(LEN(C2)=SEARCH( "° ",C2,1),VALUE(LEFT(C2,SEARCH( "° ",C2,1)-1)),VALUE(LEFT(C2,SEARCH( "° ",C2,1)-1))+VALUE(MID(C2,SEARCH( "° ",C2,1)+1,SEARCH( "′ ",C2,1)-SEARCH( "° ",C2,1)-1))/60)
EXCEL 十进制角度转换为度分秒格式 收藏
写篇比较简单的文章,大家都不屑一顾的问题,但希望有人能够用上。
最近同事用到使用EXCEL将十进制角度转度分秒,找我帮忙,网上搜罗一下,大多是度分秒转为十进制的计算方法,偶有这种算法,还要判断度的位数,如30°一个算法,130°又一个算法。且精度只能精确到秒的个位,对于测量坐标转换来说,远远不够。
几经演算,反过来在同事的帮助下,写了一个通用的计算公式,可以精确得计算出结果,如下:
fx=TEXT(INT(A2),"0")&“."&TEXT(INT((A2-INT(A2))*60),"00")&TEXT(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60*1000000,"000000")
其中A2代表十进制度数所在的单元格
调节其中红色数字的位数,可以取得秒的不同精度,如10000,会取到秒的小数点后四位;1000000,取到后六位。
如:130.03145632,输出130.0153242752
如果要加上度、分、秒等汉子或符号,只需在中间&符号处稍作文章,如:
fx=TEXT(INT(A2),"0")&"°"&TEXT(INT((A2-INT(A2))*60),"00")&"′"&TEXT(((A2-INT(A2))*60-INT((A2-INT(A2))*60))*60,"00.0000")&"″"
此处需注意后面秒的格式。精度调节此时要在后面的"00.0000"格式字符串中调节。
如:130.03145632,输出130°01′53.2428″
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/happybubbles/archive/2009/11/03/4763366.aspx
excel度分秒换算
时间:2010-05-06 15:47来源:bumbay 作者:大学生旅游网
excel度分秒换算: (1) 30°13′23 〃如何转换成 30.22300,30°22′30 〃如何转换成 30.375 ,度分秒转换成 dd.ddddd 数据格式公式。 =LEFT(A1,2)+MID(A1,FIND("°",A1)+1,2)/60+MID(A1,FIND("′",A1)+1,2)/3600 ( 2 )例如 102.38
-
INCLUDEPICTURE "http://edu.qzs.qq.com/ac/b.gif" \* MERGEFORMATINET (1)30°13′23〃如何转换成30.22300,30°22′30〃如何转换成30.375,度分秒转换成dd.ddddd数据格式公式。=LEFT(A1,2)+MID(A1,FIND("°",A1)+1,2)/60+MID(A1,FIND("′",A1)+1,2)/3600
(2)例如102.3815 转换后要得到102°38′15 〃。请问用什么公式
如果数据从A2单元格开始
在B2输入:
=left(a2,find(".",a2)-1)&"°"&mid(a2,find(".",a2)+1,2)&"'"&mid(a2,find(".",a2)+3,2)&"''"
用Excel的MID函数实现度分秒到十进制度数的批量转换
时间:2010-05-06 15:47来源:bumbay 作者:大学生旅游网
使用Excel的MID函数实现度分秒到十进制度数的批量转换: 今天想往ArcMap 9.2中导入一系列的点坐标数据,原始数据是度分秒格式的,ArcMap不认,查找帮助文件得知ArcMap只能识别十进制的度格式的数据。第一想法就是去网上找类似的软件,但是下回来一看,只能一次转换一个点
-
INCLUDEPICTURE "http://edu.qzs.qq.com/ac/b.gif" \* MERGEFORMATINET 今天想往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,这里不考虑四舍五入,只取前面的。