热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

十进制度分秒lisp函数_度分秒转换十进制度之Excel实现

我们都知道,160′,1′60″,13600″。那么,轻而易举容易计算:11218′37.6″11218603

我们都知道,1°=60′,1′=60″,1°=3600″。

那么,轻而易举容易计算:112°18′37.6″=112+18/60+37.6/3600≈112.3104444°

这当然是有参考价值的,比如爬下一张只有度分秒形式的经纬度表格,但是,我们的GIS软件只认十进制度(原因无非就是十进制好算),那么通过Excel的字符串操作函数,就可以轻松转换为十进制度。

【注意】伸手党(划掉)急着要结果的同学可以看第4小节,拉最后有完整的公式给出,不必看1、2、3小节这些过程。

1 预备知识(三个函数)

1.1 FIND()函数

FIND函数可以找到某个字符(串)在指定字符串的哪里。

我们说,CHINA中字母N在第4个,那么

4=FIND("N","CHINA")

如果CHINA在单元格A1,那么

4=FIND("N",A1)

// FIND函数还有第三个参数,此处不讨论

即得出结论:

I =FIND(S,D)

I——S在D的位置

S——查找的字符()串

D——被查找的字符串

1.2 LEFT()函数

LEFT()函数可以获取从左边开始数的第n个字符,通俗点讲就是在第n个处切开,前n个留下形成结果字符串,其他的扔了。即:

LEFT("CHINA", 3)="CHI"

LEFT("CHINA", 1)="C"

1.3 MID()函数

与LEFT类似,从左往右第i个起算,取j个,头和尾不要了。

MID("CHINA",3,2)="IN"

MID("CHINA",1,4)="CHIN"

2. 提取度&分&秒的数值

OK,有了上部分的预备,那么我们就要对[112°18′37.6″]中括号内的字符串进行切割,把度分秒分别切出来。

首先,我们要获取°号、′号、″号的位置:

A1=112°18′37.6″

A2=FIND("°", A1) //结果是4

A3=FIND("′", A1) //结果是7

A4=FIND("″", A1) //结果是12,小数点也占一位字符

然后,使用LEFT取到度(注意是到°号之前的2,不是到度号):

B1=LEFT(A1,A2) //结果错误,是112°,并不是我们想要的112

B1=LEFT(A1,A2-1) //结果是112

用MID取到分的数值。

注意,起点不是°号了,是度号往右一个,即A2+1。

要取多少个数字呢?这里分的数值是两位,则A3-A2-1刚好是2:

B2=MID(A1,A2+1,A3-A2-1) //结果是18

用MID取到秒的数值(起点数字,和取长,与分的数值同理):

B3=MID(A1,A3+1,A4-A3-1) //结果是37.6

如果不太能理解A3-A2-1为啥刚好是分的数值的位数,自己稍微动一下脑筋就想出来了,用位数的顺序相减呗。

3. 拼接

这一步就简单了,使用简单的数学四则运算:

C1=B1+B2/60+B3/3600 //结果是112.3104444

4. 整合所有公式到一个单元格

分步列公式是为了清晰过程,实际只需要一个单元格就可以计算,总结一下:

十进制度=取度+取分/60+取秒/3600

=B1 + B2/60 + B3/3600

=LEFT(A1,A2-1) + MID(A1,A2+1,A3-A2-1) + MID(A1,A3+1,A4-A3-1)=LEFT(A1, FIND("°", A1)-1)

+MID(A1, FIND("°", A1)+1, FIND("′", A1)-FIND("°", A1)-1)/60

+MID(A1, FIND("′", A1)+1, FIND("″", A1)-FIND("′", A1)-1)/3600

如果不写成换行,那么结果就会是:

//A1是度分秒形式的坐标值单元格=LEFT(A1, FIND("°", A1)-1) + MID(A1, FIND("°", A1)+1, FIND("′", A1)-FIND("°", A1)-1)/60 + MID(A1, FIND("′", A1)+1, FIND("″", A1)-FIND("′", A1)-1)/3600

如下图所示:



推荐阅读
  • Excel条件格式:根据数值大小突出显示单元格
    本文将详细介绍如何在Excel中通过条件格式功能,根据数值大小来突出显示特定单元格。这不仅能帮助用户更好地掌握条件格式的使用方法,还能提高数据可视化的效果。我们将逐步讲解选择数据、设置规则和应用颜色的具体步骤。 ... [详细]
  • 本文详细介绍了C语言中链表的两种动态创建方法——头插法和尾插法,包括具体的实现代码和运行示例。通过这些内容,读者可以更好地理解和掌握链表的基本操作。 ... [详细]
  • 本文介绍了MindManager在项目管理中的强大功能,特别是其内置的甘特图工具。通过该工具,用户可以轻松创建和管理项目计划,优化任务分配,并与其他软件无缝集成。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • ABBYY FineReader:高效PDF转换、精准OCR识别与文档对比工具
    在处理PDF转换和OCR识别时,您是否遇到过格式混乱、识别率低或图表无法正常识别的问题?ABBYY FineReader以其强大的功能和高精度的识别技术,完美解决这些问题,帮助您轻松找到最终版文档。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 本文介绍了解决在Windows操作系统或SQL Server Management Studio (SSMS) 中遇到的“microsoft.ACE.oledb.12.0”提供程序未注册问题的方法,特别针对Access Database Engine组件的安装。 ... [详细]
  • 解决CAD图形粘贴到Word和Excel后出现空白区域的问题
    当从CAD中复制图形并粘贴到Word或Excel时,通常会遇到四周出现多余空白区域的情况。本文将介绍如何在较新版本的Office中找到裁剪工具,并提供详细的解决方案。 ... [详细]
  • 精选免费PHP幻灯片模板及图片资源
    提供一系列高质量的免费PHP幻灯片模板和图片资源,涵盖多种风格和应用场景,满足您的各种需求。 ... [详细]
  • 本文详细介绍了如何在Excel中有效利用颜色和代码,解释了不同颜色和代码的具体含义,并提供了实用的操作技巧。通过学习这些内容,用户可以更好地管理和分析数据。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • python时间序列之ADF检验(1)
    读取数据,pd.read_csv默认生成DataFrame对象,需将其转换成Series对象DataFrame和Series是pandas中最常见的2 ... [详细]
  • 文章目录STDEV.PSTDEV.S展示释义STDEV.P计算总体的标准差(StandardDeviationForPopulation),公式如下:Var(x)∑i1n(xi−E ... [详细]
  • 本文详细介绍了如何使用Python中的xlwt库将数据库中的数据导出至Excel文件,适合初学者和中级开发者参考。 ... [详细]
author-avatar
手机用户2502895085
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有