如何在Excel中计算两个地址之间的驾驶距离

  • Share This
Hugh West

微软Excel是一个非常通用的电子表格程序。 它所提供的工作范围之广是你无法想象的。 你甚至可以在Excel中计算两个地址之间的驾驶距离。 如果你有一个地址清单,要找到它们之间的差异,你当然可以使用MS Excel。 你也可以手动计算距离。 但这将是非常耗时的。 由于你有因此,在这篇文章中,我将告诉你如何在Excel中计算两个地址之间的驾驶距离。

下载实践工作手册

你可以从下面的链接中下载Excel文件,并随着它进行练习。

计算两个地址之间的驾驶距离.xlsm

在Excel中计算两个地址之间驾驶距离的2种有效方法

1.使用三角函数来计算驾驶距离

在这里,我将告诉你如何结合不同的 三角函数 来计算Excel中两个地址之间的驾驶距离。

为了给你一个例子,我取了两个地址。 第一个地址是 MacArthur Park, Camden NSW, 澳大利亚 其经度和纬度为 34.06312149 -118.2783975 第二个地址是 美国新泽西州泽西城 其经度和纬度为 40.71799929 -74.04276812 分别是。

现在,我将结合 ACOS , COS , 冼国华 , & RADIANS 该公式将有效地计算出两个地址之间以英里为单位的驾驶距离。

对于这一点。

❶选择单元格 D8 首先。

❷然后在该单元格插入以下公式。

=acos(cos(radians(90-c6)) *cos(radians(90-c5)) +sin(radians(90-c6)) *sin(radians(90-c5)) *cos(radians(d6-d5)) ) *3959

之后,按 进入 按钮。

现在,你会看到,该公式已经计算出了在以下地点的行驶距离 麦克阿瑟公园,卡姆登新州,澳大利亚。 美国新泽西州泽西城 因此,你将在单元格中看到结果 D8 这就是 2445.270922 英里。

公式分解

  • cos(radians(90-c6)) *cos(radians(90-c5)) - 的 RADIANS 函数将数值转换为弧度,而 COS 函数提供数值的余弦,然后将纬度的余弦相乘。 输出 - 0.365377540842758
  • cos(radians(d6-d5)) - 提供两个地址之间经度差的余弦值。 输出 - 0.716476936499882
  • sin(radians(90-c6)) *sin(radians(90-c5)) - 从90弧度计算经度的分流,并乘以正弦值。 输出 - 0.627884682513118
  • sin(弧度(90-c6))*sin(弧度(90-c5))*cos(弧度(d6-d5))。 - 成为0.627884682513118 * 0.716476936499882。 输出 - 0.449864893802199
  • cos(radians(90-c6)) *cos(radians(90-c5)) +sin(radians(90-c6)) *sin(radians(90-c5) *cos(radians(d6-d5) - 成为0.365377540842758 * 0.449864893802199。 输出 - 0.815242434644958
  • 然后 ACOS 函数对该值进行算术运算。 输出 - 0.617648629071256
  • 最后,将该值乘以 3959 - 0.617648629071256 *3959 提供以英里为单位的结果。 输出 - 2445.270922

阅读更多。 如何在Excel中计算两个地址之间的距离(2种方法)

2.使用VBA代码计算两个地址之间的驾驶距离

在本节中,我将使用一个 VBA 然后我将使用该函数在Excel中计算两个地址之间的驾驶距离。

这里,我使用了两个地址。 第一个地址是 MacArthur Park, Camden NSW, 澳大利亚 其经度和纬度为 34.06312149 -118.2783975 第二个地址是 美国新泽西州泽西城 其经度和纬度为 40.71799929 -74.04276812 分别是。

我将为每个地址生成坐标。 坐标是纬度和经度的组合。 要生成一个坐标。

  • 先输入一个地址的纬度。
  • 然后插入一个逗号。
  • 之后再输入同一地址的经度。

所以第一个地址的坐标是 34.0631214903094,-118.27839753751 而第二个地址的坐标是 40.7179992930381,-74.0427681204225 .

ǞǞǞ VBA 代码需要一个 API 驾车距离的计算方法。 API 代表应用编程接口。 你可以使用一个 API 连接到 谷歌地图 滨州地图 无论你喜欢什么。

但创建 谷歌地图API 反之,你可以创建一个 API 的。 必应MAP 免费的。

因此,我在使用 必应MAP API 这里。

  • 要创建一个免费的 必应MAP API , 点击这里 .

我已经创建了一个 API 我在此附上 API 下面。

AhFG0hk5nKCcQlk80MRaSk1ZtoYUYsX98BCLWi7p7MKZ-VrzOWptdUwsvj9D3L9F

现在,是时候编写 VBA 代码。 对于这一点。

  • 新闻 ALT + F11 以打开 VBA编辑器 .
  • 现在转到 插入 模块 来打开一个新的模块。

打开后 VBA编辑器 ,插入以下内容 VBA 打开的模块中的代码。

 Option Explicit Public Function Driving_Distance(startlocation As String, destination As String, keyvalue As String) Dim First_Value As String, Second_Value As String, Last_Value As String, mitHTTP As Object, mitUrl As String First_Value = "//dev.virtualearth.net/REST/v1/Routes/DistanceMatrix? origins=" Second_Value = "& destinations=" Last_Value = "& travelMode=driving& o=xml& key="& keyvalue & "&distanceUnit=mi" Set mitHTTP = CreateObject("MSXML2.ServerXMLHTTP") mitUrl = First_Value & startlocation & Second_Value & destination & Last_Value mitHTTP.Open "GET", mitUrl, False mitHTTP.SetRequestHeader "User-Agent", "Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.0)" mitHTTP.Send("" ) Driving_Distance =Round(Round(WorksheetFunction.FilterXML(mitHTTP.ResponseText, "//TravelDistance"), 3), 0) End Function 

代码分解

  • 在这里,我创建了一个用户定义的函数,叫做 驾驶距离。
  • 然后我用了3个参数。 起始位置 , 目的地 ,以及 keyvalue。 这些是两个地址的位置和 API 分别是值。
  • 然后我使用了几个变量,如 首先_值 , 二次值 , 最后的价值 , 淘宝网 , & mitUrl。 这些变量用于存储不同的值。
  • 然后将这些值(存储在 淘宝网 )并使用了几个对象方法( 开放式 , 设置RequestHeader , 发送 )。 这就是我如何设法计算出驾驶距离的方法。 API .

这个 VBA 代码生成了一个用户定义的函数,名为 驾驶距离 .

职能 驾驶距离 需要 3个论点 总的来说。

这里有一个通用的语法 驾驶距离 功能。

=Driving_Distance(Start_Location_Coordinate,End_Location_Coordinate, API)

现在,是应用用户定义的函数的时候了。 为此。

  • 选择单元格 E10 .
  • 然后插入以下公式。
=Driving_Distance(E5,E6,C8)

  • 现在,按 进入 .

公式分解

  • E5 是指 起始点_位置_坐标 .
  • E6 是指 末端_位置_坐标 .
  • C8 是指 API 的。 必应MAP .

该函数计算两个地址之间的驾驶距离,单位为英里。 查看单元格 E10 它将看到这个数字。 2790 .

因此,在这之间的驾驶距离 麦克阿瑟公园,卡姆登新州,澳大利亚。 美国新泽西州泽西城 2790 英里。

阅读更多。 如何在Excel中计算两个地址之间的距离(3种方法)

练习部分

在所提供的Excel文件的末尾,你会得到一个像下面截图一样的Excel表,在这里你可以练习本文讨论的所有方法。

总结

综上所述,我讨论了在Excel中计算两个地址之间的驾驶距离的2种方法。 如果有任何问题,请不要犹豫,在下面的评论区提出。 我们会尽快回复所有相关的疑问。 并请访问我们的网站 优秀 以探索更多。

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.