Table of contents
这篇文章将告诉你如何计算 距离 微软的Excel有这个很酷的特殊功能和公式,可以让你在两个地址之间选择。 查找距离 如果你在世界两地之间有 GPS坐标 的两个地方,你可以很容易地 确定这些地方之间的距离 在任何你想要的单位。
下载实践工作手册
计算两个地址之间的距离.xlsm
在Excel中计算两个地址之间距离的3种方法
在我们的数据集中,我们有 纬度 和 经度 为 俄亥俄州 和 阿拉斯加 我们将测量它们之间的距离。
ǞǞǞ 纬度 为 俄亥俄州 和 阿拉斯加 是 40.4173北 和 64.2008 北方 分别是 经度 为 俄亥俄州 和 阿拉斯加 是 82.9071西 和 149.4937西 分别是。
1.使用Haversine公式来计算两个地址之间的距离
如果你擅长数学,使用 Haversine配方 尽管它将给你一个近似的结果,但这是一个相当好的结果。
首先,我们需要知道 弧长的基本公式 使用该公式,我们将其与地球上两个地方之间的距离进行比较。 该公式如下所示。
S = rθ
S = 两个地址之间的距离
r = 地球的半径
θ = 两个地址在地球中心引入的角度
但如果你有 GPS坐标 的两个地方,你需要确定从 Haversine配方 请看 Haversine配方 如下图所示。
如果你把这与 弧长公式 你会得到如下图所示的结果。
让我们向你介绍一下 Haversine配方 .
φ 1 = 第一个地方的纬度
φ 2 = 第二个地方的纬度
ℽ 1 = 第一个地方的经度
ℽ 2 = 第二个地方的纬度
现在,我将向你展示如何在Excel中一步一步地应用这个公式。
步骤。
- 首先,做一个单元格来存储距离值,并在单元格中输入以下公式 C8 .
=2*6400*ASIN(SQRT((SIN(C6-C5)/2)^2+COS(C5)*COS(C6)*(SIN(D6-D5)/2)^2))
该公式使用 缩写:ASIN , SQRT , 冼国华 和 COS 职能 这很简单,如果你只是看一下 Haversine配方 我们测量的距离是 千米 所以我们把地球的半径以千米为单位,就是 6400公里 . 缩写:ASIN 指的是 反正弦波 或 ArcSine 如果我们比较一下这些参数的角 Haversine配方 用我们的Excel公式,我们得到。
1 =俄亥俄州的纬度 (C5)
2 =阿拉斯加的纬度 (C6)
ℽ 1 =俄亥俄州的经度 (D5)
ℽ 2 =阿拉斯加的纬度 (D6)
- 之后,按 进入 按键,以查看 俄亥俄州 和 阿拉斯加 在 千米 .
- 此后,如果你想 以英里为单位测量距离 ,在单元格中使用以下公式 C8 .
=2*3959*ASIN(SQRT((SIN(C6-C5)/2)^2+COS(C5)*COS(C6)*(SIN(D6-D5)/2)^2))
在这里,我们使用了我们用来寻找距离的同样的Excel公式,在 英里 因此,我们把地球的半径取为 英里 这就是 3959 .
因此,你可以计算出 距离 在Excel中的两个地球地址之间通过应用 Haversine配方 .
阅读更多。 如何在Excel中计算两个坐标之间的距离(2种方法)
2.应用Excel的CONCATENATE和SUBSTITUTE函数来计算两个地址之间的距离
你可以创建一个 谷歌地图 链接,找到 距离 使用Excel在两个地址之间进行计算 连结 和 替换 职能 让我们来看看下面的过程。
步骤。
- 首先,输入以下公式 C8 .
=CONCATENATE("//maps.google.co.uk/maps?f=d&source=s_d&saddr="。
SUBSTITUTE(B5," ", "+"),"&daddr=" ,SUBSTITUTE(B6," ", "+")
这个公式将创建一个 谷歌地图 你如何能从 俄亥俄州 至 阿拉斯加 ...... 连结 函数将添加 地址 中的链接和 替换 函数将把 地址 .
- 接下来,按 进入 按钮,你会看到 谷歌地图 链接在 C8 .
- 之后,使用这个 链接 在你的互联网搜索栏中,你会得到 距离 关于这些的信息 两个地址 .
最后,你可以计算出 距离 通过应用Excel中的两个地球地址之间的 连结 和 替换 职能。
阅读更多。 如何在Excel中计算两个城市之间的距离
3.使用VBA在Excel中计算两个地址之间的距离
另一种计算方法是 距离 在两个地址之间,可以通过做一个 API ( 应用编程接口 )链接并使用它来创建一个 用户定义的功能 由 VBA 你可以做一个 API 链接在 宾 要创建一个 滨州地图 你自己的API密钥。 点击这里 .
步骤。
- 首先,去到 开发商 >>。 视觉基础 .
- 之后,选择 插入 >>。 模块 以打开 VBA模块 .
- 稍后,在以下代码中输入 VBA模块 我们正在创建一个 用户定义的功能 来计算的 距离 在 英里 .
Option Explicit Public Function DistanceInMiles(First_Location As String, _ Final_Location As String, Target_Value As String) Dim Initial_Point As String, Ending_Point As String, _ Distance_Unit As String, Setup_HTTP As Object, Output_Url As String Initial_Point = "/dev.virtualearth.net/REST/v1/Routes/DistanceMatrix? origins=" Ending_Point = "& destinations=" Distance_Unit ="&travelMode=driving&o=xml&key=" & Target_Value & "&distanceUnit=mi" Set Setup_HTTP = CreateObject("MSXML2.ServerXMLHTTP") Output_Url = Initial_Point & First_Location & Ending_Point & Final_Location & Distance_Unit Setup_HTTP.Open "GET", Output_Url, False Setup_HTTP.SetRequestHeader "User-Agent", "Mozilla/4.0(兼容; MSIE 6.0; Windows NT 5.0)"Setup_HTTP.Send ("") DistanceInMiles = Round(Round(WorksheetFunction.FilterXML(Setup_HTTP.ResponseText, _ "/TravelDistance"), 3), 0) End Function
代码解释
- 首先,我们把我们的 职能 作为 距离在英里 我们还插入了 3 参数。 First_Location As String, Final_Location As String 和 Target_Value为字符串 .
- 之后,我们宣布 初始点 , 结束点 , 距离_单位 和 輸出_Url 作为 字符串 ; 设置_HTTP 作为 宗旨 .
- 后来,我们设定 初始点 为起点的 网址链接 , 结束点 作为 目的地 和 距离_单位 至 哩数 .
- 之后,我们设置必要的参数来创建我们的 VBA 代码和 API
- 最后,我们建立了我们的 用户定义的功能 .
- 之后,按照同样的程序,我们又做了一个 用户定义的功能 以求得在 千米 .
你可以看到,我们只是改变了 距离_单位 至 千米 .
- 此后,在以下图片中,你可以看到 API 键入单元格 C8 .
- 之后,在单元格中输入以下公式 C8 .
=DistanceInMiles(E5,E6,C8)
- 接下来,按 进入 按钮,你会看到 距离 之间 俄亥俄州 和 阿拉斯加 在 英里 .
- 之后,使用以下公式查看 距离 在 千米 .
=DistanceInKM(E5,E6,C8)
因此,你可以计算出 距离 在两个地址之间使用 VBA 和 API 钥匙。
阅读更多。 如何在Excel中计算两个地址之间的驾驶距离
需要记住的事情
- 牢记这一点,你需要把大约正确的 GPS坐标 这些 国家 因为你是用互联网来寻找距离。 国家 是 西部 到 子午线 ,他们都是 经度 将是负数。
练习部分
在本节中,我将给你本文的数据集,以便你可以自己练习这些方法。
总结
可以说,你将学到非常有效的方法,如何计算出 距离 如果你对本文有任何更好的方法或问题或反馈,请在评论框中分享。 这将有助于我丰富我接下来的文章。 更多疑问,请访问我们的网站 淘宝网 .