20190314-利用两点的经纬度计算距离

一、利用两点的经纬度计算距离:

 

 距离公式如下(单位:m):

 =6371004*ACOS(1-(POWER((SIN((90-B2)*PI()/180)*COS(A2*PI()/180)-SIN((90-D2)*PI()/180)*COS(C2*PI()/180)),2)+POWER((SIN((90-B2)*PI()/180)*SIN(A2*PI()/180)-SIN((90-D2)*PI()/180)*SIN(C2*PI()/180)),2)+POWER((COS((90-B2)*PI()/180)-COS((90-D2)*PI()/180)),2))/2)

 

二、应用:核算2000个点之间距离最小的点的对应关系(如:A/B/C……,找出各自对应最短距离的点)

利用Excel横向和纵向的交叉点 ,计算两点的距离:

关键点①:在于横向锁定行,纵向锁定列,交叉点为0)

关键点②:如何匹配对应的点(图示即GlobalID)

方法步骤:

①利用核算出来的最短距离,找到该数值对应GlobalID的列数,采用MATCH(lookup_value, lookup_array, match_type)函数,进行精确查找;

链接:https://baijiahao.baidu.com/s?id=1611778949509455169&wfr=spider&for=pc

②根据查找返回的列数在查找对应的GlobalID

③查找时,采用INDIRECT(ADDRESS(GlobalID所在行,列数值)),即可返回对应的GlobalID;


三、重点学习:

INDIRECT和ADDRESS配合使用;
①INDIRECT函数:

indirect函数的引用的两中形式。

一种加引号,一种不加引号。

=indirect("a1")——加引号,文本引用——即引用a1单元格所在的文本(b2)。

=indirect(a1)——不加引号,地址引用——因为a1的值为b2,b2又=11,所以返回。

 

②ADDRESS函数:

address函数的语法结构见下图所示,此函数有5个参数

第一个参数row_num:行号

第二个参数column_num:列号

第三个参数abs_num:引用类型

有4种引用类型:1:绝对引用,如果第三个参数省略,默认为1

2:绝对行号,相对列号

3:相对行号,绝对列号

4:相对引用

第四个参数a1:引用方式

有两种引用方式:

TRUE:返回A1样式,如果第四个参数省略,默认为A1样式(A是列,1是行)

FALSE返回:R1C1样式(R1是行C1是列)

第五个参数sheet_text:指明工作薄里的那一个工作表,即不同工作薄中的工作表。


参考链接:http://baijiahao.baidu.com/s?id=1604973466576054005&wfr=spider&for=pc

 

posted on 2019-03-14 20:47  酱仔  阅读(935)  评论(0编辑  收藏  举报

导航