Как рассчитать расстояние между двумя адресами в Excel

  • Поделись Этим
Hugh West

Microsoft Excel - это очень универсальная программа электронных таблиц. Она позволяет выполнять такой широкий спектр задач, что вы даже не можете себе представить. В Excel можно даже рассчитать расстояние между двумя адресами. Если у вас есть список адресов, чтобы найти разницу между ними, вы, конечно, можете использовать MS Excel. Вы также можете рассчитать расстояние вручную. Но это займет слишком много времени. Поскольку у вас естьТаким образом, в этой статье я покажу вам, как рассчитать расстояние между двумя адресами в Excel.

Скачать Практическое пособие

Вы можете скачать файл Excel по следующей ссылке и практиковаться вместе с ним.

Вычислить расстояние между двумя адресами.xlsm

2 эффективных способа рассчитать расстояние между двумя адресами в Excel

1. использование тригонометрических функций для вычисления расстояния до автомобиля

Здесь я покажу вам, как сочетать различные тригонометрические функции для расчета расстояния между двумя адресами в Excel.

Для примера я взял два адреса. Первый адрес - это Парк Макартур, Камден, Новый Южный Уэльс, Австралия Его широта и долгота 34.06312149 и -118.2783975 соответственно. Второй адрес Джерси-Сити, Нью-Джерси, США Его широта и долгота 40.71799929 и -74.04276812 соответственно.

Теперь я объединю ACOS , COS , SIN , & РАДИАНС Формула будет эффективно рассчитывать расстояние между двумя адресами в милях.

За это,

❶ Выберите ячейку D8 первый.

❷ Затем вставьте в ячейку следующую формулу.

=ACOS(COS(RADIANS(90-C6)) *COS(RADIANS(90-C5)) +SIN(RADIANS(90-C6)) *SIN(RADIANS(90-C5)) * COS(RADIANS(D6-D5))) *3959

❸ После этого нажмите кнопку ENTER кнопка.

Теперь вы увидите, что формула вычислила расстояние движения между Парк Макартур, Камден, Новый Южный Уэльс, Австралия, и Джерси-Сити, Нью-Джерси, США в милях. Таким образом, вы увидите результат в ячейке D8 который 2445.270922 мили.

Разбивка формулы

  • COS(RADIANS(90-C6)) *COS(RADIANS(90-C5)) - тот РАДИАНС функции преобразуют значения в радианы и COS функция вычисляет косинус значения, затем косинусы для широты перемножаются. Выход - 0.365377540842758
  • COS(RADIANS(D6-D5)) - представляет собой значение косинуса для разницы долгот между двумя адресами. Выход - 0.716476936499882
  • SIN(RADIANS(90-C6)) *SIN(RADIANS(90-C5)) - вычисляет отклонение долготы от 90 радиан и умножает значения синуса. Выход - 0.627884682513118
  • SIN(RADIANS(90-C6)) *SIN(RADIANS(90-C5)) *COS(RADIANS(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.

Здесь я использую два адреса. Первый адрес - это Парк Макартур, Камден, Новый Южный Уэльс, Австралия Его широта и долгота 34.06312149 и -118.2783975 соответственно. Второй адрес Джерси-Сити, Нью-Джерси, США Его широта и долгота 40.71799929 и -74.04276812 соответственно.

Я создам координаты для каждого из адресов. Координата - это комбинация широты и долготы. Чтобы создать координату,

  • Сначала введите широту адреса.
  • Затем поставьте запятую.
  • После этого введите долготу того же адреса.

Таким образом, координата первого адреса 34.0631214903094,-118.27839753751 . А координата второго адреса - это 40.7179992930381,-74.0427681204225 .

Сайт VBA код требует API карты для расчета расстояния. API означает интерфейс прикладного программирования. Вы можете использовать API для подключения либо Google Map или Bing Map как вам больше нравится.

Но создание API карты Google оплачивается. Напротив, вы можете создать API из Bing MAP бесплатно.

Таким образом, я использую API Bing MAP здесь.

  • Чтобы создать бесплатный API Bing MAP , нажмите здесь .

Я создал 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 (compatible; MSIE 6.0; Windows NT 5.0)" mitHTTP.Send ("") Driving_Distance = ...Round(Round(WorksheetFunction.FilterXML(mitHTTP.ResponseText, "//TravelDistance"), 3), 0) End Function 

Разбивка кода

  • Здесь я создал определяемую пользователем функцию под названием Расстояние на автомобиле.
  • Затем я использовал 3 параметра: стартовая локация , направление и ключевое значение. Это положение двух адресов и API значение соответственно.
  • Затем я использовал несколько переменных, таких как Первое_Значение , Второе_Значение , Последнее_значение , mitHTTP , & mitUrl. Эти переменные используются для хранения различных значений.
  • Затем объедините значения (хранящиеся внутри mitUrl ) и использовал несколько объектных методов ( Открыть , SetRequestHeader , Отправить ). Таким образом, мне удалось рассчитать расстояние движения через API .

Это VBA код генерирует определяемую пользователем функцию под названием Дальность поездки .

Функция Дальность поездки требуется 3 аргумента всего.

Вот общий синтаксис функции Дальность поездки функция.

=Driving_Distance(Start_Location_Coordinate,End_Location_Coordinate, API)

Теперь пришло время применить пользовательскую функцию. Для этого,

  • Выберите ячейку E10 .
  • Затем вставьте следующую формулу:
=Driving_Distance(E5,E6,C8)

  • Теперь нажмите ENTER .

Разбивка формулы

  • E5 это Координата начала_расположения .
  • E6 это Координата конечного_положения .
  • C8 это API из Bing MAP .

Функция вычисляет расстояние между двумя адресами в милях. Проверьте ячейку E10 Он увидит номер, 2790 .

Таким образом, расстояние между Парк Макартур, Камден, Новый Южный Уэльс, Австралия, и Джерси-Сити, Нью-Джерси, США это 2790 мили.

Читать далее: Как рассчитать расстояние между двумя адресами в Excel (3 способа)

Практическая секция

В конце предоставленного файла Excel вы получите лист Excel, как на следующем снимке экрана, на котором вы сможете отработать все методы, обсуждаемые в этой статье.

Заключение

Подводя итог, я рассказал о двух способах вычисления расстояния между двумя адресами в Excel. Не стесняйтесь задавать вопросы в разделе комментариев ниже. Мы постараемся ответить на все запросы как можно быстрее. И, пожалуйста, посетите наш сайт Exceldemy чтобы узнать больше.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.