Innehållsförteckning
Excel har många olika användningsområden. VBA verkar det som om vi kan göra vad vi vill i Excel. hitta avståndet mellan platser I den här artikeln visar jag en snabbguide för att beräkna avståndet i Excel med Google Maps med skarpa steg och tydliga illustrationer.
Ladda ner övningsboken
Du kan ladda ner den kostnadsfria Excel-arbetsboken här och öva på egen hand.
Beräkna avstånd med Google-Maps.xlsmAnvända en användardefinierad funktion för att beräkna avstånd i Excel med Google Maps
Här kommer vi att hitta avståndet mellan MacArthur Park och Jersey City med hjälp av Google Maps.
Först måste vi veta en viktig sak: För att beräkna avståndet i Excel med hjälp av Google Maps behöver vi en API nyckel. API står för Programmeringsgränssnitt Excel ansluter till Google Maps med hjälp av API-nyckeln för att samla in nödvändiga data. Vissa kartor tillhandahåller gratis API-nycklar, till exempel Bing Maps. Men Google Maps tillhandahåller inte gratis API. Även om du hanterar ett gratis API kommer det inte att fungera perfekt. Så du måste köpa API-nyckeln. API från den här länken.
Här har jag lyckats med en gratis API Den fungerar inte riktigt, den används bara för att visa som exempel. Vi använder VBA för att skapa en användardefinierad funktion som heter Beräkna_avstånd till hitta avståndet Den kommer att ha tre argument. Utgångspunkt , Destination , och API-nyckel Nu kan vi börja med förfarandena.
Steg:
- Tryck på ALT + F11 för att öppna VBA-fönster .
- Klicka sedan på följande: Infoga> Modul för att skapa en ny modul.
- Senare skriver du följande koder i fönstret-
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
- Då är det inget, gå bara tillbaka till ditt blad.
Uppdelning av koden:
- För det första använde jag en Public Function-procedur Beräkna_avstånd .
- Därefter deklarerade vi några variabler first_Value, second_Value och last_Value. för argumenten i vår användardefinierade funktion.
- Ange värden för variablerna (varje värde är självbeskrivande), och ange mitHTTP objekt i ServerXMLHTTP för att använda sig av GET metoden (som används senare, denna objektegenskap kommer att göra det möjligt att använda POST metoden).
- Url är en kombination av alla de värden som fastställts tidigare, den öppna egenskapen för mitHTTP objektet använde det.
- Efter att ha tilldelat värdena gör biblioteksfunktionen resten av beräkningen.
Nu ser du att vår funktion är redo att användas.
- På Cell C8 , skriv följande formel-
=Beräkna avståndet(C4,C5,C6)
- Slutligen trycker du bara på ENTER för att få fram avståndet. Det visar avståndet i Mätarenhet .
Läs mer: Hur man beräknar körsträckan mellan två adresser i Excel
För- och nackdelar med att beräkna avstånd med Google Maps
- Du måste ha ett giltigt API-nyckel .
- Ovanstående kod kommer att ge resultatet i Mätarenhet .
- Den användardefinierade funktionen använder ortnamn direkt, utan att behöva använda koordinater.
- Se till att du har använt en giltig plats.
Fördelar och nackdelar med att beräkna avstånd med Google Maps
Fördelar
- För ett stort antal platser är det fullt möjligt, eftersom vi kan använda Handtag för fyllning för att kopiera formeln. Detta är inte möjligt i Google Maps
- Det är ett ganska snabbt sätt.
- Du behöver inte använda koordinater.
Nackdelar
- Det kan inte fungera med koordinater.
- Du får inte kartan eller rutten, utan bara avståndet.
- Det fungerar inte om ortnamnen stämmer ungefärligt överens.
Slutsats
Jag hoppas att de förfaranden som beskrivs ovan är tillräckligt bra för att beräkna avståndet i Excel med Google Maps. Ställ gärna frågor i kommentarsfältet och ge mig feedback. Besök ExcelWIKI för att utforska mer.