Mënyrat për të llogaritur distancat midis koordinatave në Excel

Përditësimi i fundit: 04/10/2024
Mënyrat për të llogaritur distancat midis koordinatave në Excel

Dëshironi të dini mënyrat për të llogaritni distancat midis koordinatave në Excel? Këtu do t'ju mësojmë se si të llogarisni distancën në Excel, duke përdorur Latitude dhe Longitude, në këtë tutorial. Ju ftojmë të qëndroni me ne.

Këtu mund të mësoni më shumë rreth: Si të krijoni një tabelë vektoriale në Excel. 3 Hapat për të ndjekur

Metodat për llogaritjen e distancave midis koordinatave në Excel

Kërkimi për një zgjidhje të saktë për këtë problem më ka çuar në faqe të shumta dhe në përpjekje për zgjidhje. Një listë e gjatë e faqeve të lidhura është përfshirë në fund të gjithë kësaj, por ato më të rëndësishmet për të cilat kemi gjetur se zgjidhja më e mundshme është llogaritja e distancave midis koordinatave në Excel.

Tani, le të shohim metodat më të mira për të llogaritur distancat midis koordinatave në Excel:

Llogaritni distancat midis koordinatave në Excel (Gjerësia dhe gjatësia gjeografike, formulat)

(Gjerësia dhe gjatësia gjeografike, formula)
Gjerësia dhe gjatësia gjeografike, formulat

Një formulë që pranohet për të dhënë rezultate me saktësi milimetrike njihet si formula e Vincenty. Natyrisht, saktësia e rezultateve varet kryesisht nga saktësia e çifteve gjerësi/gjatësi që përshkruajnë dy pikat.

Pse gjithë bujë për saktësinë? Epo, nga ajo që kemi parë nga formulat e tjera, veçanërisht ato të shkruara si një funksion i vetëm fletë pune, vlerat e tyre ndryshojnë mjaft për ato që mund të konsiderohen situata. "kritika për jetën".

Ato janë zakonisht të shkurtra me një numër metrash, zakonisht rreth 20 deri në 30 këmbë për milje statutore, dhe pasi të kemi fluturuar vetëm 30 ose 40 milje, nuk do të na shqetësonte të zbrisnim disa qindra metra larg fundit të afrimit të një piste, aq më pak duke qenë larg për më shumë se 7 milje në një udhëtim midis Los Angeles dhe Honolulu.

Meqenëse tendenca e përgjithshme kur kemi të bëjmë me këto lloj llogaritjesh është "e matni me mikrometër, e shënoni me shkumës dhe e prisni me sëpatë“Ajo që kemi këtu është një mikrometër shumë i saktë për të filluar procesin e matjes.

Metoda 1: Llogaritni distancat midis koordinatave në Excel (Formulat për distancën)

Ka shumë funksione të fletëllogaritjes Excel që do të kthejnë një titull fillestar nga një pikë në pikën e destinacionit për një rrugë të Rrethit të Madh midis tyre dhe formula të ngjashme për të kthyer distancën midis tyre.

Por bazuar në përvojën e përdorimit të tyre dhe krahasimin e tyre me distancat e matura të njohura, Metoda e Vincenty Llogaritja e distancave midis koordinatave në Excel nuk është përkthyer në një funksion të vetëm të fletëllogaritjes dhe ka shumë të ngjarë të mos jetë e lehtë, të paktën.

Për shkak se ai mbështetet në llogaritjet përsëritëse për t'u marrë me pikat që janë shumë afër të qenit në anët e kundërta të botës, zbatimi i tij edhe si një seri formulash të fletëllogaritjes Excel është një detyrë e frikshme.

Metoda 2: Llogaritni distancat midis koordinatave në Excel (Puna me kënde)

Por përpara se të përdorni veçorinë, duhet të merren parasysh disa hapa paraprak. Më e rëndësishmja, Excel dhe VB punojnë me kënde të shprehura në radianë, jo si vlera dhjetore të këndeve, as nga përfaqësimi i tyre fillestar "anglisht i thjeshtë".

Konsideroni këtë situatë:

Ju keni një gjerësi gjeografike të përfaqësuar si 10° 27′ 36″ jug (10 gradë, 27 minuta 36 sekonda në jug)

Ju duhet ta konvertoni atë në radianë, dhe nuk ka asnjë mënyrë të drejtpërdrejtë për ta bërë këtë, përpara se ta konvertojmë atë në radian, duhet të konvertohet në një paraqitje dhjetore. Duhet ta shohim si: 10.46 që është dhjetore ekuivalente me 10° 27′ 36″ dhe duhet të kemi parasysh nëse është gjerësi gjeografike veriore apo jugore dhe gjerësitë jugore trajtohen si numra negativë.

Për fat të mirë, Microsoft ofron disa funksione të dobishme për konvertimin e shënimeve standarde Angular në ekuivalentin e tyre dhjetor dhe anasjelltas, në këtë faqe: Karakteristikat e Microsoft

Këto rutina janë të përfshira në seksionin e kodit dhe njëra prej tyre ka një ndryshim të bërë për të lejuar bërjen e një hyrjeje të rregullt këndi si p.sh.

  • 10~ 27′ 36″ jug në vend të 10° 27′ 36″ jug

Sepse ~ është drejtpërdrejt i aksesueshëm nga tastiera, ndërsa ° jo.

Metoda 3: llogaritni distancat midis koordinatave në Excel (Konvertimi në Radian)

Pas konvertimit të shënimit standard në një vlerë dhjetore, ne ende duhet ta konvertojmë atë në radianë dhe të merremi me shenjën e rezultatit radian.

Rutinat dhe formulat këtu i konsiderojnë gjerësitë negative si gjerësi gjeografike jugore dhe gjatësitë negative si gjatësi gjeografike perëndimore. Ndërsa kjo mund të duket e padrejtë për ne që jetojmë në hemisferën perëndimore, çfarë mund të them përveçse të merremi me të?

Një vlerë e shkallës dhjetore mund të konvertohet në radianë në disa mënyra në Excel, dhe ky proces përdor një funksion të thjeshtë që përfshihet gjithashtu në kodin më poshtë.

Formula bazë është si më poshtë:

  • Radianët = këndAsDecimal x (Pi / 180)
  • ku Pi është 3.14159265358979

Metoda 4: llogaritni distancat midis koordinatave në Excel (zgjidhja përfundimtare)

  1. hap 1: Kopjoni të gjithë kodin e mëposhtëm dhe ngjisni në një modul të rregullt kodi në librin tuaj të punës. Udhëzimet për vendosjen e kodit në një modul të rregullt janë këtu: Kopjoni kodin Excel VBA në një modul të rregullt
  2. hap 2: Konfiguro fletën tuaj të punës për të kaluar gjerësitë dhe gjatësitë e pikave të fillimit dhe të fundit si hyrje standarde
  3. hap 3: pastaj vendosni një formulë për t'i kaluar ato në funksionin distVincenty().

Jepen dy pika me këto koordinata:

Pika 1:

  • Gjerësia gjeografike: 37° 57′ 3.7203″ J
  • Gjatësia gjeografike: 144° 25′ 29.5244″ E

Pika 2:

  • Gjerësia gjeografike: 37° 39′ 10.1561″ J
  • Gjatësia gjeografike: 143° 55′ 35.3839″ E

Formati i përgjithshëm i thirrjes së funksionit është:

=distVincenty(Pt1_LatAsDecimal, Pt1_LongAsDecimal, Pt2_LatAsDecimal, Pt2_LongAsDecimal)

Një formulë e papërpunuar do të dukej kështu [Vini re thonjëzat e dyfishta pas hyrjeve të sekondave]. Funksioni SignIt(), i dhënë si pjesë e kodit, konverton hyrjen standarde Angular në një vlerë dhjetore të nënshkruar.

=distVincenty(SignIt(«37° 57′ 3.7203″» S «), SignIt(«144° 25′ 29.5244″» E»), SignIt(«37° 39′ 10.1561″» S«), Shenja 143′ 55" E»))

Ju mund të përdorni simbolin ~ në vend të simbolit ° nëse është më e lehtë për ju:

=distVincenty(SignIt(«37~ 57′ 3.7203″» S«), SignIt(«144~ 25′ 29.5244″» E»), SignIt(«37~ 39′ 10.1561″» S«), Shenja 143~t 55′ 35.3839" E»))

Nëse koordinatat e pikës 1 janë në B2 dhe C2 dhe koordinatat e pikës 2 janë në B3 dhe C3, atëherë mund të futet si

= distVincenty(SignIt(B2), SignIt(C2), SignIt(B3), SignIt(C3))

Rezultati i 2 pikave të mostrës së përdorur më sipër duhet të jetë 54972,271, dhe ky rezultat është në metra.

Metoda 5: Llogaritni distancat midis koordinatave në Excel (Problemet e hasura)

Kodi fillestar që filluam të punojmë me gabimet e gjeneruara të "formulë shumë komplekse» në dy deklarata. Këto deklarata fillimisht u ndanë në dy pjesë dhe më pas ato dy llogaritje të veçanta u "ata u bashkuan përsëri» në një formulë për të marrë rezultatin përfundimtar pa gabimin e «formulë shumë komplekse".

  Përditësimi i cilësimeve të sigurisë dhe privatësisë në Instagram

Gjatë përgatitjes së këtij dokumenti, paketa u testua në Excel 2010 64-bit dhe filloi të kthehej #VALE! gabime për të gjitha vlerat hyrëse.

Hetimi konstatoi se një pjesë e formulës tashmë është ndarë për të përcaktuar vlerën deltaSigma Po krijonte një gabim tejmbushjeje. Ky gabim nuk ndodhi në versionin 32-bit të Excel 2010, as në Excel 2003 (një aplikacion 32-bit).

Linja fyese e kodit u nda edhe një herë në copa më të vogla që përfundimisht u bashkuan përsëri në një proces matematikisht të saktë që rezultoi në përcaktimin e vlerave të duhura pa iu drejtuar ndonjë ndryshimi në algoritmin origjinal.

Këto seksione janë shënuar në komentet e kodit për funksionin distVincenty() më poshtë.

Kodi i gjerësisë gjeografike për të llogaritur distancat midis koordinatave në Excel

Tani, më në fund, kodi:

'********************************************

Kosto private PI = 3.14159265358979

Private Const EPSILON As Double _

    = 0.000000000001

'==========================================

Funksioni publik distVincenty(ByVal _

  lat1 As Double, ByVal lon1 As Double, _

    ByVal lat2 As Double, _

      ByVal lon2 As Double) Si Double

'HYRJET: Gjerësia dhe gjatësia e

'pikat fillestare dhe të destinacionit

' në format dhjetor.

'REZULTATE: Distanca midis

Dy pikë në metra.

'

'==============================

Llogaritni distancën gjeodezike (në m)

'ndërmjet dy pikave të përcaktuara nga

"gjerësia/gjatësia gjeografike (në numerike

'Shkallët [dhjetore])

duke përdorur formulën e kundërt të Vincenty

' për elipsoidet

'=================================

' Kodi është bartur nga lost_species

' nga www.aliencoffee.co.uk në VBA

' nga javascript botuar në:

' https://www.movable-type.co.uk/scripts

' /latlong-vincenty.html

' * nga: formula e kundërt Vincenty -

'T Vincenty, "Direkt dhe i kundërt

'Zgjidhjet e gjeodezisë në

' * Elipsoid me aplikim

'e ekuacioneve të mbivendosur', Rishikimi i Anketës,

Vëllimi XXII nr. 176, 1975

' * https://www.ngs.noaa.gov/

' PUBS_LIB/inverse.pdf

'Referencë shtesë:

' https://en.wikipedia.org/wiki/

'Vincenty%27s_formulae

'==============================

' E drejta e autorit lost_species 2008 LGPL

' https://www.fsf.org/licensing/

'licens/lgpl.html

'==============================

'Modifikimet e kodit për të parandaluar

Gabimet "Formula Too Complex" në

'Excel (2010) Zbatimi i VBA

'siguruar nga Jerry Latham,

'Microsoft MVP Excel, 2005-2011

'23 korrik 2011

'==============================

  Dim low_a As Double

  Dim low_b Si Double

  Dim f Si Dyfish

  Dim L As Double

  Dim U1 As Double

  Dim U2 As Double

  Dim sinU1 Si Dyfish

  Dim sinU2 Si Dyfish

  Dim cosU1 As Double

  Dim cosU2 As Double

  Dim lambda As Double

  Dim lambdaP As Double

  Dim iterLimit si numër i plotë

  Dim sinLambda As Double

  Dim cosLambda As Double

  Dim sinSigma As Double

  Dim cosSigma As Double

  Dim sigma As Double

  Dim sinAlpha si dyfish

  Dim cosSqAlpha As Double

  Dim cos2SigmaM As Double

  Dim C Si Dyfish

  Dim uSq As Double

  Dim upper_A Si Double

  Dim upper_B Si Double

  Dim deltaSigma As Double

  Rezultati final i Dim s As Double,

'do të kthehen të rrumbullakosura në

3 shifra dhjetore (mm).

'shtuar nga JLatham për t'u ndarë

Formula 'shumë komplekse'

'në copa për të llogaritur siç duhet

'ato formula siç përmenden më poshtë

'dhe për të parandaluar gabimet e tejmbushjes kur

'duke përdorur Excel 2010 x64 në

Dritaret 7 sisteme x64

  Dim P1 As Double ' përdoret për llogaritjen

'një pjesë e një formule komplekse

  Dim P2 As Double ' përdoret për llogaritjen

'një pjesë e një formule komplekse

  Dim P3 As Double ' përdoret për llogaritjen

'një pjesë e një formule komplekse

'Shih https://en.wikipedia.org/wiki

' /Sistemi_Gjeodez_Botëror

'për informacion mbi elipsoid të ndryshëm

Parametrat për standarde të tjera.

'low_a dhe low_b në metra

' === GRS-80 ===

'low_a = 6378137

'e ulët_b = 6356752.314245

' f = 1 / 298.257223563

'

' === Airy 1830 === Raportuar më së miri

Saktësia për Anglinë

' dhe Evropën Veriore.

'low_a = 6377563.396

'e ulët_b = 6356256.910

' f = 1 / 299.3249646

'

' ===International 1924 ===

'low_a = 6378388

'e ulët_b = 6356911.946

' f = 1 / 297

'

'===Clarke Model 1880===

'low_a = 6378249.145

'e ulët_b = 6356514.86955

' f = 1 / 293.465

'

' === GRS-67 ===

'low_a = 6378160

'e ulët_b = 6356774.719

' f = 1 / 298.247167

'== Parametrat elipsoid WGS-84 ===

  ulët_a = 6378137 ' +/- 2m

  low_b = 6356752.3142

  f = 1/298.257223563

'==========================

  L = toRad (lon2 – lon1)

  U1 = Atn((1 – f) * Tan(toRad(lat1)))

  U2 = Atn((1 – f) * Tan(toRad(lat2)))

  sinU1 = Sin(U1)

  cosU1 = Cos(U1)

  sinU2 = Sin(U2)

  cosU2 = Cos(U2)

  lambda = L

  lambdaP = 2 * PI

  iterLimit = 100 ' mund të vendoset

' deri në 20 nëse dëshironi.

  Ndërsa (Abs(lambda – lambdaP) > _

      EPSILON) Dhe (iterLimit > 0)

    iterLimit = iterLimit – 1

    sinLambda = Mëkat (lambda)

    cosLambda = Cos(lambda)

    sinSigma = Sqr(((cosU2 * sinLambda) _

        ^2) + ((cosU1 * sinU2 – sinU1 _

        *cosU2 *cosLambda) ^2))

    Nëse sinSigma = 0 Atëherë

     distVincenty = 0 'pika të bashkëincidentit

      Funksioni i daljes

    Nëse End

    cosSigma = sinU1 * sinU2 + cosU1 _

      *cosU2 *cosLambda

    sigma = Atan2 (cosSigma, sinSigma)

    sinAlfa = cosU1 * cosU2 * _

      sinLambda / sinSigma

    cosSqAlpha = 1 – sinAlpha * sinAlpha

    Nëse cosSqAlpha = 0 Pastaj 'kontrolloni për

    'një pjesëtim me zero

      cos2SigmaM = 0 '2 pikë në ekuator

    Tjetër

      cos2SigmaM = cosSigma – 2 _

        * sinU1 * sinU2 / cosSqAlpha

    Nëse End

    C = f / 16 * cosSqAlpha * (4 + f _

        * (4 – 3 * cosSqAlpha))

    lambdaP = lambda

'Llogaritja origjinale është

'Shumë komplekse' për Excel VBA

'për t'u marrë me

'kështu që ndahet në segmente

'për të llogaritur pa atë çështje

'zbatimi origjinal

' për të llogaritur lambda

'lambda = L + (1 – C) * f * sinAlfa * _

  (sigma + C * sinSigma * (cos2SigmaM

' + C * cosSigma * (-1 + 2

' * (cos2SigmaM ^ 2))))

      'llogaritni pjesët

    P1 = -1 + 2 * (cos2SigmaM^2)

    P2 = (sigma + C * sinSigma * _

      (cos2SigmaM + C * cosSigma * P1))

    'përfundoni llogaritjen

    lambda = L + (1 – C) * f _

      *pa Alfa*P2

  drejtohem

  Nëse iterLimit > 1 Pastaj

   MsgBox_

   "kufiri i përsëritjes është arritur," _

        & "Diçka nuk funksionoi."

    Funksioni i daljes

  Nëse End

  uSq = cosSqAlpha * (i ulët_a ^ 2 _

    –low_b^2)/(i ulët_b^2)

'Llogaritja origjinale është

'Shumë komplekse' për Excel VBA

'për t'u marrë me

'kështu që ndahet në segmente për të

'llogaritni pa atë çështje

  'zbatimi origjinal për të

'llogarit upper_A

  'upper_A = 1 + uSq / 16384 *

' (4096 + uSq * (-768 + uSq *

' (320 – 175 * uSq)))

  'llogaritni një pjesë të ekuacionit

  P1 = (4096 + uSq * (-768 _

    + uSq * (320 – 175 * uSq)))

  'përfundoni llogaritjen

  sipërme_A = 1 + uSq / 16384 * P1

  'mjaft e çuditshme, upper_B llogarit

'pa asnjë problem - JLatham

  sipërme_B = uSq / 1024 * (256 + uSq _

    * (-128 + uSq * (74 – 47 * uSq)))

'Llogaritja origjinale është

'Shumë komplekse' për Excel VBA

'për t'u marrë me

'kështu që ndahet në segmente për të

'llogaritni pa atë çështje

  'zbatimi origjinal për të

' llogarit deltaSigma

  'deltaSigma = sipërme_B * sinSigma *

'(cos2SigmaM + upper_B / 4 *

' (cosSigma * (-1 + 2

'*cos2SigmaM^2)_

     –sipër_B /6 *cos2SigmaM*

'(-3 + 4 * sinSigma ^ 2) *

' (-3 + 4 *cos2SigmaM ^ 2)))

  'llogaritni pjesët e

Formula deltaSigma

  'ndahet në 3 pjesë për të parandaluar

'gabim i tejmbushjes që mund të ndodhë në

  Versioni 2010-bit i Excel 64.

  P1 = (-3 + 4 * sinSigma ^ 2) * _

    (-3 + 4 * cos2SigmaM^2)

  P2 = sipërme_B * sinSigma

  P3 = (cos2SigmaM + sipër_B / 4 * _

   (cosSigma * (-1 + 2 _

      *cos2SigmaM^2) – _

     sipërme_B / 6 * cos2SigmaM * P1))

  Llogaritja e plotë e deltaSigma

  deltaSigma = P2 * P3

  'llogaritni distancën

  s = ulët_b * sipërme_A * _

    (sigma – deltaSigma)

  Distanca e rrumbullakët në milimetra

  distVincenty = Raund(a, 3)

Funksioni Fundi

'==========================================

Funksioni SignIt (Degree_Dec si varg) _

    Si Dyfish

'Input: një përfaqësim i vargut të

' një lat ose gjatë në

' Formati S/N 10° 27' 36″

'ose 10~ 27' 36" Lindore/Perëndimore

'OUTPUT: vlerë dhjetore e nënshkruar

'gati të konvertohet në radianë

'

  Zbeh vlerën dhjetore si dyfish

  Dim tempString si varg

  tempString = UCase (Trim(gradë_dhjetor))

  Vlera dhjetore = _

    Convert_Decimal (tempString)

  Nëse Right (tempString, 1) = «S» _

    Ose Right (tempString, 1) = "W" Pastaj

    Vlera dhjetore = Vlera dhjetore * -1

  Nëse End

  SignIt = Vlera dhjetore

Funksioni Fundi

'==========================================

Funksioni Convert_Degree (Decimal_Degree) _

  Si Variant

'burimi: https://support.microsoft.com/

' kb/213449

'

'konvertohet në shkallë dhjetore

' përfaqësim në deg min sekondë

"si 10.46 kthen 10° 27" 36"

'

  Dim gradë si variant

  Minutat e zbehta si variant

  Dim sekonda si variant

  Me Aplikim

     'Cakto shkallën në numër të plotë të

'Argumenti kaloi

     gradë = Int(Decimal_Deg)

     'Vendosni minutat në 60 herë

'Numri në të djathtë

     'të dhjetorit për

' variabli Decimal_Deg

     minuta = (Decimal_Deg – _

    gradë) * 60

     'Vendosni sekondat në 60 herë

'Numri në të djathtë të

     'dhjetëshe për ndryshoren Minute

     sekonda = Format(((minuta – _

    Int(minuta)) * 60), «0»)

     'Kthon rezultatin e gradës

' konvertim

    '(për shembull, 10.46 = 10° 27' 36")

     Convert_Degree = » » & grade _

    & «°» & Int(minuta) & «'» _

         & sekonda + Chr(34)

  Mbaro me

Funksioni Fundi

'==========================================

Funksioni Convert_Decimal_

    (Degree_Deg As String) As Double

'burimi: https://support.microsoft.com/

' kb/213449

   'Deklaroni variablat si të jenë

'Pikë lundruese me saktësi të dyfishtë.

   'Konverton hyrjen këndore të tekstit në

' dhjetore ekuivalente, si:

   '10° 27' 36" kthen 10.46

   'Alternativa për ° është e lejuar:

' Përdorni ~ në vend të kësaj, si:

   '10~ 27' 36" gjithashtu kthen 10.46

   Dim gradë si dyfish

   Minutat e zbehta si të dyfishta

   Zbehja e sekondave si dyfish

   '

   'Modifikimi nga JLatham

   'lejo përdoruesin të përdorë ~

simboli ' në vend të ° për të treguar gradë

   'pasi ~ është në dispozicion nga

Duhet të futet ' tastiera dhe °

   'përmes [Alt] [0] [1] [7] [6]

' në bllokun e numrave.

   Diplomë_Deg = Zëvendëso(Degrade_Deg, _

    «~», «°»)

   ' Cakto shkallën në vlerë më parë

' «°» e Argumentit të kaluar.

   gradë = Val(majtas(gradë_gradë, _

    InStr(1, Grade_Deg, «°») – 1))

   ' Cakto minutat në vlerën ndërmjet

"°" dhe """

   ' të vargut të tekstit për variablin

' Grade_Deg pjesëtuar me

   ' 60. Funksioni Val konverton

' varg teksti në një numër.

   minuta = Val(mesi(gradë_gradë, _

    InStr(1, Grade_Deg, «°») + 2, _

      InStr(1, Grade_Deg, «'») – _

    InStr(1, Grade_Deg, «°») – 2)) / 60

   'Vendosni sekondat në numrin në

"e drejta e """ që është

   'konvertuar në një vlerë dhe më pas

pjesëtuar me 3600.

   sekonda = Val(mesi(gradë_gradë, _

    InStr(1, Grade_Deg, «'») + _

      2, Len (gradë_gradë) – _

    InStr(1, Grade_Deg, «'») – 2)) _

    / 3600

   Convert_Decimal = gradë _

    + minuta + sekonda

Funksioni Fundi

'==========================================

Funksioni Privat nëRad(ByVal _

    grade As Double) As Double

    toRad = gradë * (PI / 180)

Funksioni Fundi

'==========================================

Funksioni Privat Atan2(_

    ByVal X si dyfish, _

    ByVal Y As Double) As Double

 'kodi i mbiquajtur nga:

 ' https://en.wikibooks.org/wiki/

' Programimi: Visual_Basic_Classic/

'Aritmetikë_e thjeshtë

' #Funksionet_Trigonometrike

 'Nëse e ripërdorni këtë kujdes:

'x dhe y janë kthyer nga

'përdorim tipik.

    Nëse Y > 0 Atëherë

        Nëse X >= Y Atëherë

            Atan2 = Atn(Y / X)

        ElseNëse X <= -Y Atëherë

            Atan2 = Atn(Y / X) + PI

        Tjetër

        Atan2 = PI / 2 – Atn(X / Y)

    Nëse End

        Tjetër

            Nëse X >= -Y Atëherë

            Atan2 = Atn(Y / X)

        ElseNëse X <= Y Atëherë

            Atan2 = Atn(Y / X) – PI

        Tjetër

            Atan2 = -Atn(X / Y) - PI / 2

        Nëse End

    Nëse End

Funksioni Fundi

'==========================================

Si të llogaritni distancat midis koordinatave në Excel me formulën e distancës

Tani, le të shohim se si të llogarisim distancat midis koordinatave në Excel me formulën e distancës:

Formula e përgjithshme është si më poshtë = RRËNJA KATRORE ((x2 – x1)^2 + (y2 – y1)^2)

Përmbledhje

Për të llogaritur gjatësinë e një linje 2D duke pasur parasysh koordinatat e dy pikave në vijë, mund të përdorni formulën e distancës, të përshtatur për sintaksën e formulës Excel. Në shembullin e treguar, formula në G5, e kopjuar poshtë, është:

=SQRT((D5 – B5)^2 + (E5 – C5)^2)

ku koordinatat e dy pikave janë dhënë në kolonat B deri në E.

Shpjegim

Gjatësia e një rreshti mund të llogaritet me formulën e distancës, e cila duket si kjo:

Mënyrat për të llogaritur distancat midis koordinatave në Excel
formulë

Distanca është rrënja katrore e ndryshimit në x në katror plus ndryshimin në y në katror, ​​ku dy pika janë dhënë në formën (x 1, y 1) dhe (x 2, y 2). Formula e distancës është një shembull i zbatimit të Teoremës së Pitagorës, ku ndryshimi në x dhe ndryshimi në y korrespondojnë me dy brinjët e një trekëndëshi kënddrejtë, dhe hipotenuza është distanca që llogaritet.

Në Excel, formula e distancës mund të shkruhet me operatorin eksponent (^) dhe funksioni SQRT është si më poshtë:

  • =SQRT((D5 – B5)^2 + (E5 – C5)^2)

Pas renditjes së operacioneve të Excel-it, ndryshimi në x dhe ndryshimi në y llogariten, më pas vendosen në katror dhe dy rezultatet shtohen dhe dërgohen në funksionin SQRT, i cili kthen rrënjën katrore të shumës si rezultat përfundimtar.

=SQRT((D5 – B5)^2 + (E5 – C5)^2)

=SQRT((6)^2 + (8)^2)

=SQRT(36+64)

=SQRT(100)

= 10

Funksioni POWER mund të përdoret gjithashtu në vend të operatorit eksponent (^) si kjo:

= SQRT(POWER(D5 – B5, 2) + POWER(E5 – C5, 2))

me të njëjtin rezultat.

Metodat për llogaritjen e distancave midis koordinatave në Excel (distanca, konvertimi i shkallëve dhe adresat e gjeokodit)

Nëse keni një listë të gjatë të koordinatave gjeografike për të punuar, një spreadsheet i Microsoft Excel me siguri do të jetë i dobishëm. Ekzistojnë tre mjete bazë të Excel që mund të funksionojnë për ju, pavarësisht se si dëshironi të manipuloni koordinatat gjeografike.

Ju do të duhet të dini se si të llogaritni distancat midis koordinatave në Excel, si të konvertoni të dhënat e gjerësisë dhe gjatësisë gjeografike në gradë dhjetore dhe së fundi, si të gjeokodoni gjerësitë dhe gjatësitë gjeografike.

Metoda 1: Llogaritni distancat midis koordinatave në Excel

Në një shembull se si të llogarisim distancën midis dy koordinatave në Excel, do të shikojmë të matim distancën e rrethit të madh. Do të vërejmë se gjerësia dhe gjatësia gjeografike shënohen në gradë, minuta dhe sekonda.

Mënyrat për të llogaritur distancat midis koordinatave në Excel

Si të llogarisni distancat midis koordinatave në Excel duke konvertuar gjerësinë dhe gjatësinë në gradë dhjetore

Çdo gjë, edhe diçka aq e ndërlikuar si gradë, minuta dhe sekonda, mund të konvertohet në dhjetore. Pjesa e gradëve mbetet e njëjtë, por minutat dhe sekondat duhet të konvertohen në përqindjen e tyre të një shkalle dhe të kombinohen.

Ka 60 minuta në një shkallë dhe 60 sekonda në një minutë (që do të thotë 3600 sekonda në një shkallë). Prandaj, minutat pjesëtohen me 60 dhe sekondat me 3.600.

Formula e përgjithshme:

  • Shkallët totale (në formë dhjetore) = Gradë + [Minuta/60] + [Sekonda/3600]

Mënyrat për të llogaritur distancat midis koordinatave në Excel

…Për atë distancë

Tani që keni vlerat e gjerësisë dhe gjatësisë në dhjetore, thjesht përballeni me ekuacionin për milje detare midis Timbuktu dhe Casablanca, të dhënë më poshtë.

Milje detare = ACOS [(sin(Lat_place_1*PI()/180)*sin(Lat_place_2*PI()/180)+ cos(Lat_place_1*PI()/180)*cos(Lat_place_2*PI()/180)* cos(Lon_place_2*PI()/180-Lon_place_1*PI()/180)) ] *3443.8985

Ky numër tre mijë, në fund, është rrezja e Tokës, në Milje Detare. Edhe nëse do ta zëvendësonit atë me rrezen e një sfere, duke supozuar se Toka është sferike, në 3437,7468 NM, ajo nuk do të jetë afër distancës së vërtetë dhe të saktë.

Figura: Ju duhet ta futni atë formulë në EXCEL një herë.
Figura: Ju duhet ta futni atë formulë në EXCEL një herë.
Figura: Numri 4476 është distanca në milje detare. Dhjetorët janë shumë të padobishëm pasi e dini se është një përafrim
Figura: Numri 4476 është distanca në milje detare. Dhjetorët janë shumë të padobishëm pasi e dini se është një përafrim

Metoda 2: Llogaritni distancat midis koordinatave në Excel (gjerësia dhe gjatësia e gjeokodit)

Gjeokodimi është konvertimi i adresave të rrugëve në të dhëna të gjerësisë dhe gjatësisë gjeografike të hartueshme. Tani, ekzistojnë dy mënyra për të gjeokoduar gjerësinë dhe gjatësinë gjeografike nga një spreadsheet Excel: rrugën e vështirë y mënyra e lehtë.

Ne fillimisht do të mbulojmë rrugën e vështirë, e cila është ajo që ju nevojitet nëse dëshironi që koordinatat të jetojnë në dokumentin tuaj Excel. Ju duhet të shkruani sekuencën e komandat Visual Basic (VBA) për të bërë një telefonatë në një gjeokodues të jashtëm ose për të kërkuar kodin diku tjetër. Ka disa API të gjeokoduesve dhe disa gjeokodues janë më të shpejtë se të tjerët.

API-ja e gjeokodimit Google Maps është një opsion i zakonshëm dhe ky është API që do ta quajmë në opsionin e lehtë. Megjithatë, ju gjithashtu mund të punoni direkt brenda Excel. Të pajisur me kodin që keni shkruar ose zbuluar, këtu janë hapat për të zbatuar gjeokodimin në Excel.

Mënyra e vështirë

  1. Hapi 1:kërkoni për skedën zhvillues në versionin tuaj të Excel.
  2. Hapi 2:kërkoni për skedën «Visual Basic«. Kjo hap dritaren e zhvillimit.
  3. Hapi 3:Fut —> Moduli. Moduli i ri do të ruajë funksionin tuaj.
  4. Hapi 4: Këtu kopjoni dhe ngjisni kodin tuaj.
  5. Hapi 5:Ne duhet të shtojmë referenca tani. Pra, Mjetet —> Referencat. Sigurohuni që të kontrolloni Microsoft XML v6.0. KLIKONI PRANO.
  6. Hapi 6:shtyp CTRL / VKM +S. Ruaj si lloj —> Shtesa Excel. Tani mund të emërtoni funksionin tuaj. Zgjatja duhet të jetë xlam. Është koha për të mbyllur të gjithë skedarët Excel.
  7. Hapi 7:Hapni një skedar të ri duke ndjekur rrugën e mëposhtme: Skedari —> Opsionet —> Shtojcat. Në kutinë Menaxho, zgjidhni Shtesat Excel.
  8. Hapi 8:shtyp Ir. Zgjidhni funksionin në dritaren që shfaqet duke kontrolluar kutinë. Shtypni
  9. Hapi 9:Tani mund të përdorni funksionin e ri që keni krijuar, si çdo funksion tjetër.

SHËNIM: Pasi të keni mbaruar marrjen e vlerave, kopjoni dhe ngjitini ato diku tjetër, jashtë fletës me llogaritjet. Më pas i hiqni thirrjet e funksionit sepse përndryshe kur ta hapni përsëri këtë skedar, API-ja e Google do të fillojë të futet përsëri në ping. Kjo do të konsumojë disa minuta përpara se të hapet skedari. Për të optimizuar përdorimin e burimeve të Google, bëni një pushim prej 10 sekondash midis adresave.

Janë shumë hapa dhe supozon se keni gjetur një kod për të provuar. Më pas, ne do të shikojmë mënyrën më të lehtë për të gjeokoduar të dhënat tuaja në Excel. Është i shpejtë dhe i besueshëm, por nuk do të importojë koordinata në skedarin tuaj Excel. Nga ana tjetër, mjeti gjeokodues i Excel-it është i thjeshtë për t'u kopjuar dhe ngjitur dhe ju jep një hartë interaktive.

Mënyra e lehtë (llogaritni distancat midis koordinatave në Excel kur krijoni një hartë)

Ka disa mënyra për të krijuar harta me të dhëna Excel. Ndoshta më e lehtë është thjesht të kopjoni dhe ngjitni të dhënat tuaja të fletëllogaritjes në mjetin tonë të hartës. Duke vepruar kështu, dokumenti juaj Excel në një hartë të bukur interaktive.

  1. hap 1: Për të bërë hartën tuaj bazuar në koordinatat e gjerësisë dhe gjatësisë, ndani koordinatat në kolonat e tyre brenda tabelës suaj.

Mënyrat për të llogaritur distancat midis koordinatave në Excel Mënyrat për të llogaritur distancat midis koordinatave në Excel Mënyrat për të llogaritur distancat midis koordinatave në Excel

  1. hap 2: Më pas, zgjidhni dhe kopjoni rreshtat dhe kolonat e tabelës suaj (komandë Ctrl+C ose Cmd+C në mushama) dhe ngjitni (Ctrl+V ose Cmd+V në Mac) në të dhënat tuaja dhe keni mbaruar!

Ju gjithashtu mund të jeni të interesuar të lexoni rreth: Si të përdorni funksionin QUARTILE në Excel - Udhëzues i plotë

Përfundim

Siç mund ta shihni, këto janë metodat që mund të përdorni për të llogaritur distancat midis koordinatave në Excel. Pavarësisht nëse dëshironi të krijoni një hartë të gjerësisë dhe gjatësisë ose të krijoni udhëzuesin tuaj virtual të dasmës për mysafirët tuaj, këto procese ofrojnë një mënyrë falas dhe të lehtë për të krijuar harta të bukura në internet që janë gati për t'u ruajtur dhe shpërndarë. Shpresojmë t'ju kemi ndihmuar me këtë informacion.