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

在Google Sheets中实现度分秒坐标转十进制及符号间数字提取

在Google Sheets中按度/分/秒符号提取数值并转换为十进制度数

核心方法:用正则表达式匹配符号位置提取数值

针对带度(⁰)、分(')、秒(")符号的地理坐标(比如58⁰ 09' 0.5"N),可以通过REGEXEXTRACT函数精准提取各部分数值,再按十进制公式计算,同时处理南北/东西方向的正负值。

完整转换公式

假设坐标存放在单元格E2,公式如下:

=IF(REGEXMATCH(E2, "[Ss]"), -1, 1) * (
  VALUE(REGEXEXTRACT(E2, "(\d+\.?\d*)⁰")) +
  VALUE(REGEXEXTRACT(E2, "(\d+\.?\d*)'"))/60 +
  IFERROR(VALUE(REGEXEXTRACT(E2, "(\d+\.?\d*)"""))/3600, 0)
)

公式拆解

  • 方向判断:REGEXMATCH(E2, "[Ss]")识别南纬(S),匹配到则返回-1(十进制为负),北纬(N)返回1;如果是经度,把[Ss]换成[Ww]即可(西经为负)。
  • 提取度数:REGEXEXTRACT(E2, "(\d+\.?\d*)⁰")匹配度符号(⁰)前的所有数字(支持整数和小数),用VALUE()转为数值后直接计入。
  • 提取分数:REGEXEXTRACT(E2, "(\d+\.?\d*)'")匹配分符号(')前的数字,转为数值后除以60(1度=60分)。
  • 提取秒数:REGEXEXTRACT(E2, "(\d+\.?\d*)""")匹配秒符号(")前的数字,转为数值后除以3600(1度=3600秒);IFERROR(..., 0)处理无秒数的坐标(比如30⁰ 15'N),避免报错。

示例验证

对于坐标58⁰ 09' 0.5"N,代入公式后计算逻辑为:

58 + 9/60 + 0.5/3600 = 58.1501389
公式会直接返回该十进制结果。

优势对比

相比LEFT()/RIGHT()这类依赖固定字符数的函数,正则匹配的方式无需考虑度数/分秒的位数变化(比如1位数度数、带小数的分秒),适配性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:55:38