Turinys
Straipsnyje bus parodyta, kaip apskaičiuoti atstumas tarp dviejų adresų "Excel" programoje. "Microsoft Excel" turi šią puikią specialią funkciją ir formulę, skirtą atstumo nustatymas tarp dviejų pasaulio vietų. Jei turite GPS koordinatės iš dviejų vietų, galite lengvai nustatyti atstumą tarp šių vietų. bet kokiu norimu vienetu.
Atsisiųsti praktikos sąsiuvinį
Atstumo tarp dviejų adresų apskaičiavimas.xlsm
3 būdai, kaip "Excel" apskaičiuoti atstumą tarp dviejų adresų
Mūsų duomenų rinkinyje Platuma ir Ilguma svetainėje Ohajas ir Aliaska . Išmatuosime atstumą tarp jų.
Svetainė Platumos svetainėje Ohajas ir Aliaska yra 40.4173 Šiaurės ir 64.2008 m. šiaurė Taip pat atitinkamai Ilgumos svetainėje Ohajas ir Aliaska yra 82.9071 į vakarus ir 149.4937 Vakarai atitinkamai.
1. Haversino formulės naudojimas atstumui tarp dviejų adresų apskaičiuoti
Jei gerai mokate matematiką, naudodami Haversino formulė jums puikiai tiks. Nors ji pateiks apytikslį rezultatą, jis yra gana geras.
Pirmiausia turime žinoti pagrindinė lanko ilgio formulė . Ir naudodamiesi šia formule, palyginkime ją su atstumu tarp dviejų vietų Žemėje. Toliau pateikiama formulė.
S = rθ
S = atstumas tarp dviejų adresų
r = Žemės spindulys
θ = kampas, kurį Žemės centre sudaro du adresai
Tačiau jei turite GPS koordinatės iš dviejų vietų, reikia nustatyti iš Haversino formulė . Pažvelkite į Haversino formulė parodyta toliau.
Jei palygintumėte tai su lanko ilgio formulė , gausite kaip šiame paveikslėlyje.
Supažindinsime jus su parametrais Haversino formulė .
φ 1 = Pirmosios vietos geografinė platuma
φ 2 = Antrosios vietos geografinė platuma
ℽ 1 = Pirmosios vietos ilguma
ℽ 2 = Antrosios vietos geografinė platuma
Dabar žingsnis po žingsnio parodysiu, kaip šią formulę taikyti "Excel" programoje.
Žingsniai:
- Pirmiausia sukurkite ląstelę atstumo vertei saugoti ir ląstelėje įveskite šią formulę C8 .
=2*6400*ASIN(SQRT((SIN(C6-C5)/2)^2+COS(C5)*COS(C6)*(SIN(D6-D5)/2)^2))
Formulėje naudojama ASIN , SQRT , SIN ir COS funkcijos Tai labai paprasta, jei tik pažvelgsite į Haversino formulė . Atstumą matuojame kilometrai , todėl Žemės spindulys kilometrais yra 6400 km . ASIN reiškia, kad atvirkštinis sinusas arba ArcSine Jei palyginsime parametrų kampus Haversino formulė naudodami "Excel" formulę, gausime,
1 = Ohajo platuma (C5)
2 = Aliaskos platuma (C6)
ℽ 1 = Ohajo ilguma (D5)
ℽ 2 = Aliaskos platuma (D6)
- Po to paspauskite ĮVESKITE mygtuką, kad pamatytumėte atstumą tarp Ohajas ir Aliaska svetainėje Kilometrai .
- Vėliau, jei norite išmatuoti atstumą myliomis , ląstelėje naudokite šią formulę C8 .
=2*3959*ASIN(SQRT((SIN(C6-C5)/2)^2+COS(C5)*COS(C6)*(SIN(D6-D5)/2)^2))
Čia naudojome tą pačią "Excel" formulę, kurią naudojome atstumui rasti mylios Dėl šios priežasties Žemės spindulį laikome mylios kuris yra 3959 .
Taigi galite apskaičiuoti atstumas tarp dviejų žemės adresų "Excel" programoje taikant Haversino formulė .
Skaityti daugiau: Kaip apskaičiuoti atstumą tarp dviejų koordinačių programoje "Excel" (2 metodai)
2. "Excel" CONCATENATE ir SUBSTITUTE funkcijų taikymas atstumui tarp dviejų adresų apskaičiuoti
Galite sukurti "Google" žemėlapis nuorodą, kad rastumėte atstumas tarp dviejų adresų naudojant "Excel CONCATENATE ir SUBSTITUTAS Funkcijos . Toliau aprašykite šį procesą.
Žingsniai:
- Pirmiausia įveskite šią formulę C8 .
=CONCATENATE("//maps.google.co.uk/maps?f=d&source=s_d&saddr=",
SUBSTITUTE(B5," ", "+"),"&daddr=",SUBSTITUTE(B6," ", "+"))
Ši formulė sukurs "Google" žemėlapis nuorodą, kaip galite keliauti iš Ohajas į Aliaska . CONCATENATE funkcija pridės adresai nuorodoje ir SUBSTITUTAS funkcija įrašys pavadinimą adresai .
- Tada paspauskite ĮVESKITE mygtuką ir pamatysite "Google" žemėlapis nuoroda C8 .
- Po to naudokite šį nuoroda į interneto paieškos juostą ir gausite atstumas informacijos apie šiuos du adresai .
Galiausiai galite apskaičiuoti atstumas tarp dviejų žemės adresų "Excel" programoje taikant CONCATENATE ir SUBSTITUTAS funkcijos.
Skaityti daugiau: Kaip apskaičiuoti atstumą tarp dviejų miestų programoje "Excel
3. VBA naudojimas atstumui tarp dviejų adresų apskaičiuoti "Excel" programoje
Kitas būdas apskaičiuoti atstumas tarp dviejų adresų gali būti API ( Taikomosios programos sąsaja ) nuorodą ir naudojant ją sukurti Naudotojo apibrėžta funkcija pagal VBA . Galite padaryti API nuoroda Bing nemokamai. "Bing" žemėlapis savo API raktą, Spauskite čia .
Žingsniai:
- Pirmiausia eikite į Kūrėjas >> "Visual Basic .
- Po to pasirinkite Įdėkite >> Modulis atidaryti VBA modulis .
- Vėliau įveskite šį kodą į VBA modulis . Mes kuriame Naudotojo apibrėžta funkcija apskaičiuoti atstumas svetainėje mylios .
Option Explicit Public Function DistanceInMiles(First_Location As String, _ Final_Location 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=mi" Set Setup_HTTP = CreateObject("MSXML2.ServerXMLHTTP") Output_Url = Initial_Point & First_Location & Ending_Point & Final_Location & 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 ("") DistanceInMiles = Round(Round(WorksheetFunction.FilterXML(Setup_HTTP.ResponseText, _ "//TravelDistance"), 3), 0) End Function
Kodo paaiškinimas
- Pirmiausia pavadinome savo Funkcija kaip DistanceInMiles Mes taip pat įterpėme 3 parametrai: First_Location As String, Final_Location As String ir Target_Value As String .
- Po to paskelbėme Initial_Point , Ending_Point , Atstumo_vienetas ir Outout_Url kaip Stygos ; Setup_HTTP kaip Objektas .
- Vėliau nustatėme Initial_Point kaip pradžia URL nuoroda , Ending_Point kaip Paskirties vieta ir Atstumo_vienetas į Miles .
- Po to nustatome reikiamus parametrus, kad sukurtume ryšį tarp mūsų VBA kodą ir API
- Galiausiai nustatėme savo Naudotojo apibrėžta funkcija .
- Po to, laikydamiesi tų pačių procedūrų, atlikome dar vieną Naudotojo apibrėžta funkcija rasti atstumą kilometrai .
Galite matyti, kad mes tiesiog pakeitėme Atstumo_vienetas į kilometrai .
- Toliau pateiktame paveikslėlyje matote API ląstelės raktas C8 .
- Po to ląstelėje įveskite šią formulę C8 .
=Atstumas myliose(E5,E6,C8)
- Tada paspauskite ĮVESKITE mygtuką ir pamatysite atstumas tarp Ohajas ir Aliaska svetainėje mylios .
- Po to naudokite šią formulę, kad pamatytumėte atstumas svetainėje kilometras .
=AtstumasInKM(E5,E6,C8)
Taigi galite apskaičiuoti atstumas tarp dviejų adresų naudojant VBA ir API raktas.
Skaityti daugiau: Kaip apskaičiuoti atstumą tarp dviejų adresų "Excel" programoje
Dalykai, kuriuos reikia prisiminti
- Turėkite tai omenyje, turite įdėti maždaug teisingą GPS koordinatės šių valstybės duomenyse, nes atstumui nustatyti naudojate internetą. Kadangi valstybės yra vakarų į Meridiano linija , abu jų Ilgumos bus neigiamas.
Praktikos skyrius
Šiame skyriuje pateiksiu šio straipsnio duomenų rinkinį, kad galėtumėte patys praktiškai išbandyti šiuos metodus.
Išvada
Pakanka pasakyti, kad išmoksite labai veiksmingų metodų, kaip apskaičiuoti atstumas tarp dviejų adresų "Excel" programoje perskaitę šį straipsnį. Jei turite geresnių metodų, klausimų ar atsiliepimų apie šį straipsnį, pasidalykite jais komentarų laukelyje. Tai padės man praturtinti būsimus straipsnius. Norėdami gauti daugiau klausimų, maloniai prašome apsilankyti mūsų svetainėje ExcelWIKI.com .