Kaip apskaičiuoti atstumą tarp dviejų adresų "Excel" programoje

  • Pasidalinti
Hugh West

"Microsoft Excel" yra labai universali skaičiuoklės programa. Ji siūlo atlikti tokias įvairias užduotis, kad net neįsivaizduojate. Su "Excel" galite net apskaičiuoti atstumą tarp dviejų adresų. Jei turite adresų sąrašą ir norite rasti skirtumą tarp jų, žinoma, galite naudoti "MS Excel". Atstumą taip pat galite apskaičiuoti rankiniu būdu. Tačiau tai užims per daug laiko. Kadangi turiteapskaičiuoti šimtus tūkstančių atstumų. Taigi šiame straipsnyje parodysiu, kaip "Excel" programa apskaičiuoti atstumą tarp dviejų adresų.

Atsisiųsti praktikos sąsiuvinį

Galite atsisiųsti "Excel" failą iš toliau pateiktos nuorodos ir praktikuotis kartu su juo.

Apskaičiuoti atstumą tarp dviejų adresų.xlsm

2 veiksmingi būdai apskaičiuoti atstumą tarp dviejų adresų "Excel" programoje

1. Trigonometrinių funkcijų naudojimas važiavimo atstumui apskaičiuoti

Čia parodysiu, kaip derinti skirtingus trigonometrinės funkcijos apskaičiuoti atstumą tarp dviejų adresų "Excel" programoje.

Pateiksiu pavyzdį: paėmiau du adresus. Pirmasis adresas yra MacArthur Park, Camden NSW, Australija . Jo geografinė platuma ir ilguma yra 34.06312149 ir -118.2783975 Antrasis adresas atitinkamai yra Džersis Sitis, Naujasis Džersis, JAV . Jo geografinė platuma ir ilguma yra 40.71799929 ir -74.04276812 atitinkamai.

Dabar sujungsiu ACOS , COS , SIN , & amp; & RADIANS funkcijos, kad sukurtumėte formulę. Pagal šią formulę bus veiksmingai apskaičiuojamas važiavimo atstumas tarp dviejų adresų myliomis.

Dėl to,

❶ Pasirinkite langelį D8 pirma.

❷ Tada į ląstelę įterpkite šią formulę.

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

❸ Po to paspauskite ĮVESKITE mygtuką.

Dabar pamatysite, kad formulė apskaičiavo važiavimo atstumą tarp MacArthur Park, Camden NSW, Australija, ir Džersis Sitis, Naujasis Džersis, JAV myliomis. Taigi, rezultatą matysite ląstelėje D8 kuris yra 2445.270922 mylios.

Formulės suskirstymas

  • COS(RADIANS(90-C6)) *COS(RADIANS(90-C5)) - ... RADIANS funkcijos paverčia vertes į radiano ir COS funkcija pateikia verčių kosinusą, tada platumos kosinusai padauginami. Išėjimas - 0.365377540842758
  • COS(RADIANS(D6-D5)) - pateikia dviejų adresų ilgumos skirtumo kosinuso vertę. Išėjimas - 0.716476936499882
  • SIN(RADIANS(90-C6)) *SIN(RADIANS(90-C5)) - apskaičiuoja ilgio nuokrypį nuo 90 radianų ir padaugina sinusines vertes. Išėjimas - 0.627884682513118
  • SIN(RADIANS(90-C6)) *SIN(RADIANS(90-C5)) *COS(RADIANS(D6-D5)) - tampa 0,627884682513118 * 0,716476936499882. Išėjimas - 0.449864893802199
  • COS(RADIANS(90-C6)) *COS(RADIANS(90-C5)) +SIN(RADIANS(90-C6)) *SIN(RADIANS(90-C5)) *COS(RADIANS(D6-D5)) - tampa 0,365377540842758 * 0,449864893802199. Išėjimas - 0.815242434644958
  • Tada ACOS funkcija arccosines reikšmę. Išėjimas - 0.617648629071256
  • Galiausiai, padauginę vertę iš 3959 - 0.617648629071256 *3959 pateikia rezultatą myliomis. Išėjimas - 2445.270922

Skaityti daugiau: Kaip "Excel" programoje apskaičiuoti mylių atstumą tarp dviejų adresų (2 metodai)

2. Apskaičiuokite atstumą tarp dviejų adresų naudodami VBA kodą

Šiame skyriuje naudosiu VBA kodą, kad sukurtumėte vartotojo apibrėžtą funkciją. Tada tą funkciją naudosiu "Excel" programoje apskaičiuodamas važiavimo atstumą tarp dviejų adresų.

Čia naudoju du adresus. Pirmasis adresas yra MacArthur Park, Camden NSW, Australija . Jo geografinė platuma ir ilguma yra 34.06312149 ir -118.2783975 Antrasis adresas atitinkamai yra Džersis Sitis, Naujasis Džersis, JAV . Jo geografinė platuma ir ilguma yra 40.71799929 ir -74.04276812 atitinkamai.

Tuo metu sukursiu kiekvieno adreso koordinates. Koordinatė yra platumos ir ilgumos derinys. Norėdami sukurti koordinatę,

  • Pirmiausia įveskite adreso platumą.
  • Tada padėkite kablelį.
  • Po to įveskite to paties adreso ilgumą.

Taigi pirmojo adreso koordinatė yra 34.0631214903094,-118.27839753751 . O antrojo adreso koordinatė yra 40.7179992930381,-74.0427681204225 .

Svetainė VBA kodas reikalauja API žemėlapyje, kad apskaičiuotų nuvažiuojamą atstumą. API reiškia taikomųjų programų sąsają. API prijungti arba "Google" žemėlapis arba "Bing" žemėlapis kaip jums patogiau.

Tačiau kuriant "Google" žemėlapio API mokama. Priešingai, galite sukurti API "Bing" žemėlapis nemokamai.

Taigi, aš naudoju "Bing" žemėlapio API čia.

  • Norėdami sukurti nemokamą "Bing" žemėlapio API , Spauskite čia .

Sukūriau API . Aš pridedu API žemiau:

AhFG0hk5nKCcQlk80MRaSk1ZtoYUYsX98BCLWi7p7MKZ-VrzOWptdUwsvj9D3L9F

Dabar laikas rašyti VBA kodas. Dėl to,

  • Paspauskite ALT + F11 atidaryti VBA redaktorius .
  • Dabar eikite į Įdėkite Modulis atidaryti naują modulį.

Atidarius VBA redaktorius , įterpti šį tekstą VBA kodas atidarytame modulyje.

 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 

Kodo suskirstymas

  • Čia sukūriau vartotojo apibrėžtą funkciją, pavadintą Atstumas važiuojant.
  • Tada naudojau 3 parametrus: pradžios vieta , paskirties vieta , ir rakto reikšmė. Tai yra dviejų adresų padėtis ir API atitinkamai vertė.
  • Tada naudojau kelis kintamuosius, pvz. First_Value , Antroji_vertė , Last_value , mitHTTP , & amp; & mitUrl. Šie kintamieji naudojami įvairioms reikšmėms saugoti.
  • Tada sujungkite vertes (saugomas mitUrl ) ir naudojo keletą objektų metodų ( Atviras , SetRequestHeader , Siųsti ). Taip man pavyko apskaičiuoti važiavimo atstumą per API .

Šis VBA kodas sukuria vartotojo apibrėžtą funkciją, vadinamą Driving_Distance .

Funkcija Driving_Distance reikia 3 argumentai iš viso.

Čia pateikiama bendra sintaksė Driving_Distance funkcija.

=Važiavimo_atstumas(Pradžios_vietos_koordinatė,Galutinės_vietos_koordinatė, API)

Dabar metas taikyti naudotojo apibrėžtą funkciją. Tam,

  • Pasirinkite langelį E10 .
  • Tada įterpkite šią formulę:
=Važiavimo atstumas(E5,E6,C8)

  • Dabar paspauskite ĮVESKITE .

Formulės suskirstymas

  • E5 yra Start_Location_Coordinate .
  • E6 yra End_Location_Coordinate .
  • C8 yra API "Bing" žemėlapis .

Funkcija apskaičiuoja važiavimo atstumą tarp dviejų adresų myliomis. E10 . Jis pamatys numerį, 2790 .

Taigi atstumas tarp MacArthur Park, Camden NSW, Australija, ir Džersis Sitis, Naujasis Džersis, JAV yra . 2790 mylios.

Skaityti daugiau: Kaip apskaičiuoti atstumą tarp dviejų adresų "Excel" programoje (3 būdai)

Praktikos skyrius

Pateikto "Excel" failo pabaigoje gausite "Excel" lapą, panašų į toliau pateiktą ekrano nuotrauką, kuriame galėsite praktiškai išbandyti visus šiame straipsnyje aptartus metodus.

Išvada

Apibendrinant, aptariau 2 būdus, kaip apskaičiuoti atstumą tarp dviejų adresų "Excel" programoje. Ir nedvejodami užduokite bet kokius klausimus toliau pateiktame komentarų skyriuje. Mes pasistengsime kuo greičiau atsakyti į visas svarbias užklausas. Ir apsilankykite mūsų svetainėje Exceldemy daugiau sužinoti.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.