Excel 怎么把度分秒

时间:2026-02-10 13:18:24 文档下载 投诉 投稿

说实话,我第一次遇到这个问题的时候,脑子“嗡”了一下。Excel?度分秒?这两个词放一起,我第一反应就是GPS定位,或者天文观测那些玩意儿,感觉跟Excel这个表格软件,画风不太搭。我平时用Excel,都是做个报销单,算算销售额,顶多画个图表看看趋势,哪跟哪儿啊这度分秒的。

但是,人生嘛,总得遇到点挑战不是?朋友那边有个项目,好像是要处理一些地理信息数据,里面就离不开经纬度,而经纬度这玩意儿,就是用度、分、秒来表示的。他那个数据是TXT文件或者CSV文件导出来的,里面可能是这样的格式:+121° 30' 45.6" E,或者-75° 15' 0.0" N。我一看这格式,脑仁儿就疼。Excel要是直接当数字处理,那准完蛋,它识别不了这个“°”、“'”、“"”的符号,更别说那个E和N了。

后来我上网搜了搜,发现这还真不少人问,而且方法五花八门的。我试了几种,觉得最顺手的,也是最适合我这种Excel小白的,就得说下面这几种了。

第一招:拆分大法,一点一点捋

这是最直观,也最“笨”但最保险的方法。你想啊,度分秒这不就是几部分信息吗?度、分、秒,还有方向(东/西、北/南)。Excel的“分列”功能,简直是为这种拆开来的数据量身定做的。

首先,得把那些符号给去掉,或者换成Excel能识别的。我通常是这么干的:

  1. 替换大法:打开你的Excel文件,选中包含经纬度数据的列。然后按Ctrl+H,打开“查找和替换”。

    • 先在“查找内容”里输入“°”,在“替换为”里留空,点“全部替换”。
    • 接着,再找“'", 在“替换为”里也留空,全部替换。
    • 然后是“\"", 同样替换为空。
    • 最后,把那个方向的字母,比如“E”和“W”,“N”和“S”,也单独处理。我一般是把“E”替换成“东”,把“W”替换成“西”,把“N”替换成“北”,把“S”替换成“南”。这样看着更舒服,而且后面计算也方便。
  2. 分列:现在你的数据可能变成这样了:121 30 45.6 东。这时候,再用“数据”菜单里的“分列”功能。

    • 选择“分隔符号”。
    • 然后,把“空格”作为分隔符,打上勾。Excel会自动帮你把“121”、“30”、“45.6”和“东”给分到不同的列里。
    • 这样,你就得到了“度”、“分”、“秒”和“方向”这几列独立的数值了。
  3. 合并计算,转成十进制度数:拿到度、分、秒之后,要计算成我们最常用的十进制度数。这个公式其实不复杂,脑子里的数学老师估计又要上线了。

    • 度数:比如你的度在A列,分在B列,秒在C列,方向在D列。
    • 十进制度数 = 度 + 分/60 + 秒/3600。
    • 要是方向是“西”或者“南”,那就得是负数。所以公式可以这样写:
      • =IF(D1="东",A1+B1/60+C1/3600,IF(D1="西",-A1-B1/60-C1/3600,IF(D1="北",A1+B1/60+C1/3600,IF(D1="南",-A1-B1/60-C1/3600,""))))
      • 你看,这里我把“北”和“东”放在了一个逻辑里,把“南”和“西”放在了另一个逻辑里。这样,无论它是东经还是北纬,加上去就行;无论是西经还是南纬,减去就行。
    • 当然,如果你是先把度分秒拆成了三个单独的数字列,而方向是另外一列,这个公式就更直接了。

这个方法虽然有点“手工”,但胜在逻辑清晰,不容易出错。我每次处理这种数据,都觉得像是给它做个“手术”,一点点把它剖析开,然后按照我的想法再组装回去。

第二招:函数大法,省时省力

Excel里那些强大的函数,真的是解决问题的利器。对于度分秒的转换,也有更简洁的函数组合。我发现,要是原始数据格式稍微规范一点,比如是用空格或者逗号隔开的,那就可以考虑用函数。

比如,如果你的原始数据是 121 30 45.6 E 这样,并且你在一个单元格里。

  1. TEXTBEFORE和TEXTAFTER:Excel 2021及更新版本,或者Microsoft 365版本,提供了 TEXTBEFORETEXTAFTER 这两个神仙函数。

    • 假设你的数据在A1单元格。
    • 你可以先用 TEXTBEFORE 提取度数:=TEXTBEFORE(A1," ",1) 这样会得到121
    • 然后,用 TEXTAFTER 结合 TEXTBEFORE 来提取分和秒。这稍微复杂一点。
    • 更直接一点,我们可以利用 FIND 函数来定位符号的位置,然后用 MID 函数截取。
  2. LEFT, MID, RIGHT, FIND, SUBSTITUTE:这些都是Excel的“老炮儿”函数了,非常灵活。

    • 比如,提取度数:=VALUE(LEFT(A1,FIND("°",A1)-1))
    • 提取分:=VALUE(MID(A1,FIND("°",A1)+1,FIND("'",A1)-FIND("°",A1)-1))
    • 提取秒:=VALUE(MID(A1,FIND("'",A1)+1,FIND("""",A1)-FIND("'",A1)-1))
    • 提取方向:=RIGHT(A1,1)

    这几个函数组合起来,就能把度、分、秒、方向都拆出来。但问题是,你要是直接这么拆,还是得跟上面一样,做成度分秒三列,然后用IF函数来处理方向。

    有没有更直接的?

    有!我看到有人分享过一个超级牛的公式,可以直接把 121°30'45.6"E 这种格式的度分秒,直接转换成十进制度数。这个公式通常是嵌套了TEXTSPLIT, VALUE, MID, FIND, IF等一系列函数。

    我当时看到那个公式,感觉像是武林高手过招,眼花缭乱,但又不得不佩服。大概的思路就是:先用 TEXTSPLIT 或者 SUBSTITUTE 把所有非数字和非小数点、非方向字母的符号都去掉,然后把度、分、秒、方向都变成纯粹的文本,再进行数值计算。

    举个例子,我试着简化一下,假设数据是 121°30'45.6"E 在A1。

    • 把度分秒前面的符号去掉,并把度分秒用小数点隔开,最后变成一个可以计算的数值。
    • 比如,我们可以用 SUBSTITUTE 替换掉“°”、“'”、“"”,然后根据方向调整正负。
    • 例如,一个相对精简的版本:
      • =IF(RIGHT(A1,1)="E",VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(A1,LEN(A1)-1),"°","."),"'","."),"""",""))*IF(OR(RIGHT(A1,2)="NE",RIGHT(A1,2)="SE",RIGHT(A1,2)="SW",RIGHT(A1,2)="NW"),MID(A1,LEN(A1)-1,1),RIGHT(A1,1))="..."
      • 别看它长,核心就是先处理成数字,再乘以方向的符号。这里的公式还会稍微复杂一点,因为要考虑到 N, S, E, W 的不同组合。

    直接用函数,特别是新版本的Excel函数,确实能让整个过程自动化很多。但有时候,这些公式也会让我的大脑内存占满,毕竟我不是数学系毕业的,也不是程序员,纯粹是Excel爱好者,哈哈。

第三招:Power Query 魔法,批量处理神器

如果你处理的度分秒数据量特别大,而且格式也相对固定,那么Power Query绝对是你的不二之选。这玩意儿简直是Excel里的“自动化流水线”。

  1. 获取数据:首先,你需要把你那堆度分秒数据导入到Power Query里面。你可以选择“数据”->“获取数据”->“从文件”->“从文本/CSV”,把你那个TXT或者CSV文件导进来。

  2. 转换数据:进入Power Query编辑器后,你就能看到你的数据了。这时候,它会像一个智能助手一样,帮你把很多工作都做好了。

    • 拆分列:Power Query里也有“拆分列”的功能,而且比Excel自带的更强大。你可以按分隔符(比如空格、逗号)来拆,也可以按固定宽度来拆。
    • 替换值:同样,它也有“替换值”的功能,你可以轻松地替换掉那些“°”、“'”、“"”等符号。
    • 添加自定义列:这个最关键。你可以用M语言(Power Query的语言)来写公式,进行度分秒的转换。
      • 比如,你可以先拆出度、分、秒、方向。
      • 然后,添加一个“十进制度数”的列,公式大概是这样: m = Table.AddColumn(#"Replaced Value", "Decimal Degrees", each let Degrees = Number.From(Text.BeforeDelimiter([YourDegreeColumn], "°")), Minutes = Number.From(Text.BetweenDelimiters([YourDegreeColumn], "°", "'")), Seconds = Number.From(Text.BeforeDelimiter(Text.AfterDelimiter([YourDegreeColumn], "'"), """")), Direction = Text.End([YourDegreeColumn], 1) in if Direction = "E" or Direction = "N" then Degrees + Minutes / 60 + Seconds / 3600 else -(Degrees + Minutes / 60 + Seconds / 3600) )
        • 这个M语言的公式,就是把我们前面讲的逻辑用代码实现了。你只需要把[YourDegreeColumn]换成你实际的列名。
        • Power Query还有一个好处是,它能识别数据类型,你可以在里面直接把文本类型的“度”、“分”、“秒”转换为数字。
  3. 加载数据:当你把所有转换都做完之后,点击“关闭并上载”,这些处理好的数据就会直接导入到你的Excel工作表里。而且,如果你的源文件更新了,你只需要刷新一下Power Query,所有转换都会自动执行,非常省事。

我最早接触Power Query的时候,也觉得有点陌生,毕竟跟Excel的界面不太一样。但是一旦用熟了,你就会发现它处理大量、重复性数据的效率简直是指数级的提升。就像拥有了一个专属的“数据工厂”,源源不断地生产出我需要的数据。

一些小的提醒和经验

  • 数据干净:无论你用哪种方法,数据的原始干净程度是关键。如果你的原始数据里,有的地方是 121°30'45.6"E,有的地方又是 121.5125(已经是十进制度数了),或者直接是 +1213045 这种,那处理起来就会非常头疼。最好是在导入Excel之前,就尽量让数据格式统一。
  • 方向的表示:要特别注意方向是怎么表示的。有的是 E,有的是 East,有的是 。处理的时候要统一。
  • 正负号:西经和南纬通常用负数表示。在做计算的时候,一定要把这个负号加上去,否则你的坐标就完全错了。
  • 文本转数字:拆分出来的度、分、秒,Excel有可能会识别成文本,这时候需要用 VALUE() 函数或者在单元格左上角出现绿色小三角时,点击提示框选择“转换为数字”。
  • 重复检查:处理完数据后,务必检查。可以随机抽几个原始数据,手动计算一下,看看Excel算出来的结果是否一致。特别是对于一些边界值,比如0度、0分、0秒,或者刚好在东西半球、南北半球的分界线上的。

总的来说,Excel里处理度分秒,虽然一开始看着有点晕,但万变不离其宗,核心就是拆分、转换、计算。选择哪种方法,主要看你的数据量、数据格式,以及你对Excel的熟悉程度。我个人倾向于,小批量、一次性的,就用分列和函数;大批量、经常性的,那必须是Power Query。这玩意儿,用了就回不去了,真的。

【Excel 怎么把度分秒】相关文章:

excel数字怎么递增02-10

怎么冻结excel表格02-10

excel怎么冻结表格02-10

excel图表怎么插入02-10

Excel表头怎么设置02-10

怎么预览excel打印02-10

Excel 怎么把度分秒02-10

excel怎么取消保护密码02-10

怎么还Excel扩展名?02-10

excel怎么两个表格02-10

excel高级筛选怎么用或02-10

excel里if公式怎么用02-10

怎么把excel的边框去掉02-10