Table of contents
有几种用途 ǞǞǞ 中很酷的特殊功能和公式。 微软Excel 能否确定地球上两个特定城市或地点之间的间隔是至关重要的。 计算距离 它使你能够计算出实际距离,并为你提供一个体面的估计,你的旅行将需要多长时间。 但是,通过excel,我们可以很容易地做到这一点。 在这篇文章中,我们将展示在Excel中计算两个城市之间距离的几种方法。
下载实践工作手册
你可以下载工作手册,用它们进行练习。
计算两个城市之间的距离.xlsm数据集介绍
为了计算两个城市之间的距离,首先,我们需要准备数据集。 假设我们有两个城市 洛杉矶 它是美国州的一个主要城市。 加利福尼亚州 ,以及 帕斯科 这是在 华盛顿 现在,我们需要找到它们之间的距离。 为此,我们必须知道 纬度 和 经度 我们可以用Excel简单地找到任何城市的经纬度。 让我们看看如何做到这一点。
步骤。
- 首先,选择放置城市名称的单元格。 在我们的案例中,我们选择单元格 B5 ,以及 B6 .
- 第二,去 数据 选项卡。
- 第三,在 数据类型 类别,点击 地理环境 .
- 然后,为了找到纬度,选择放置纬度的单元格,在那里输入公式。
=B5.纬度
- 新闻 进入 来看结果。
- 类似地,我们找到细胞的纬度 B6 .
- 现在,要找到经度,同样,要找到纬度,选择一个单元格,并将以下公式放入该单元格。
=B5.经度
- 点击 进入 键盘上的键。
- 同样地,我们得到 B6 的经度,按照前面的步骤进行。
- 就这样,现在我们有了两个城市的纬度和经度。 所以,我们的数据集现在可以使用了。
在Excel中计算两个城市之间距离的5种不同方法
找到两地之间的距离后,我们就能确定两个住宅之间的间隔。 我们可以利用这些信息估算出我们在住宅之间旅行所需的时间。 为了找到两个城市之间的距离,我们使用上述我们刚刚制作的数据集。
1.应用哈沃辛公式计算两个城市之间的距离
海洋探索的基本方程之一是 Haversine配方 ,可以用来计算球面上两个地点之间的距离,只要你确定它们的经纬度和半球的半径。 全球定位系统 让我们按照步骤来使用该公式计算两个城市之间的距离。
步骤。
- 首先,选择你想得到距离的单元格,所以,我们选择单元格 C8 .
- 然后,把 Haversine配方 进入该选定的单元格。
=3959*ASIN(SQRT((SIN(C6-C5)/2)^2+COS(C5)*COS(C6)*(SIN(D6-D5)/2)^2))
- 最后,按 进入 键来查看结果。
- 因此,通过使用该公式,我们得到的结果是 1367.581282 .
阅读更多:如何在Excel中计算两个地址之间的驾驶距离
2.用Excel的ACOS、SIN、COS和RADIANS函数计算两个城市之间的距离
一个值的反余弦是什么? ACOS功能 角度的正弦值以弧度为单位,由以下方式返回 Excel的SIN函数 角度的余弦以弧度为单位,通过以下方式返回 COS功能 弧度可以通过以下方式转化为度 Excel的RADIANS函数 我们可以结合这些函数来获得两个城市之间的距离。 它也已经基本上自动使用了 全球定位系统 让我们应用这些函数的组合,通过步骤来获得两个城市之间的距离。
步骤。
- 首先,选择你希望获得距离的单元;在这种情况下,我们选择单元 C8 .
- 之后,将函数公式的组合插入所选单元格中。
=acos(cos(radians(90-c5)) *cos(radians(90-c6)) +sin(radians(90-c5) *sin(radians(90-c6)) *cos(radians(d5-d6)) ) *6371
- 要查看结果,请点击 进入 钥匙在最末端。
- 因此,通过应用该公式,我们得出的数字是 1357.033633 .
阅读更多。 如何在Excel中计算两个GPS坐标之间的距离
3.结合Excel的CONCATENATE和SUBSTITUTE函数来获取两个城市之间的距离
要将两个甚至更多的词语序列组合成一个短语,可以使用 文本函数CONCATENATE . 大约 三十 可以用Excel中的 "文本 "来连接。 连结 函数,该函数将结果作为文本返回。 SUBSTITUTE函数 我们可以结合这两个函数来创建一个 谷歌地图 链接,找到 两个地址之间的距离 让我们利用这个公式,通过步骤来获得两个城市之间的距离。
步骤。
- 同样地,在前一种方法中,选择你想获得的单元格 谷歌地图 ;在这种情况下,我们选择单元格 C8 .
- 然后,将公式输入该选定的单元格。
=CONCATENATE("//maps.google.co.uk/maps?f=d&source=s_d&saddr="。
SUBSTITUTE(B5," ", "+"),"&daddr=" ,SUBSTITUTE(B6," ", "+")
- 要显示结果,请点击 进入 钥匙。
在这个公式的帮助下,你可以链接到一个 谷歌地图 显示了从 洛杉矶 至 帕斯科 这些城市将被添加到链接中。 连结 函数,而城市的名称将用 替换 功能。
- 之后,在浏览器的搜索框中输入这个链接,就可以知道这两个城市之间的距离有多远。
ǞǞǞ 连结 和 替换 函数也可以在Excel中用来确定地球上两个城市之间的距离。
阅读更多。 如何在Excel中计算两个地址之间的距离(2种方法)
4.创建LAMBDA函数来计算两个城市之间的距离
LAMBDA功能 一旦它被定义并被赋予名称,我们就可以在工作簿的任何地方使用这些函数。
距离的主要方程式是。
D = acos (sinΦ)
1
.sinΦ
2
+ cosΦ
1
.cosΦ
2
宇宙
Δλ)
. R
即使它可能显得有点不堪重负,但对我们最重要的投入是。
- 起点的经纬度。
- 最终地点的经度和纬度。
因此,在公式或方程式中。
- Δλ 表示经度之间的差异( lon_2-lon_1 ).
- Φ 1 和 Φ 2 依次表示 lat_1 和 纬度_2 .
- R 表示曲面的半径。
让我们创建一个 LAMBDA 函数来计算两个城市之间的距离,具体步骤如下。
步骤。
- 首先,选择单元格 C8 .
- 此外,将公式放入该单元格。
=LAMBDA(_lat1, _lon1, _lat2, _lon2, LET(lat_1, RADIANS(_lat1),lon_1, RADIANS(_lon1),lat_2,RADIANS(_lat2),lon_2, RADIANS(_lon2),r, 6378,ACOS((SIN(lat_1) *SIN(lat_2)) + (COS(lat_1) *COS(lat_2) * COS(lon_2-lon_1) ) ) * r) (C5,D5, C6,D6)
- 然后,按 进入 .
- 这将显示结果,但公式太大,在多次使用时可能难以理解。
- 因此,我们可以使用以下方法创建一个自定义的公式,而不是这样做 LAMBDA 功能。
- 为此,请到 公式 选项卡。
- 根据 定义的名称 组,点击 名字经理 .
- 这将显示 名字经理 对话框。
- 现在,点击 新的 菜单。
- 这将把你带到 新名称 窗口。
- 此外,为公式命名,因为我们要计算两个城市之间的距离,所以我们把公式的名称写上 城市距离 .
- 然后,将以下公式放入 指的是 .
=LAMBDA(_lat1, _lon1, _lat2, _lon2, LET(lat_1, RADIANS(_lat1),lon_1, RADIANS(_lon1),lat_2,RADIANS(_lat2),lon_2, RADIANS(_lon2),r, 6378,ACOS((SIN(lat_1) * SIN(lat_2) ) + (COS(lat_1) * COS(lat_2) * COS(lon_2-lon_1) ) ) * r)
- 然后,点击 认可 .
- 这将把你带到 名称 经理 再次对话。
- 此外,点击 关闭 按钮来完成这一过程。
- 现在,你可以找到一个新的自定义函数 城市距离 而通过使用该函数,你将得到两个城市之间的距离。
- 因此,通过应用该公式,我们得出的数字是 1358.524645 .
阅读更多:如何在Excel中计算列文斯坦距离(4种简单方法)
5.用Excel VBA计算两个城市之间的距离
制作一个 API ( 应用编程接口 )连接,并利用它来建立一个 用户定义的功能 在VBA中,还有两种方法可以确定两个地点之间的距离。 为了收集一个地点的数据,Excel通过连接 API 到任何地图,包括 谷歌地图 和 滨州地图 因此,为了使用这一技术,我们必须首先建立一个 API 这真的很简单,但令人遗憾的是,只有 滨州地图 提供一个免费的 API 我们将通过利用免费的 必应地图API 钥匙。 点击这里 来创建你自己的 必应地图API密钥 .
步骤。
- 首先,我们创建了一个 API 键,并将其放在单元格 C8 .
- 现在,去到 开发商 选项卡。
- 然后,从 编码 类别,点击 视觉基础 以打开 Visual Basic编辑器 或者按 Alt + F11 以打开 Visual Basic编辑器 .
- 与其这样做,你可以直接 右键点击 在你的工作表上,进入 查看代码 这也将带你到 Visual Basic编辑器 .
- 这将出现在 Visual Basic编辑器 .
- 此外,点击 模块 从 插入 下拉菜单栏。
- 这将创建一个 模块 在你的工作簿中。
- 并且,复制并粘贴 VBA代码 如下图所示。
VBA代码。
Option Explicit Public Function CityDistance(First_City As String, Second_City 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=km" Set Setup_HTTP = CreateObject("MSXML2.ServerXMLHTTP") Output_Url = Initial_Point & First_City & Ending_Point & Second_City & 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("") CityDistance = Round(Round(WorksheetFunction.FilterXML(Setup_HTTP.ResponseText, _ "/TravelDistance"), 3), 0) End Function
- 通过将整个工作簿保存为具有微观功能的工作簿来保存代码,其扩展名将是 .xlsm .
- 这将创建一个用户定义的函数名称 城市距离 .
VBA代码解释
- 我们首先给我们的 职能 名称 城市距离 . 第一城市 作为字符串。 第二城市 作为字符串,和 目标值 由于字符串也被作为参数包括在内。
- 然后我们宣布 设置HTTP 作为一个对象,而 初始点 , 终点 , 距离单位 ,以及 输出网址 作为字符串。
- 后来,我们改变了 距离单位 至 千米 和 初始点 的起点。 网址 链接。
- 接下来,我们设置必要的参数,以便在我们的 VBA代码 和 API .
- 然后我们创建了我们的 用户定义的功能 .
总结
上述方法将帮助你 计算两个城市之间的距离 在Excel中 希望这对你有帮助!如果你有任何问题、建议或反馈,请在评论区告诉我们。 或者你可以看一下我们的其他文章。 淘宝网 博客!