Hur man beräknar avståndet mellan två städer i Excel

  • Dela Detta
Hugh West

Det finns flera användningsområden för Excel . Den coola specialfunktionen och formeln i Microsoft Excel kan bestämma avståndet mellan två specifika städer eller platser på planeten. Det är viktigt att kunna beräkna avståndet Det gör det möjligt att beräkna det faktiska avståndet och ger dig en hygglig uppskattning av hur lång tid resan kommer att ta. Men med Excel kan vi enkelt göra det. I den här artikeln kommer vi att visa flera sätt att beräkna avståndet mellan två städer i Excel.

Ladda ner övningsboken

Du kan ladda ner arbetsboken och öva med dem.

Beräkna avståndet mellan två städer.xlsm

Introduktion av datamaterialet

För att beräkna avståndet mellan två städer måste vi först förbereda datasetet. Anta att vi har två städer Los Angeles som är en storstad i delstaten Kalifornien , och Pasco som är en stad i Washington Nu måste vi ta reda på avståndet mellan dem, och för detta måste vi känna till latitud och longitud Vi kan helt enkelt hitta vilken stads latitud och longitud som helst med Excel. Vi ska se hur vi kan göra det.

STEG:

  • Först väljer du den cell där vi skriver städernas namn. I vårt fall väljer vi cellerna B5 , och B6 .
  • För det andra, gå till Uppgifter i bandet.
  • För det tredje, i den Datatyper klickar du på Geografi .

  • För att hitta latituden markerar du sedan cellen där du har lagt in latituden och skriver formeln där.
=B5.Latitud

  • Tryck på Gå in på för att se resultatet.

  • På samma sätt hittar vi latituden för cellen B6 .
  • För att hitta longitud och latitud väljer du en cell och skriver in följande formel i den cellen.
=B5.Longitud

  • Tryck på Gå in på tangenten på tangentbordet.

  • På samma sätt får vi den B6 genom att följa de tidigare stegen.
  • Nu har vi båda städernas latitud och longitud. Vårt dataset är nu redo att användas.

5 olika metoder för att beräkna avståndet mellan två städer i Excel

Genom att hitta avståndet mellan två platser kan vi sedan bestämma avståndet mellan två bostäder. Med hjälp av denna information kan vi uppskatta hur lång tid det tar att resa mellan bostäderna. För att hitta avståndet mellan två städer använder vi ovanstående dataset som vi just har gjort.

1. Tillämpa Haversine-formeln för att beräkna avståndet mellan två städer

En av de grundläggande ekvationerna för utforskning av haven är Haversine Formel som kan användas för att beräkna avståndet mellan två platser på ett sfäriskt plan om man bestämmer deras latitud och longitud samt halvklotets radie. GPS Vi följer stegen för att använda formeln för att beräkna avståndet mellan två städer.

STEG:

  • Till att börja med väljer du den cell där du vill få fram avståndet, så vi väljer cell C8 .
  • Sätt sedan in Haversine Formel i den markerade cellen.
=3959*ASIN(SQRT((SIN(C6-C5)/2)^2+COS(C5)*COS(C6)*(SIN(D6-D5)/2)^2))

  • Slutligen trycker du på Gå in på för att se resultatet.

  • Med hjälp av formeln får vi alltså följande resultat 1367.581282 .

Läs mer: Hur man beräknar körsträckan mellan två adresser i Excel

2. Beräkna avståndet mellan två städer med Excel-funktionerna ACOS, SIN, COS och RADIANS

Den omvända cosinus av ett värde är vad ACOS-funktionen. returnerar. Sinus av en vinkel i radianer returneras med hjälp av Excel-funktionen SIN En vinklings cosinus i radianer återges med följande formel COS-funktionen. Radians ändras till grader med hjälp av Excel-funktionen RADIANS Vi kan kombinera dessa funktioner för att få fram avståndet mellan två städer. Det har också i princip automatiserats med hjälp av GPS Låt oss använda kombinationen av dessa funktioner för att få fram avståndet mellan två städer genom att gå igenom stegen.

STEG:

  • Välj först och främst den cell där du vill få fram avståndet; i det här fallet väljer vi cell C8 .
  • Därefter infogar du kombinationen av funktionens formel i den valda cellen.
=ACOS(COS(RADIANER(90-C5)) *COS(RADIANER(90-C6)) +SIN(RADIANER(90-C5)) *SIN(RADIANER(90-C6)) *COS(RADIANER(D5-D6))) *6371

  • Om du vill se resultatet trycker du på Gå in på i slutet.

  • Genom att tillämpa formeln får vi alltså följande antal 1357.033633 .

Läs mer: Hur man beräknar avståndet mellan två GPS-koordinater i Excel

3. Kombinera Excel-funktionerna CONCATENATE och SUBSTITUTE för att få fram avståndet mellan två städer

Om du vill kombinera två eller flera ordsekvenser till en fras använder du textfunktionen CONCATENATE . Ungefär trettio textstycken kan sammanfogas med hjälp av Excel CONCATENATE som returnerar resultatet som en text. Funktionen SUBSTITUTE i Excel använder jämförelse för att ändra texten i en specificerad sträng. Vi kan kombinera dessa två funktioner för att skapa en Google Map länk för att hitta den Avstånd mellan två adresser. Låt oss använda formeln för att få fram avståndet mellan två städer genom att gå igenom stegen.

STEG:

  • På samma sätt som i den föregående metoden väljer du den cell där du vill få Google Map ; i detta fall väljer vi cell C8 .
  • Ange sedan formeln i den valda cellen.

=CONCATENATE("//maps.google.co.uk/maps?f=d&source=s_d&saddr=",

SUBSTITUTE(B5," ", "+"),"&daddr=",SUBSTITUTE(B6," ", "+"))

  • För att visa resultaten trycker du på Gå in på nyckel.

Med hjälp av denna formel kan du länka till en Google Map som visar vägen från Los Angeles till Pasco Städerna kommer att läggas till i länken med hjälp av CONCATENATE funktionen, och namnen på städerna läggs till med hjälp av funktionen UTBYGGNING funktion.

  • Skriv sedan in den här länken i sökrutan i din webbläsare för att ta reda på hur långt de två städerna ligger från varandra.

CONCATENATE och UTBYGGNING kan också användas i Excel för att bestämma avståndet mellan två städer på jorden.

Läs mer: Hur man beräknar mil mellan två adresser i Excel (2 metoder)

4. Skapa LAMBDA-funktionen för att beräkna avståndet mellan två städer

LAMBDA-funktionen i Excel används för att bygga anpassade funktioner som kan användas i ett arbetsblad och nås med välkända namn. När den väl har definierats och fått ett namn kan vi använda dessa funktioner var som helst i arbetsboken.

Den viktigaste ekvationen för avståndet är:

D = acos (sinΦ 1 . sinΦ 2 + cosΦ 1 . cosΦ 2 cos Δλ) . R

Även om det kan verka lite överväldigande är de inmatningar som är viktigast för oss:

  • Utgångspunktens latitud och longitud.
  • Den slutliga platsens latitud och longitud.

Så i formeln eller ekvationen.

  • Δλ anger skillnaden mellan longituderna ( lon_2-lon_1 ).
  • Φ 1 och Φ 2 ange sekventiellt lat_1 och lat_2 .
  • R anger ytans radie.

Vi skapar en LAMBDA för att beräkna avståndet mellan två städer genom att följa stegen nedan.

STEG:

  • Välj först cell C8 .
  • Lägg dessutom in formeln i den cellen.
=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)

  • Tryck sedan på Gå in på .

  • Detta visar resultatet, men formeln är för stor och det kan vara svårt att förstå när du använder den många gånger.
  • Istället för att göra detta kan vi skapa en anpassad formel med hjälp av LAMBDA funktion.
  • För detta går du till Formler i bandet.
  • I enlighet med Definierade namn grupp, klicka på Namn chef .

  • Detta kommer att visa Namn chef dialogrutan.
  • Klicka nu på Ny meny.

  • Detta leder dig till Nytt namn fönster.
  • Vidare namnge formeln, eftersom vi vill beräkna avståndet mellan två städer, så sätter vi namnet på formeln. CityDistance .
  • Lägg sedan in följande formel i fältet för Hänvisar till .

=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)))

  • Klicka sedan på OK .

  • Detta leder dig till namn Manager dialog igen.
  • Klicka dessutom på Stäng för att slutföra processen.

  • Nu kan du hitta en ny anpassad funktion CityDistance Med hjälp av funktionen får du fram avståndet mellan två städer.

  • Genom att tillämpa formeln får vi alltså följande antal 1358.524645 .

Läs mer: Hur man beräknar Levenshtein-avstånd i Excel (4 enkla metoder)

5. Beräkna avståndet mellan två städer med Excel VBA

Att göra en API ( Programmeringsgränssnitt ) och använda den för att bygga en Användardefinierad funktion i VBA är två andra sätt att bestämma avståndet mellan två platser. För att samla in data för en plats ansluter Excel via API till vilken karta som helst, inklusive Google Map och Bing-karta För att kunna använda denna teknik måste vi därför först fastställa en API Det är verkligen enkelt, men tyvärr är det bara Bing-karta erbjuder en kostnadsfri API Vi kommer att demonstrera detta genom att använda det kostnadsfria programmet Bing Map API nyckel. Klicka här för att skapa din egen Bing Map API-nyckel .

STEG:

  • Till att börja med har vi skapat en API och placerade den på cellen C8 .

  • Gå nu till Utvecklare i bandet.
  • Sedan, från den Kod kategori, klicka på Visual Basic för att öppna Redigerare för Visual Basic . eller tryck på Alt + F11 för att öppna Redigerare för Visual Basic .

  • Istället för att göra detta kan du bara högerklicka på på arbetsbladet och gå till Visa kod Detta tar dig också till Redigerare för Visual Basic .

  • Detta kommer att visas i Redigerare för Visual Basic .
  • Klicka vidare på Modul från Infoga rullgardinsmenyn.

  • Detta skapar en Modul i arbetsboken.
  • Kopiera och klistra in VBA-kod som visas nedan.

VBA-kod:

 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 (compatible; MSIE 6.0; Windows NT 5.0)" Setup_HTTP.Send("") CityDistance = Round(Round(WorksheetFunction.FilterXML(Setup_HTTP.ResponseText, _ "//TravelDistance"), 3), 0) End Function 
  • Spara koden genom att spara hela arbetsboken som en mikroaktiverad arbetsbok och tillägget blir .xlsm .

  • Detta skapar ett användardefinierat funktionsnamn CityDistance .

VBA-kodförklaring

  • Vi började med att ge våra Funktion namnet CityDistance . Första staden Som sträng, Second City som sträng, och Målvärde As String ingick också som argument.
  • Därefter förklarade vi följande Konfigurera HTTP som ett objekt och Utgångspunkt , Slutpunkt , Avståndsenhet , och Url för utdata som strängar.
  • Senare ändrade vi den Avståndsenhet till kilometer och Utgångspunkt till utgångspunkten för Url länk.
  • Därefter ställer vi in de parametrar som krävs för att upprätta en anslutning mellan våra VBA-kod och API .
  • Vi skapade sedan vår Användardefinierad funktion .

Slutsats

Ovanstående metoder kommer att hjälpa dig att Beräkna avståndet mellan två städer i Excel Hoppas att detta hjälper dig! Låt oss veta i kommentarsfältet om du har några frågor, förslag eller feedback. Du kan också ta en titt på våra andra artiklar i ExcelWIKI.com blogg!

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.