Mga Paraan para Kalkulahin ang Mga Distansya sa Pagitan ng Mga Coordinate sa Excel

Huling pag-update: 04/10/2024
Mga Paraan para Kalkulahin ang Mga Distansya sa Pagitan ng Mga Coordinate sa Excel

Gusto mo bang malaman ang mga paraan upang kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel? Dito ay ituturo namin sa iyo kung paano kalkulahin ang distansya sa Excel, gamit ang Latitude at Longitude, sa tutorial na ito. Inaanyayahan ka naming manatili sa amin.

Dito maaari kang matuto nang higit pa tungkol sa: Paano Gumawa ng Vector Chart sa Excel. 3 Hakbang na Dapat Sundin

Mga paraan upang makalkula ang mga distansya sa pagitan ng mga coordinate sa Excel

Ang paghahanap para sa isang tumpak na solusyon sa problemang ito ay humantong sa akin sa maraming mga site at mga sinubukang solusyon. Ang isang mahabang listahan ng mga kaugnay na site ay kasama sa dulo ng lahat ng ito, ngunit ang pinaka-mahalaga kung saan nalaman namin na ang pinaka-magagawang solusyon ay ang pagkalkula ng mga distansya sa pagitan ng mga coordinate sa Excel.

Ngayon, tingnan natin ang pinakamahusay na mga paraan upang makalkula ang mga distansya sa pagitan ng mga coordinate sa Excel:

Kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel (Latitude at Longitude, Mga Formula)

(Latitude at Longitude, Mga Formula)
Latitude at Longitude, Mga Formula

Ang isang formula na tinatanggap upang magbigay ng mga resulta na may katumpakan ng milimetro ay kilala bilang formula ni Vincenty. Naturally, ang katumpakan ng mga resulta ay higit na nakasalalay sa katumpakan ng mga pares ng latitude/longitude na naglalarawan sa dalawang punto.

Bakit ang lahat ng kaguluhan tungkol sa kawastuhan? Well, mula sa kung ano ang nakita natin mula sa iba pang mga formula, lalo na ang mga nakasulat bilang isang function ng worksheet, ang kanilang mga halaga ay medyo naiiba para sa kung ano ang maaaring ituring na mga sitwasyon. 'mga kritisismo para sa buhay'.

Karaniwang maikli ang mga ito ng ilang metro, karaniwan ay mga 20 hanggang 30 talampakan bawat milya ng batas, at pagkatapos lumipad lamang ng 30 o 40 milya, hindi namin iisipin ang paglapag ng ilang daang talampakan mula sa dulo ng isang runway, lalo na ang pagiging ang layo ng higit sa 7 milya sa isang biyahe sa pagitan ng Los Angeles at Honolulu.

Dahil ang pangkalahatang ugali kapag nakikitungo sa mga ganitong uri ng kalkulasyon ay "sukatin ito ng micrometer, markahan ito ng chalk at gupitin ito ng palakol"Ang mayroon tayo dito ay isang napaka-tumpak na micrometer upang simulan ang proseso ng pagsukat.

Paraan 1: Kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel (Mga Formula para sa distansya)

Maraming Excel spreadsheet function na magbabalik ng paunang heading mula sa isang punto patungo sa destinasyon para sa isang Great Circle na ruta sa pagitan nila at mga katulad na formula upang ibalik ang distansya sa pagitan nila.

Ngunit batay sa karanasan sa paggamit ng mga ito at paghahambing ng mga ito sa mga kilalang sinusukat na distansya, Pamamaraan ni Vincenty Ang pagkalkula ng mga distansya sa pagitan ng mga coordinate sa Excel ay hindi naisalin sa isang function ng spreadsheet, at malamang na hindi ito magiging madali, hindi bababa sa.

Dahil umaasa ito sa mga umuulit na kalkulasyon upang harapin ang mga puntos na napakalapit sa eksaktong magkabilang panig ng mundo, ang pagpapatupad nito kahit bilang isang serye ng mga formula ng Excel spreadsheet ay isang nakakatakot na gawain.

Paraan 2: Kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel (Paggawa gamit ang mga anggulo)

Ngunit bago gamitin ang tampok, may ilang mga paunang hakbang na dapat isaalang-alang. Higit sa lahat, gumagana ang Excel at VB sa mga anggulo na ipinahayag sa mga radian, hindi bilang mga decimal na halaga ng mga anggulo, o mula sa kanilang unang "plain English" na representasyon.

Isaalang-alang ang sitwasyong ito:

Mayroon kang Latitude na kinakatawan bilang 10° 27′ 36″ S (10 degrees, 27 minuto 36 segundo sa Timog)

Kailangan mong i-convert iyon sa radians, at walang direktang paraan para gawin iyon, bago natin ito ma-convert sa radians kailangan itong ma-convert sa decimal na representasyon. Kailangan nating makita ito bilang: 10.46 na katumbas ng decimal sa 10° 27′ 36″ at kailangan nating isaalang-alang kung ito ay hilagang o timog na latitud, at ang timog na latitud ay itinuturing bilang mga negatibong numero.

Sa kabutihang palad, ang Microsoft ay nagbibigay ng ilang kapaki-pakinabang na function para sa pag-convert ng mga karaniwang Angular na notasyon sa kanilang katumbas na decimal, at kabaliktaran, sa pahinang ito: Mga Tampok ng Microsoft

Ang mga gawaing iyon ay kasama sa seksyon ng code at ang isa sa mga ito ay may ginawang pagbabago upang payagan ang paggawa ng isang regular na pag-input ng anggulo

  • 10~ 27′ 36″ S sa halip na 10° 27′ 36″ S

Dahil ang ~ ay direktang naa-access mula sa keyboard, habang ang ° ay hindi.

Paraan 3: kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel (Pag-convert sa Radians)

Matapos i-convert ang karaniwang notasyon sa isang decimal na halaga, kailangan pa rin nating i-convert ito sa mga radian at harapin ang tanda ng resulta ng radian.

Itinuturing ng mga gawain at pormula dito ang mga negatibong latitude bilang mga southern latitude at ang mga negatibong longitude ay mga western longitude. Bagama't ito ay tila hindi patas sa atin na naninirahan sa Kanlurang Hemisphere, ano ang masasabi ko maliban sa harapin ito?

Ang isang decimal degree na halaga ay maaaring ma-convert sa mga radian sa maraming paraan sa Excel, at ang prosesong ito ay gumagamit ng isang simpleng function na kasama rin sa code sa ibaba.

Ang pangunahing formula ay ang mga sumusunod:

  • Radians = angleAsDecimal x (Pi / 180)
  • kung saan ang Pi ay 3.14159265358979

Paraan 4: kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel (Ang tiyak na solusyon)

  1. Hakbang 1: Kopyahin ang lahat ng code sa ibaba at i-paste ito sa isang regular na module ng code sa iyong workbook. Narito ang mga tagubilin para sa paglalagay ng code sa isang regular na module: Kopyahin ang Excel VBA code sa isang regular na module
  2. Hakbang 2: I-configure ang iyong worksheet upang maipasa ang mga latitude at longitude ng simula at pagtatapos na mga punto bilang karaniwang mga input
  3. Hakbang 3: pagkatapos ay magpasok ng isang formula upang ipasa ang mga ito sa distVincenty() function.

Ibinigay ang dalawang puntos na may mga coordinate na ito:

Punto 1:

  • Latitude: 37° 57′ 3.7203″ S
  • Longitude: 144° 25′ 29.5244″ E

Punto 2:

  • Latitude: 37° 39′ 10.1561″ S
  • Longitude: 143° 55′ 35.3839″ E

Ang pangkalahatang format ng function na tawag ay:

=distVincenty(Pt1_LatAsDecimal, Pt1_LongAsDecimal, Pt2_LatAsDecimal, Pt2_LongAsDecimal)

Ang isang raw na formula ay magiging ganito [Tandaan ang mga dobleng panipi pagkatapos ng mga segundong entry]. Ang SignIt() function, na ibinigay bilang bahagi ng code, ay nagko-convert ng karaniwang Angular input sa isang sign na decimal na halaga.

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

Maaari mong gamitin ang simbolo na ~ sa halip na simbolo ng ° kung mas madali para sa iyo:

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

Kung ang mga coordinate ng Point 1 ay nasa B2 at C2 at ang mga coordinate ng Point 2 ay nasa B3 at C3, maaari itong ipasok bilang

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

Ang resulta ng 2 sample point na ginamit sa itaas ay dapat na 54972,271, at ang resultang ito ay nasa metro.

Paraan 5: Kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel (Mga problemang nakatagpo)

Ang paunang code na sinimulan naming magtrabaho kasama ang mga nabuong error ng "masyadong kumplikadong formula»sa dalawang pahayag. Ang mga pahayag na ito ay unang nahati sa dalawang bahagi at pagkatapos ang dalawang magkahiwalay na kalkulasyon ay "sumali ulit sila»sa isang formula upang makuha ang huling resulta nang walang error ng «masyadong kumplikadong formula".

  Paano masulit ang Sticky Notes sa Windows 11

Sa panahon ng paghahanda ng dokumentong ito, ang package ay nasubok sa Excel 2010 64-bit at nagsimulang bumalik #SULIT! mga error para sa lahat ng halaga ng input.

Natukoy ng pagsisiyasat na ang isang bahagi ng formula ay nahahati na upang matukoy ang halaga deltaSigma Lumilikha ito ng overflow na error. Ang error na ito ay hindi nangyari sa 32-bit na bersyon ng Excel 2010, o sa Excel 2003 (isang 32-bit na application).

Ang nakakasakit na linya ng code ay muling nahati sa mas maliliit na piraso na kalaunan ay pinagsama-sama sa isang prosesong tama sa matematika na nagresulta sa pagtukoy ng mga naaangkop na halaga nang hindi gumagamit ng anumang pagbabago sa orihinal na algorithm.

Ang mga seksyong ito ay nakatala sa mga komento ng code para sa distVincenty() function sa ibaba.

Ang longitude latitude code upang kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel

Ngayon, sa wakas, ang code:

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

Pribadong Const PI = 3.14159265358979

Pribadong Const EPSILON Bilang Doble _

    = 0.000000000001

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

Pampublikong Function distVincenty(ByVal _

  lat1 Bilang Doble, ByVal lon1 Bilang Doble, _

    ByVal lat2 Bilang Doble, _

      ByVal lon2 Bilang Doble) Bilang Doble

'INPUTS: Latitude at Longitude ng

'mga paunang punto at patutunguhan

' sa decimal na format.

'OUTPUT: Distansya sa pagitan ng

' dalawang puntos sa Metro.

'

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

' Kalkulahin ang geodesic na distansya (sa m)

'sa pagitan ng dalawang puntos na tinukoy ng

' latitude/longitude (sa numeric

'[decimal] degrees)

'gamit ang Vincenty inverse formula

' para sa mga ellipsoids

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

' Ang code ay nai-port ng lost_species

' mula sa www.aliencoffee.co.uk hanggang VBA

' mula sa javascript na inilathala sa:

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

' /latlong-vincenty.html

' * mula sa: Vincenty inverse formula –

'T Vincenty, «Direkta at Baliktad

'Mga Solusyon ng Geodesics sa

' * Ellipsoid na may aplikasyon

'ng mga nested equation', Survey Review,

' vol XXII no 176, 1975

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

' PUBS_LIB/inverse.pdf

'Karagdagang Sanggunian:

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

'Vincenty%27s_formulae

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

' Copyright lost_species 2008 LGPL

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

' licenses/lgpl.html

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

'Mga pagbabago sa code upang maiwasan

Mga error sa 'Formula Too Complex'

'Excel (2010) pagpapatupad ng VBA

'binigay ni Jerry Latham,

'Microsoft MVP Excel, 2005-2011

'Hulyo 23 2011

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

  Dim low_a Bilang Doble

  Dim low_b Bilang Doble

  Dim f Bilang Doble

  Dim L Bilang Doble

  Dim U1 Bilang Doble

  Dim U2 Bilang Doble

  Dim sinU1 Bilang Doble

  Dim sinU2 Bilang Doble

  Dim cosU1 Bilang Doble

  Dim cosU2 Bilang Doble

  Dim lambda Bilang Doble

  Dim lambdaP Bilang Doble

  Dim iterLimit Bilang Integer

  Dim sinLambda Bilang Doble

  Dim cosLambda Bilang Doble

  Dim sinSigma Bilang Doble

  Dim cosSigma Bilang Doble

  Dim sigma Bilang Doble

  Dim sinAlpha Bilang Doble

  Dim cosSqAlpha Bilang Doble

  Dim cos2SigmaM Bilang Doble

  Dim C Bilang Doble

  Dim uSq Bilang Doble

  Dim upper_A Bilang Doble

  Dim upper_B Bilang Doble

  Dim deltaSigma Bilang Doble

  Dim s As Double' huling resulta,

'ay ibabalik na bilugan sa

' 3 decimal na lugar (mm).

'dagdag ni JLatham para makipaghiwalay

Mga formula na 'Masyadong Kumplikado'

'sa mga piraso upang maayos na makalkula

'yung mga formula gaya ng nakasaad sa ibaba

'at upang maiwasan ang overflow error kapag

'gamit ang Excel 2010 x64 sa

Windows 7 x64 system

  Dim P1 Bilang Doble ' ginagamit sa pagkalkula

'isang bahagi ng isang kumplikadong formula

  Dim P2 Bilang Doble ' ginagamit sa pagkalkula

'isang bahagi ng isang kumplikadong formula

  Dim P3 Bilang Doble ' ginagamit sa pagkalkula

'isang bahagi ng isang kumplikadong formula

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

' /World_Geodetic_System

'para sa impormasyon sa iba't ibang Ellipsoid

' mga parameter para sa iba pang mga pamantayan.

'low_a at low_b sa metro

' === GRS-80 ===

'low_a = 6378137

'low_b = 6356752.314245

' f = 1 / 298.257223563

'

' === Airy 1830 === Iniulat na pinakamahusay

'katumpakan para sa England

' at Hilagang Europa.

'low_a = 6377563.396

'low_b = 6356256.910

' f = 1 / 299.3249646

'

' ===International 1924 ===

'low_a = 6378388

'low_b = 6356911.946

' f = 1 / 297

'

'===Clarke Model 1880===

'low_a = 6378249.145

'low_b = 6356514.86955

' f = 1 / 293.465

'

' === GRS-67 ===

'low_a = 6378160

'low_b = 6356774.719

' f = 1 / 298.247167

'== WGS-84 Ellipsoid Parameter ===

  low_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 ' ay maaaring itakda

' kasing baba ng 20 kung gusto.

  Habang (Abs(lambda – lambdaP) > _

      EPSILON) At (iterLimit > 0)

    iterLimit = iterLimit – 1

    sinLambda = Kasalanan(lambda)

    cosLambda = Cos(lambda)

    sinSigma = Sqr(((cosU2 * sinLambda) _

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

        *cosU2 *cosLambda) ^2))

    Kung sinSigma = 0 Pagkatapos

     distVincenty = 0 'co-incident points

      Lumabas sa Function

    Dulo Kung

    cosSigma = sinU1 * sinU2 + cosU1 _

      *cosU2 *cosLambda

    sigma = Atan2(cosSigma, sinSigma)

    sinAlpha = cosU1 * cosU2 * _

      sinLambda / sinSigma

    cosSqAlpha = 1 – sinAlpha * sinAlpha

    Kung cosSqAlpha = 0 Pagkatapos 'tingnan para sa

    'isang hati sa zero

      cos2SigmaM = 0 '2 puntos sa ekwador

    Iba

      cos2SigmaM = cosSigma – 2 _

        * sinU1 * sinU2 / cosSqAlpha

    Dulo Kung

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

        * (4 – 3 * cosSqAlpha))

    lambdaP = lambda

'ang orihinal na kalkulasyon ay

'Masyadong Kumplikado' para sa Excel VBA

'para harapin

'kaya ito ay nahahati sa mga segment

'upang kalkulahin nang walang isyu na iyon

'ang orihinal na pagpapatupad

' para kalkulahin ang lambda

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

  (sigma + C * sinSigma * (cos2SigmaM

' + C * cosSigma * (-1 + 2

' * (cos2SigmaM ^ 2))))

      'magkalkula ng mga bahagi

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

    P2 = (sigma + C * sinSigma * _

      (cos2SigmaM + C * cosSigma * P1))

    'kumpletuhin ang pagkalkula

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

      *sinAlpha*P2

  Wend

  Kung iterLimit > 1 Pagkatapos

   MsgBox_

   «naabot na ang limitasyon sa pag-ulit,» _

        & »may hindi gumana.»

    Lumabas sa Function

  Dulo Kung

  uSq = cosSqAlpha * (mababa_a ^ 2 _

    –low_b^2)/(low_b^2)

'ang orihinal na kalkulasyon ay

'Masyadong Kumplikado' para sa Excel VBA

'para harapin

'kaya ito ay nahahati sa mga segment sa

'magkalkula nang walang isyu na iyon

  'ang orihinal na pagpapatupad sa

'kalkulahin ang upper_A

  'upper_A = 1 + uSq / 16384 *

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

' (320 – 175 * uSq)))

  'kalkulahin ang isang piraso ng equation

  P1 = (4096 + uSq * (-768 _

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

  'kumpletuhin ang pagkalkula

  upper_A = 1 + uSq / 16384 * P1

  'Kakatwa, kinakalkula ng upper_B

'nang walang anumang isyu – JLatham

  upper_B = uSq / 1024 * (256 + uSq _

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

'ang orihinal na kalkulasyon ay

'Masyadong Kumplikado' para sa Excel VBA

'para harapin

'kaya ito ay nahahati sa mga segment sa

'magkalkula nang walang isyu na iyon

  'ang orihinal na pagpapatupad sa

' kalkulahin ang deltaSigma

  'deltaSigma = upper_B * sinSigma *

'(cos2SigmaM + upper_B / 4 *

' (cosSigma * (-1 + 2

'*cos2SigmaM^2)_

     –upper_B/6 *cos2SigmaM*

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

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

  'kalkulahin ang mga piraso ng

' deltaSigma formula

  'nasira sa 3 piraso para maiwasan

'overflow error na maaaring mangyari sa

  'Excel 2010 64-bit na bersyon.

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

    (-3 + 4 * cos2SigmaM^2)

  P2 = upper_B * sinSigma

  P3 = (cos2SigmaM + upper_B / 4 * _

   (cosSigma * (-1 + 2 _

      *cos2SigmaM^2) – _

     upper_B / 6 * cos2SigmaM * P1))

  'kumpletong pagkalkula ng deltaSigma

  deltaSigma = P2 * P3

  'kalkulahin ang distansya

  s = low_b * upper_A * _

    (sigma – deltaSigma)

  'ikot na distansya sa milimetro

  distVincenty = Round(s, 3)

End Function

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

Function SignIt(Degree_Dec Bilang String) _

    Bilang Doble

'Input: isang string na representasyon ng

' isang lat o mahaba sa

' format na 10° 27' 36″ S/N

' o 10~ 27' 36″ E/W

'OUTPUT: nilagdaang decimal na halaga

'handa nang i-convert sa radians

'

  Dim decimalValue Bilang Doble

  Dim tempString Bilang String

  tempString = UCase(Trim(Degree_Dec))

  decimalValue = _

    Convert_Decimal(tempString)

  Kung Tama(tempString, 1) = «Y» _

    O Kanan(tempString, 1) = "W" Pagkatapos

    decimalValue = decimalValue * -1

  Dulo Kung

  SignIt = decimalValue

End Function

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

Function Convert_Degree(Decimal_Deg) _

  Bilang Variant

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

' kb/213449

'

'nagko-convert sa decimal degree

' representasyon sa deg min sec

'bilang 10.46 ay nagbabalik ng 10° 27' 36″

'

  Dim degrees Bilang Variant

  Dim minuto Bilang Variant

  Dim segundo Bilang Variant

  Sa Application

     'Itakda ang degree sa Integer ng

'Nakapasa ang argumento

     degrees = Int(Decimal_Deg)

     'Itakda ang mga minuto sa 60 beses ang

'number sa kanan

     'ng decimal para sa

' variable na Decimal_Deg

     minuto = (Decimal_Deg – _

    digri) * 60

     'Itakda ang mga segundo sa 60 beses ang

'numero sa kanan ng

     'decimal para sa variable na Minuto

     segundo = Format(((minuto – _

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

     'Ibinabalik ang Resulta ng degree

'pagbabalik-loob

    '(halimbawa, 10.46 = 10° 27' 36″)

     Convert_Degree = » » & degrees _

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

         & segundo + Chr(34)

  Magtapos sa

End Function

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

Function Convert_Decimal_

    (Degree_Deg Bilang String) Bilang Doble

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

' kb/213449

   ' Ipahayag ang mga variable upang maging

' double precision floating-point.

   'Nagko-convert ng text angular entry sa

' katumbas na decimal, bilang:

   ' 10° 27' 36″ ay nagbabalik ng 10.46

   ' pinahihintulutan ang alternatibo sa °:

' Gamitin ang ~ sa halip, bilang:

   Ang ' 10~ 27' 36″ ay nagbabalik din ng 10.46

   Dim degrees Bilang Doble

   Dim minuto Bilang Doble

   Dim segundo Bilang Doble

   '

   'pagbabago ni JLatham

   'payagan ang gumagamit na gamitin ang ~

' simbolo sa halip na ° upang tukuyin ang mga degree

   'dahil ang ~ ay makukuha mula sa

' Ang keyboard at ° ay kailangang ipasok

   'sa pamamagitan ng [Alt] [0] [1] [7] [6]

' sa number pad.

   Degree_Deg = Palitan(Degree_Deg, _

    «~», «°»)

   ' Itakda ang antas sa halaga bago

' «°» ng Argument Passed.

   degrees = Val(Kaliwa(Degree_Deg, _

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

   ' Itakda ang mga minuto sa halaga sa pagitan

' ang «°» at ang «'»

   ' ng text string para sa variable

' Degree_Deg na hinati ng

   ' 60. Kino-convert ng Val function ang

' text string sa isang numero.

   minuto = Val(Mid(Degree_Deg, _

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

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

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

   'Itakda ang mga segundo sa numero sa

' kanan ng "'" iyon ay

   'na-convert sa isang halaga at pagkatapos

' hinati ng 3600.

   segundo = Val(Mid(Degree_Deg, _

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

      2, Len(Degree_Deg) – _

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

    / 3600

   Convert_Decimal = degrees _

    + minuto + segundo

End Function

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

Pribadong Function toRad(ByVal _

    digri Bilang Doble) Bilang Doble

    toRad = degrees * (PI / 180)

End Function

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

Pribadong Function Atan2( _

    ByVal X Bilang Doble, _

    ByVal Y Bilang Doble) Bilang Doble

 'code na may palayaw mula sa:

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

' Programming: Visual_Basic_Classic/

'Simple_Arithmetic

' #Trigonometrical_Functions

 'Kung muli mong gagamitin ang pag-iingat na ito:

'ang x at y ay nabaligtad mula sa

'karaniwang gamit.

    Kung Y > 0 Pagkatapos

        Kung X >= Y Pagkatapos

            Atan2 = Atn(Y / X)

        OtherIf X <= -Y Pagkatapos

            Atan2 = Atn(Y / X) + PI

        Iba

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

    Dulo Kung

        Iba

            Kung X >= -Y Pagkatapos

            Atan2 = Atn(Y / X)

        OtherIf X <= Y Pagkatapos

            Atan2 = Atn(Y / X) – PI

        Iba

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

        Dulo Kung

    Dulo Kung

End Function

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

Paano kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel gamit ang formula ng distansya

Ngayon, tingnan natin kung paano kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel gamit ang formula ng distansya:

Ang generic na formula ay ang mga sumusunod = SQUARE ROOT ((x2 – x1)^2 + (y2 – y1)^2)

Buod

Upang kalkulahin ang haba ng isang 2D na linya na ibinigay sa mga coordinate ng dalawang puntos sa linya, maaari mong gamitin ang formula ng distansya, na inangkop para sa Excel formula syntax. Sa halimbawang ipinakita, ang formula sa G5, na kinopya, ay:

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

kung saan ang mga coordinate ng dalawang puntos ay ibinibigay sa hanay B hanggang E.

Paliwanag

Maaaring kalkulahin ang haba ng isang linya gamit ang formula ng distansya, na ganito ang hitsura:

Mga Paraan para Kalkulahin ang Mga Distansya sa Pagitan ng Mga Coordinate sa Excel
Pormula

Ang distansya ay ang square root ng pagbabago sa x squared kasama ang pagbabago sa y squared, kung saan ang dalawang puntos ay ibinibigay sa anyo (x 1, y 1) at (x 2, y 2). Ang formula ng distansya ay isang halimbawa ng aplikasyon ng Pythagorean Theorem, kung saan ang pagbabago sa x at ang pagbabago sa y ay tumutugma sa dalawang panig ng isang right triangle, at ang hypotenuse ay ang distansya na kinakalkula.

Sa Excel, ang formula ng distansya ay maaaring isulat sa exponent operator (^) at ang SQRT function ay ang mga sumusunod:

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

Kasunod ng pagkakasunud-sunod ng mga operasyon ng Excel, ang pagbabago sa x at ang pagbabago sa y ay kinakalkula, pagkatapos ay i-squad, at ang dalawang resulta ay idinagdag at ipinadala sa SQRT function, na nagbabalik ng square root ng kabuuan bilang huling resulta.

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

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

=SQRT(36+64)

=SQRT(100)

= 10

Ang POWER function ay maaari ding gamitin sa halip na ang exponent operator (^) tulad nito:

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

na may parehong resulta.

Mga paraan upang makalkula ang mga distansya sa pagitan ng mga coordinate sa Excel (distansya, pag-convert ng mga degree at geocode address)

Kung mayroon kang mahabang listahan ng mga geographic na coordinate na gagamitin, tiyak na magagamit ang isang spreadsheet ng Microsoft Excel. May tatlong pangunahing tool sa Excel na maaaring gumana para sa iyo, gaano man mo gustong manipulahin ang mga geographic na coordinate.

Kakailanganin mong malaman kung paano kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel, kung paano i-convert ang data ng latitude at longitude sa decimal degrees, at panghuli, kung paano mag-geocode ng mga latitude at longitude.

Paraan 1: Kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel

Sa isang halimbawa kung paano kalkulahin ang distansya sa pagitan ng dalawang coordinate sa Excel, titingnan namin upang sukatin ang distansya ng malaking bilog. Mapapansin natin na ang latitude at longitude ay tinutukoy sa degrees, minuto at segundo.

Mga Paraan para Kalkulahin ang Mga Distansya sa Pagitan ng Mga Coordinate sa Excel

Paano kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel sa pamamagitan ng pag-convert ng latitude at longitude sa decimal degrees

Lahat, kahit isang bagay na kasing kumplikado ng mga degree, minuto, at segundo, ay maaaring i-convert sa mga decimal. Ang bahagi ng degree ay nananatiling pareho, ngunit ang mga minuto at segundo ay dapat na ma-convert sa kanilang porsyento ng isang degree at pinagsama.

Mayroong 60 minuto sa isang degree at 60 segundo sa isang minuto (na nangangahulugang 3600 segundo sa isang degree). Samakatuwid, ang mga minuto ay hinati ng 60 at ang mga segundo ng 3.600.

Ang pangkalahatang formula:

  • Kabuuang Degrees (sa decimal form) = Degrees + [Minutes/60] + [Second/3600]

Mga Paraan para Kalkulahin ang Mga Distansya sa Pagitan ng Mga Coordinate sa Excel

…Tungkol sa distansyang iyon

Ngayong mayroon ka nang latitude at longitude na mga halaga sa decimal, haharapin mo na lang ang equation para sa nautical miles sa pagitan ng Timbuktu at Casablanca, na ibinigay sa ibaba.

Nautical miles = 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

Ang bilang na tatlong libo, sa huli, ay ang radius ng Earth, sa Nautical Miles. Kahit na palitan mo ito para sa radius ng isang globo, kung ipagpalagay na ang Earth ay spherical, sa 3437,7468 NM, hindi ito magiging malapit sa totoo at tumpak na distansya.

Figure: Isang beses mo lang ipasok ang formula na iyon sa EXCEL.
Figure: Isang beses mo lang ipasok ang formula na iyon sa EXCEL.
Figure: Ang bilang na 4476 ay ang distansya sa nautical miles. Ang mga desimal ay medyo walang silbi dahil alam mong ito ay isang pagtatantya
Figure: Ang bilang na 4476 ay ang distansya sa nautical miles. Ang mga desimal ay medyo walang silbi dahil alam mong ito ay isang pagtatantya

Paraan 2: Kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel (Geocode latitude at longitude)

Ang geocoding ay ang conversion ng mga address ng kalye sa mappable na data ng latitude at longitude. Ngayon, may dalawang paraan para mag-geocode ng latitude at longitude mula sa isang Excel spreadsheet: ang mahirap na paraan y ang madaling paraan.

Tatalakayin muna namin ang mahirap na paraan, na kung ano ang kakailanganin mo kung gusto mong mabuhay ang mga coordinate sa iyong dokumento sa Excel. Dapat mong isulat ang pagkakasunod-sunod ng comandos Visual Basic (VBA) upang tumawag sa isang panlabas na geocoder o hanapin ang code sa ibang lugar. Mayroong ilang mga geocoder API at ang ilang mga geocoder ay mas mabilis kaysa sa iba.

Ang Geocoding API Google Maps ay isang karaniwang opsyon at ito ang API na tatawagin namin sa madaling opsyon. Gayunpaman, maaari ka ring gumana nang direkta sa loob ng Excel. Gamit ang code na iyong isinulat o natuklasan, narito ang mga hakbang upang ipatupad ang geocoding sa Excel.

Ang mahirap na paraan

  1. Hakbang 1:hanapin ang tab Nag-develop sa iyong bersyon ng Excel.
  2. Hakbang 2:hanapin ang tab "Visual Basic«. Binubuksan nito ang window ng pag-unlad.
  3. Hakbang 3:Ipasok -> Module. Papanatilihin ng bagong module ang iyong function.
  4. Hakbang 4: Dito mo kopyahin at i-paste ang iyong code.
  5. Hakbang 5:Kailangan nating magdagdag ng mga sanggunian ngayon. Kaya, Mga Tool -> Mga Sanggunian. Tiyaking suriin ang Microsoft XML v6.0. CLICK ACCEPT.
  6. Hakbang 6:Pindutin CTRL / CMD +S. I-save bilang uri —> Excel Add-in. Ngayon ay maaari mong pangalanan ang iyong function. Ang extension ay dapat na xlam. Oras na para isara ang lahat ng Excel file.
  7. Hakbang 7:Magbukas ng bagong file na sumusunod sa sumusunod na landas: File -> Mga Opsyon -> Mga Plugin. Sa kahon ng Pamahalaan, piliin ang Excel Add-in.
  8. Hakbang 8:Pindutin Ir. Piliin ang function sa window na lilitaw sa pamamagitan ng paglalagay ng check sa kahon. Pindutin
  9. Hakbang 9:Ngayon ay maaari mong gamitin ang bagong function na iyong nilikha, tulad ng anumang iba pang function.

TANDAAN: Kapag natapos mo nang kunin ang mga halaga, kopyahin at i-paste ang mga ito sa ibang lugar, sa labas ng sheet na may mga kalkulasyon. Pagkatapos ay aalisin mo ang mga function call dahil kung hindi, kapag binuksan mo muli ang file na ito, magsisimulang ma-ping muli ang Google API. Kakainin iyon ng ilang minuto bago magbukas ang file. Upang i-optimize ang paggamit ng mga mapagkukunan ng Google, magpahinga ng 10 segundo sa pagitan ng mga address.

Ito ay maraming hakbang at ipinapalagay na nakakita ka ng ilang code na susuriin. Susunod, titingnan natin ang pinakamadaling paraan upang i-geocode ang iyong data sa Excel. Ito ay mabilis at maaasahan, ngunit hindi ito mag-i-import ng mga coordinate sa iyong Excel file. Sa kabilang banda, ang geocoding tool ng Excel ay simpleng kopyahin at i-paste at nagbibigay sa iyo ng interactive na mapa.

Ang madaling paraan (kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel kapag lumilikha ng isang mapa)

Mayroong ilang mga paraan upang lumikha ng mga mapa gamit ang data ng Excel. Marahil ang pinakamadali ay ang simpleng kopyahin at i-paste ang iyong data ng spreadsheet sa aming tool sa pagmamapa. Ang paggawa nito ay nagiging isang magandang interactive na mapa ang iyong dokumento sa Excel.

  1. Hakbang 1: Upang gumawa ng sarili mong mapa batay sa mga coordinate ng latitude at longitude, paghiwalayin ang mga coordinate sa sarili nilang mga column sa loob ng iyong spreadsheet.

Mga Paraan para Kalkulahin ang Mga Distansya sa Pagitan ng Mga Coordinate sa Excel Mga Paraan para Kalkulahin ang Mga Distansya sa Pagitan ng Mga Coordinate sa Excel Mga Paraan para Kalkulahin ang Mga Distansya sa Pagitan ng Mga Coordinate sa Excel

  1. Hakbang 2: Pagkatapos, piliin at kopyahin ang mga row at column ng iyong spreadsheet (Ctrl+C o Cmd+C command sa Kapote) at I-paste (Ctrl+V o Cmd+V sa Mac) sa iyong data, at tapos ka na!

Maaari ka ring maging interesado sa pagbabasa tungkol sa: Paano Gamitin ang QUARTILE Function sa Excel – Kumpletong Gabay

Konklusyon

Tulad ng nakikita mo, ito ang mga pamamaraan na magagamit mo upang kalkulahin ang mga distansya sa pagitan ng mga coordinate sa Excel. Gusto mo mang lumikha ng latitude at longitude na mapa o gumawa ng sarili mong virtual na gabay sa kasal para sa iyong mga bisita, ang mga prosesong ito ay nag-aalok ng libre at madaling paraan upang lumikha ng magagandang mga web maps na handang i-save at ibahagi. Umaasa kaming nakatulong sa iyo sa impormasyong ito.

Mag-iwan ng komento