Съдържание
Excel има широк спектър от приложения. И докато използвате VBA тогава изглежда, че можем да правим каквото си поискаме в Excel. Така че, разбира се, можем да намиране на разстоянието между местата В тази статия ще покажа бързо ръководство за изчисляване на разстоянието в Excel с Google Maps с резки стъпки и ясни илюстрации.
Изтегляне на работна тетрадка за практика
Можете да изтеглите безплатната работна тетрадка на Excel оттук и да се упражнявате сами.
Изчисляване на разстоянието с помощта на Google-Maps.xlsmИзползване на дефинирана от потребителя функция за изчисляване на разстоянието в Excel с Google Maps
Тук ще намиране на разстоянието между MacArthur Park и Jersey City с помощта на Google Maps.
За да изчислим разстоянието в Excel с помощта на Google Maps, ще ни е необходим API ключ. API означава Интерфейс за програмиране на приложения . Excel се свързва с Google Maps, като използва API ключ за събиране на необходимите данни. Някои карти предоставят безплатни API ключове като Bing Maps. Но Google Maps не предоставя безплатен API. Въпреки че управлявате безплатен API, по някакъв начин това няма да работи перфектно. Така че ще трябва да закупите API ключ от тази връзка.
Тук успях да направя безплатен API Не работи правилно, просто се използва, за да се покаже като пример. Ще използваме VBA за създаване на дефинирана от потребителя функция с име Изчисляване на разстоянието (Calculate_Distance) към намиране на разстоянието . Той ще има три аргумента - Начално място , Дестинация , и Ключ за API . Сега нека започнем процедурите.
Стъпки:
- Натиснете ALT + F11 за да отворите Прозорец VBA .
- След това щракнете върху следното: Вмъкване> Модул за създаване на нов модул.
- По-късно въведете следните кодове в прозореца-
Public Function Calculate_Distance(start As String, dest As String, Alink As String) As Double Dim first_Value As String, second_Value As String, last_Value As String Dim mitHTTP As Object first_Value = "//maps.googleapis.com/maps/api/distancematrix/json?origins=" second_Value = "&destinations=" last_Value = "&mode=car&language=pl&sensor=false&key=" & Alink Set mitHTTP =CreateObject("MSXML2.ServerXMLHTTP") Url = first_Value & Replace(start, " ", "+") & second_Value & Replace(dest, " ", "+") & last_Value mitHTTP.Open "GET", Url, False mitHTTP.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" mitHTTP.Send ("") If InStr(mitHTTP.ResponseText, """distance"" : {"") = 0 Then GoTo ErrorHandl Set mit_reg =CreateObject("VBScript.RegExp"): mit_reg.Pattern = """value"".*?([0-9]+)": mit_reg.Global = False Set mit_matches = mit_reg.Execute(mitHTTP.ResponseText) tmp_Value = Replace(mit_matches(0).Submit_matches(0), ".", Application.International(xlListSeparator)) Calculate_Distance = CDbl(tmp_Value) Exit Function ErrorHandl: Calculate_Distance = -1 End Function
- Тогава нищо, просто се върнете към листа си.
Разбивка на кода:
- Първо, използвах процедура Public Function Изчисляване на разстоянието (Calculate_Distance) .
- След това декларира някои променливи first_Value, second_Value и last_Value за аргументите на нашата дефинирана от потребителя функция.
- Задайте стойностите на променливите (всяка стойност е самоописателна) и задайте mitHTTP обект в ServerXMLHTTP да използвате GET (използвано по-късно, това свойство на обекта ще позволи използването на POST метод също).
- Урл е комбинацията от всички зададени по-рано стойности, свойството open на mitHTTP обект го използва.
- След присвояване на стойностите библиотечната функция извършва останалата част от изчисленията.
Сега виждате, че нашата функция е готова за използване.
- В Клетка C8 , въведете следната формула-
=Изчисляване на разстоянието(C4,C5,C6)
- Накрая просто натиснете бутона ВЪВЕДЕТЕ за да получите разстоянието. Той ще покаже разстоянието в Мерна единица .
Прочетете още: Как да изчислим разстоянието между два адреса в Excel
Плюсове и минуси при изчисляване на разстоянието с Google Maps
- Трябва да имате валидно Ключ за API .
- Горният код ще даде резултата в Мерна единица .
- Дефинираната от потребителя функция използва директно имената на населените места, без да е необходимо да се използват координати.
- Уверете се, че сте използвали валидно място.
Предимства и недостатъци на изчисляването на разстоянието с Google Maps
Предимства
- За няколко големи места това е напълно възможно, защото можем да използваме Дръжка за пълнене инструмент за копиране на формулата. Това не е възможно в Карти на Google
- Това е доста по-бърз начин.
- Не е необходимо да използвате координати.
Недостатъци
- Тя не може да работи с координати.
- Няма да получите картата или маршрута, а само разстоянието.
- Няма да работи с приблизителното съвпадение на имената на местата.
Заключение
Надявам се, че описаните по-горе процедури ще бъдат достатъчно добри за изчисляване на разстоянието в Excel с Google Maps. Не се колебайте да зададете всеки въпрос в раздела за коментари и моля да ми дадете обратна връзка. ExcelWIKI за да проучите повече.