如何在Excel中计算两个城市之间的距离

  • Share This
Hugh West

有几种用途 ǞǞǞ 中很酷的特殊功能和公式。 微软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中 希望这对你有帮助!如果你有任何问题、建议或反馈,请在评论区告诉我们。 或者你可以看一下我们的其他文章。 淘宝网 博客!

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.