You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Excel公式完成DMS格式化及转换为十进制度DD

Excel DMS格式坐标转十进制度DD方案

首先预设你的原始坐标存储在A列,格式为方向字母+空格+度+空格+分+空格+秒,示例如下:

  • E 121 28 56
  • N 31 14 22.7
  • W 118 32 10
  • S 22 15 33.5

方案1:Excel 365/2021及以上版本(公式更简洁易维护)

直接在B1单元格输入以下公式,下拉即可批量转换:

=LET(
    arr,TEXTSPLIT(TRIM(A1)," "),
    sign,IF(OR(INDEX(arr,1)={"E","N"}),1,-1),
    d,--INDEX(arr,2),
    m,--INDEX(arr,3),
    s,--INDEX(arr,4),
    sign*(d+m/60+s/3600)
)

公式逻辑说明:

  • 用TRIM去除原始数据前后多余空格
  • 用TEXTSPLIT按空格拆分坐标为方向、度、分、秒4个部分
  • 匹配方向得到正负符号,E、N为正,W、S为负
  • 按度 + 分/60 + 秒/3600的规则计算后乘以符号得到最终十进制度

方案2:旧版Excel兼容方案(适配无LET/TEXTSPLIT函数的版本)

在B1单元格输入以下公式,下拉即可:

=INDEX({1,1,-1,-1},MATCH(LEFT(TRIM(A1),1),{"E","N","W","S"},0))*(TRIM(MID(TRIM(A1),3,FIND(" ",TRIM(A1),3)-3)) + TRIM(MID(TRIM(A1),FIND("}}}",SUBSTITUTE(TRIM(A1)," ","}}}",2))+1,FIND("}}}",SUBSTITUTE(TRIM(A1)," ","}}}",3))-FIND("}}}",SUBSTITUTE(TRIM(A1)," ","}}}",2))-1)/60 + TRIM(MID(TRIM(A1),FIND("}}}",SUBSTITUTE(TRIM(A1)," ","}}}",3))+1,99))/3600

你原有公式报错的核心问题是度部分的截取长度计算错误,且未处理原始数据前后的冗余空格,上述公式已修复对应问题。

注意事项

  • 若需要保留固定位数小数,可在外层嵌套ROUND函数,比如保留6位小数写作=ROUND(上述公式,6)
  • 若公式返回错误值,请检查对应行的原始坐标格式:确保方向后、度、分、秒之间均为半角空格分隔,无其他多余特殊字符
  • 支持带有小数的分、秒格式转换

内容的提问来源于stack exchange,提问作者Erika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:45:03