Cara Mengira Jarak Antara Koordinat dalam Excel

Kemaskini terakhir: 04/10/2024
Cara Mengira Jarak Antara Koordinat dalam Excel

Ingin tahu cara mengira jarak antara koordinat dalam Excel ? Di sini, kami akan mengajar anda cara mengira jarak dalam Excel menggunakan latitud dan longitud dalam tutorial ini. Kami menjemput anda untuk terus bersama kami.

Di sini anda boleh mengetahui lebih lanjut tentang: Cara Mencipta Carta Vektor dalam Excel. 3 Langkah untuk Diikuti

Kaedah untuk mengira jarak antara koordinat dalam Excel

Pencarian untuk penyelesaian yang tepat untuk masalah ini telah membawa saya ke banyak tapak dan cubaan penyelesaian. Senarai panjang tapak berkaitan disertakan pada penghujung semua ini, tetapi yang paling penting yang kami dapati bahawa penyelesaian yang paling boleh dilaksanakan ialah mengira jarak antara koordinat dalam Excel.

Sekarang, mari kita lihat kaedah terbaik untuk mengira jarak antara koordinat dalam Excel:

Kira jarak antara koordinat dalam Excel (Latitud dan Longitud, Formula)

(Latitud dan Longitud, Formula)
Latitud dan Longitud, Formula

Formula yang diterima untuk memberikan hasil dengan ketepatan milimeter dikenali sebagai formula Vincenty. Sememangnya, ketepatan keputusan bergantung sebahagian besarnya pada ketepatan pasangan latitud/longitud yang menerangkan dua titik.

Mengapa perlu kecoh tentang ketepatan? Daripada apa yang telah kita lihat tentang formula lain, terutamanya yang ditulis sebagai fungsi lembaran kerja tunggal, nilainya agak berbeza untuk situasi yang mungkin dianggap 'kritikal dalam hidup'.

Mereka biasanya pendek beberapa meter, biasanya kira-kira 20 hingga 30 kaki setiap batu statut, dan selepas terbang hanya 30 atau 40 batu, kami tidak keberatan mendarat beberapa ratus kaki dari hujung pendekatan landasan, apalagi menjadi jauh lebih daripada 7 batu dalam perjalanan antara Los Angeles dan Honolulu.

Oleh kerana kecenderungan umum apabila berurusan dengan pengiraan jenis ini adalah untuk " mengukurnya dengan mikrometer, menandanya dengan kapur, dan memotongnya dengan kapak ," apa yang kita ada di sini ialah mikrometer yang sangat tepat untuk memulakan proses pengukuran.

Kaedah 1: Kira jarak antara koordinat dalam Excel (Formula untuk jarak)

Terdapat banyak fungsi hamparan Excel yang akan mengembalikan tajuk awal dari satu titik ke titik destinasi untuk laluan Bulatan Besar di antara mereka dan formula serupa untuk mengembalikan jarak antara mereka.

Namun berdasarkan pengalaman menggunakannya dan membandingkannya dengan jarak terukur yang diketahui, kaedah Vincenty untuk mengira jarak antara koordinat dalam Excel belum diterjemahkan ke dalam satu fungsi hamparan tunggal, dan kemungkinan besar ia tidak akan mudah, sekurang-kurangnya.

Oleh kerana ia bergantung pada pengiraan berulang untuk menangani mata yang hampir berada di sisi yang bertentangan dengan dunia, melaksanakannya walaupun sebagai satu siri formula hamparan Excel adalah tugas yang sukar.

Kaedah 2: Kira jarak antara koordinat dalam Excel (Bekerja dengan sudut)

Tetapi sebelum menggunakan ciri ini, terdapat beberapa langkah awal untuk dipertimbangkan. Paling ketara, Excel dan VB berfungsi dengan sudut yang dinyatakan dalam radian, bukan sebagai nilai perpuluhan sudut, mahupun daripada perwakilan "Inggeris biasa" awal mereka.

Pertimbangkan keadaan ini:

Anda mempunyai Latitud yang diwakili sebagai 10° 27′ 36″ S (10 darjah, 27 minit 36 ​​saat Selatan)

Anda perlu menukarnya kepada radian, dan tiada cara langsung untuk melakukannya, sebelum kita boleh menukarnya kepada radian, ia perlu ditukar kepada perwakilan perpuluhan. Kita perlu melihatnya sebagai: 10.46 iaitu bersamaan perpuluhan dengan 10° 27′ 36″ dan kita perlu mengambil kira sama ada ia adalah latitud utara atau selatan, dan latitud selatan dianggap sebagai nombor negatif.

Mujurlah, Microsoft menyediakan beberapa fungsi berguna untuk menukar notasi sudut piawai kepada setara perpuluhannya, dan sebaliknya, di halaman ini: Fungsi Microsoft

Rutin tersebut disertakan dalam bahagian kod dan salah satu daripadanya mempunyai perubahan yang dibuat untuk membolehkan membuat input sudut biasa seperti

  • 10~ 27′ 36″ S bukannya 10° 27′ 36″ S

Kerana ~ boleh diakses terus dari papan kekunci, manakala ° tidak.

Kaedah 3: hitung jarak antara koordinat dalam Excel (Menukar kepada Radian)

Selepas menukar tatatanda piawai kepada nilai perpuluhan, kita masih perlu menukarnya kepada radian dan berurusan dengan tanda hasil radian.

Rutin dan formula di sini menganggap latitud negatif sebagai latitud selatan dan longitud negatif sebagai longitud barat. Walaupun ini mungkin kelihatan tidak adil bagi kita yang tinggal di Hemisfera Barat, apa yang boleh saya katakan selain daripada menanganinya?

Nilai darjah perpuluhan boleh ditukar kepada radian dalam beberapa cara dalam Excel, dan proses ini menggunakan fungsi mudah yang turut disertakan dalam kod di bawah.

Formula asas adalah seperti berikut:

  • Radian = sudutAsPerpuluhan x (Pi / 180)
  • di mana Pi ialah 3.14159265358979

Kaedah 4: hitung jarak antara koordinat dalam Excel (Penyelesaian muktamad)

  1. langkah 1: Salin semua kod di bawah dan tampalkannya ke dalam modul kod biasa dalam buku kerja anda. Arahan untuk meletakkan kod dalam modul biasa ada di sini: Salin kod Excel VBA ke dalam modul biasa
  2. langkah 2: Konfigurasikan lembaran kerja anda untuk melepasi latitud dan longitud titik mula dan tamat sebagai input standard
  3. langkah 3: kemudian masukkan formula untuk menghantarnya ke fungsi distVincenty().

Diberi dua titik dengan koordinat ini:

Perkara 1:

  • Latitud: 37° 57′ 3.7203″ S
  • Longitud: 144° 25′ 29.5244″ E

Perkara 2:

  • Latitud: 37° 39′ 10.1561″ S
  • Longitud: 143° 55′ 35.3839″ E

Format umum panggilan fungsi ialah:

=distVincenty(Pt1_LatAsDecimal, Pt1_LongAsDecimal, Pt2_LatAsDecimal, Pt2_LongAsDecimal)

Formula mentah akan kelihatan seperti ini [Perhatikan petikan berganda selepas entri saat]. Fungsi SignIt(), yang disediakan sebagai sebahagian daripada kod, menukar input Sudut standard kepada nilai perpuluhan yang ditandatangani.

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

Anda boleh menggunakan simbol ~ dan bukannya simbol ° jika ia lebih mudah untuk anda:

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

Jika koordinat Titik 1 berada di B2 dan C2 dan koordinat Titik 2 berada di B3 dan C3, maka ia boleh dimasukkan sebagai

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

Hasil daripada 2 titik sampel yang digunakan di atas hendaklah 54972,271, dan keputusan ini adalah dalam meter.

Kaedah 5: Kira jarak antara koordinat dalam Excel (Masalah yang dihadapi)

Kod awal yang kami mula gunakan menghasilkan ralat " formula terlalu kompleks " dalam dua pernyataan. Pernyataan ini pada mulanya dibahagikan kepada dua bahagian, dan kemudian dua pengiraan berasingan itu " digabungkan semula " menjadi satu formula untuk mendapatkan hasil akhir tanpa ralat " formula terlalu kompleks ".

  Cara Membuat Pelayan dengan TS (Teamspeak) – Panduan Lengkap

Semasa penyediaan dokumen ini, pakej tersebut telah diuji pada Excel 2010 64-bit dan mula mengembalikan ralat #VALUE! untuk semua nilai input.

Siasatan tersebut mendapati bahawa sebahagian daripada formula yang telah dibahagikan untuk menentukan nilai deltaSigma telah menghasilkan ralat limpahan. Ralat ini tidak berlaku dalam versi 32-bit Excel 2010, mahupun dalam Excel 2003 (aplikasi 32-bit).

Baris kod yang menyinggung itu sekali lagi dipecahkan kepada kepingan yang lebih kecil yang akhirnya disatukan semula dalam proses yang betul secara matematik yang menghasilkan penentuan nilai yang sesuai tanpa menggunakan sebarang perubahan kepada algoritma asal.

Bahagian ini dinyatakan dalam ulasan kod untuk fungsi distVincenty() di bawah.

Kod latitud longitud untuk mengira jarak antara koordinat dalam Excel

Sekarang, akhirnya, kod:

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

PI Const Persendirian = 3.14159265358979

Private Const EPILON Sebagai Ganda _

    = 0.000000000001

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

Fungsi Awam distVincenty(ByVal _

  lat1 Sebagai Ganda, ByVal lon1 Sebagai Ganda, _

    ByVal lat2 Sebagai Ganda, _

      ByVal lon2 As Double) As Double

'INPUT: Latitud dan Longitud

'titik awal dan destinasi

' dalam format perpuluhan.

'OUTPUT: Jarak antara

' dua mata dalam Meter.

'

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

' Kira jarak geodesik (dalam m)

'antara dua titik yang ditentukan oleh

' latitud/longitud (dalam angka

'[perpuluhan] darjah)

'menggunakan formula songsang Vincenty

' untuk ellipsoid

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

' Kod telah dialihkan oleh lost_species

' daripada www.aliencoffee.co.uk kepada VBA

' daripada javascript yang diterbitkan di:

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

' /latlong-vincenty.html

' * daripada: formula songsang Vincenty –

'T Vincenty, «Terus dan Songsang

'Penyelesaian Geodesik pada

' * Ellipsoid dengan aplikasi

'persamaan bersarang', Kajian Tinjauan,

' jld XXII no 176, 1975

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

' PUBS_LIB/inverse.pdf

'Rujukan Tambahan:

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

'Vincenty%27s_formulae

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

' Hak cipta lost_species 2008 LGPL

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

' licenses/lgpl.html

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

'Pengubahsuaian kod untuk mengelakkan

Ralat 'Formula Terlalu Kompleks' dalam

'Excel (2010) pelaksanaan VBA

'disediakan oleh Jerry Latham,

'Microsoft MVP Excel, 2005-2011

'23 Julai 2011

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

  Malap rendah_a Sebagai Ganda

  Malapkan rendah_b Sebagai Ganda

  Malapkan f Sebagai Ganda

  Malapkan L Sebagai Ganda

  Malapkan U1 Sebagai Ganda

  Malapkan U2 Sebagai Ganda

  Malapkan sinU1 Berganda

  Malapkan sinU2 Berganda

  Dim cosU1 As Double

  Dim cosU2 As Double

  Malapkan lambda Sebagai Ganda

  Malapkan lambdaP Sebagai Ganda

  Dim iterLimit Sebagai Integer

  Malapkan sinLambda Sebagai Ganda

  Malapkan kosLambda Sebagai Ganda

  Malapkan sinSigma Sebagai Ganda

  Dim cosSigma As Double

  Sigma malap Sebagai Ganda

  Malapkan sinAlpha Sebagai Ganda

  Dim cosSqAlpha As Double

  Malapkan cos2SigmaM Sebagai Ganda

  Malapkan C Sebagai Ganda

  Malapkan uSq Sebagai Ganda

  Malapkan bahagian atas_A Sebagai Ganda

  Malapkan bahagian atas_B Sebagai Ganda

  Malapkan deltaSigma Sebagai Ganda

  Keputusan akhir Dim s As Double,

'akan dikembalikan bulat kepada

' 3 tempat perpuluhan (mm).

'tambah JLatham untuk berpisah

Formula 'Terlalu Kompleks'

'ke dalam kepingan untuk dikira dengan betul

'formula tersebut seperti yang dinyatakan di bawah

'dan untuk mengelakkan ralat limpahan apabila

'menggunakan Excel 2010 x64 dihidupkan

Sistem Windows 7 x64

  Dim P1 As Double ' digunakan untuk mengira

'sebahagian daripada formula kompleks

  Dim P2 As Double ' digunakan untuk mengira

'sebahagian daripada formula kompleks

  Dim P3 As Double ' digunakan untuk mengira

'sebahagian daripada formula kompleks

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

' /Sistem_Geodetik_Dunia

'untuk maklumat tentang pelbagai Ellipsoid

' parameter untuk piawaian lain.

'rendah_a dan rendah_b dalam meter

' === GRS-80 ===

'low_a = 6378137

'low_b = 6356752.314245

' f = 1 / 298.257223563

'

' === Airy 1830 === Dilaporkan terbaik

'ketepatan untuk England

' dan Eropah Utara.

'low_a = 6377563.396

'low_b = 6356256.910

' f = 1 / 299.3249646

'

' ===Antarabangsa 1924 ===

'low_a = 6378388

'low_b = 6356911.946

' f = 1 / 297

'

'===Model Clarke 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

'== Parameter Ellipsoid WGS-84 ===

  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 ' boleh ditetapkan

' serendah 20 jika mahu.

  Manakala (Abs(lambda – lambdaP) > _

      EPSILON) Dan (iterLimit > 0)

    iterLimit = iterLimit – 1

    sinLambda = Dosa(lambda)

    cosLambda = Cos(lambda)

    sinSigma = Sqr(((cosU2 * sinLambda) _

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

        *cosU2 *cosLambda) ^2))

    Jika sinSigma = 0 Maka

     distVincenty = 0 'mata kejadian bersama

      Fungsi Keluar

    End If

    cosSigma = sinU1 * sinU2 + cosU1 _

      *cosU2 *cosLambda

    sigma = Atan2(cosSigma, sinSigma)

    sinAlpha = cosU1 * cosU2 * _

      sinLambda / sinSigma

    cosSqAlpha = 1 – sinAlpha * sinAlpha

    Jika cosSqAlpha = 0 Kemudian 'semak untuk

    'bahagi dengan sifar

      cos2SigmaM = 0 '2 mata di khatulistiwa

    Yang lain

      cos2SigmaM = cosSigma – 2 _

        * sinU1 * sinU2 / cosSqAlpha

    End If

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

        * (4 – 3 * cosSqAlpha))

    lambdaP = lambda

'pengiraan asal ialah

'Terlalu Kompleks' untuk Excel VBA

'untuk berurusan dengan

'jadi ia dipecahkan kepada segmen

'untuk mengira tanpa isu itu

'pelaksanaan asal

'untuk mengira lambda

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

  (sigma + C * sinSigma * (cos2SigmaM

' + C * cosSigma * (-1 + 2

' * (cos2SigmaM ^ 2))))

      'kira bahagian

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

    P2 = (sigma + C * sinSigma * _

      (cos2SigmaM + C * cosSigma * P1))

    'selesaikan pengiraan

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

      *tanpaAlpha*P2

  Wend

  Jika iterLimit > 1 Kemudian

   MsgBox_

   «had lelaran telah dicapai,» _

        & »sesuatu tidak berjaya.»

    Fungsi Keluar

  End If

  uSq = cosSqAlpha * (rendah_a ^ 2 _

    –low_b^2)/(low_b^2)

'pengiraan asal ialah

'Terlalu Kompleks' untuk Excel VBA

'untuk berurusan dengan

'jadi ia dipecahkan kepada segmen kepada

'kira tanpa isu itu

  'pelaksanaan asal kepada

'kira upper_A

  'atas_A = 1 + uSq / 16384 *

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

' (320 – 175 * uSq)))

  'kira satu bahagian persamaan

  P1 = (4096 + uSq * (-768 _

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

  'selesaikan pengiraan

  atas_A = 1 + uSq / 16384 * P1

  'cukup aneh, upper_B mengira

'tanpa sebarang isu – JLatham

  upper_B = uSq / 1024 * (256 + uSq _

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

'pengiraan asal ialah

'Terlalu Kompleks' untuk Excel VBA

'untuk berurusan dengan

'jadi ia dipecahkan kepada segmen kepada

'kira tanpa isu itu

  'pelaksanaan asal kepada

' hitung 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)))

  'kira kepingan

' formula deltaSigma

  'dipecahkan kepada 3 bahagian untuk mengelakkan

'ralat limpahan yang mungkin berlaku dalam

  'Excel 2010 versi 64-bit.

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

  'pengiraan deltaSigma lengkap

  deltaSigma = P2 * P3

  'kira jarak

  s = rendah_b * atas_A * _

    (sigma – deltaSigma)

  'jarak bulat kepada milimeter

  distVincenty = Pusingan(s, 3)

Fungsi akhir

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

Fungsi SignIt(Degree_Dec Sebagai Rentetan) _

    Berganda

'Input: perwakilan rentetan daripada

' lat atau panjang dalam

' format 10° 27' 36″ S/N

' atau 10~ 27' 36″ E/W

'OUTPUT: nilai perpuluhan yang ditandatangani

'bersedia untuk menukar kepada radian

'

  Malapkan Nilai perpuluhan Sebagai Ganda

  Malapkan tempString Sebagai String

  tempString = UCase(Trim(Degree_Dec))

  Nilai perpuluhan = _

    Convert_Decimal(tempString)

  Jika Betul(tempString, 1) = «Y» _

    Atau Kanan(tempString, 1) = "W" Kemudian

    decimalValue = decimalValue * -1

  End If

  SignIt = nilai perpuluhan

Fungsi akhir

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

Fungsi Convert_Degree(Decimal_Deg) _

  Sebagai Varian

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

' kb/213449

'

'menukar kepada darjah perpuluhan

' perwakilan kepada deg min saat

'sebagai 10.46 kembali 10° 27' 36″

'

  Darjah malap Sebagai Varian

  Malapkan minit Sebagai Varian

  Malapkan saat Sebagai Varian

  Dengan Permohonan

     'Tetapkan darjah kepada Integer of

'Hujah Lulus

     darjah = Int(Decimal_Deg)

     'Tetapkan minit kepada 60 kali ganda

'nombor di sebelah kanan

     'daripada perpuluhan bagi

' pembolehubah Decimal_Deg

     minit = (Decimal_Deg – _

    darjah) * 60

     'Tetapkan saat kepada 60 kali ganda

'nombor di sebelah kanan

     'perpuluhan untuk Minit pembolehubah

     saat = Format(((minit – _

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

     'Mengembalikan Keputusan ijazah

' penukaran

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

     Convert_Degree = » » & darjah _

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

         & saat + Chr(34)

  Akhir Dengan

Fungsi akhir

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

Fungsi Menukar_Perpuluhan_

    (Degree_Deg Sebagai Rentetan) Sebagai Ganda

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

' kb/213449

   ' Isytiharkan pembolehubah menjadi

' titik terapung berketepatan ganda.

   'Menukar masukan sudut teks kepada

' perpuluhan setara, seperti:

   ' 10° 27' 36″ mengembalikan 10.46

   ' alternatif kepada ° dibenarkan:

' Gunakan ~ sebaliknya, sebagai:

   ' 10~ 27' 36″ juga mengembalikan 10.46

   Darjah malap Sebagai Ganda

   Malapkan minit As Double

   Malapkan saat Sebagai Ganda

   '

   'pengubahsuaian oleh JLatham

   'membenarkan pengguna menggunakan ~

simbol ' bukannya ° untuk menandakan darjah

   'sejak ~ boleh didapati daripada

' papan kekunci dan ° perlu dimasukkan

   'melalui [Alt] [0] [1] [7] [6]

' pada pad nombor.

   Degree_Deg = Ganti(Degree_Deg, _

    «~», «°»)

   ' Tetapkan darjah kepada nilai sebelum ini

' «°» daripada Hujah Lulus.

   darjah = Val(Kiri(Degree_Deg, _

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

   ' Tetapkan minit kepada nilai antara

' yang «°» dan «'»

   ' daripada rentetan teks untuk pembolehubah

' Degree_Deg dibahagikan dengan

   ' 60. Fungsi Val menukarkan

' rentetan teks kepada nombor.

   minit = Val(Pertengahan(Degree_Deg, _

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

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

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

   'Tetapkan saat kepada nombor kepada

' kanan «'» iaitu

   'ditukar kepada nilai dan kemudian

' dibahagikan dengan 3600.

   saat = Val(Pertengahan(Degree_Deg, _

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

      2, Len(Degree_Deg) – _

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

    / 3600

   Tukar_Perpuluhan = darjah _

    + minit + saat

Fungsi akhir

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

Fungsi Peribadi kepadaRad(ByVal _

    darjah As Double) As Double

    toRad = darjah * (PI / 180)

Fungsi akhir

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

Fungsi Peribadi Atan2( _

    ByVal X Berganda, _

    ByVal Y As Double) As Double

 'kod yang diberi nama panggilan daripada:

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

' Pengaturcaraan: Visual_Basic_Classic/

'Aritmetik_Mudah

' #Trigonometrik_Fungsi

 'Jika anda menggunakan semula berhati-hati ini:

'x dan y telah diterbalikkan daripada

'penggunaan biasa.

    Jika Y > 0 Maka

        Jika X >= Y Maka

            Atan2 = Atn(Y / X)

        LainJika X <= -Y Kemudian

            Atan2 = Atn(Y / X) + PI

        Yang lain

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

    End If

        Yang lain

            Jika X >= -Y Maka

            Atan2 = Atn(Y / X)

        LainJika X <= Y Maka

            Atan2 = Atn(Y / X) – PI

        Yang lain

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

        End If

    End If

Fungsi akhir

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

Cara mengira jarak antara koordinat dalam Excel dengan formula jarak

Sekarang, mari lihat cara mengira jarak antara koordinat dalam Excel dengan formula jarak:

Formula generik adalah seperti berikut = AKAR KUASA ((x2 – x1)^2 + (y2 – y1)^2)

Ringkasan

Untuk mengira panjang garisan 2D yang diberikan koordinat dua titik pada garisan, anda boleh menggunakan formula jarak, disesuaikan untuk sintaks formula Excel. Dalam contoh yang ditunjukkan, formula dalam G5, yang disalin ke bawah, ialah:

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

di mana koordinat dua titik diberikan dalam lajur B hingga E.

Penjelasan

Panjang garis boleh dikira dengan formula jarak, yang kelihatan seperti ini:

Cara Mengira Jarak Antara Koordinat dalam Excel
Formula

Jarak ialah punca kuasa dua perubahan dalam x kuasa dua ditambah dengan perubahan dalam y kuasa dua, di mana dua titik diberikan dalam bentuk (x 1, y 1) dan (x 2, y 2). Formula jarak ialah contoh aplikasi Teorem Pythagoras, di mana perubahan dalam x dan perubahan dalam y sepadan dengan dua sisi segi tiga tepat, dan hipotenus ialah jarak yang dikira.

Dalam Excel, formula jarak boleh ditulis dengan operator eksponen (^) dan fungsi SQRT adalah seperti berikut:

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

Mengikuti tertib operasi Excel, perubahan dalam x dan perubahan dalam y dikira, kemudian kuasa dua, dan dua keputusan ditambah dan dihantar ke fungsi SQRT, yang mengembalikan punca kuasa dua jumlah sebagai hasil akhir :

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

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

=SQRT(36+64)

=SQRT(100)

= 10

Fungsi POWER juga boleh digunakan sebagai ganti operator eksponen (^) seperti ini:

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

dengan hasil yang sama.

Kaedah untuk mengira jarak antara koordinat dalam Excel (jarak, menukar darjah dan alamat geokod)

Jika anda mempunyai senarai panjang koordinat geografi untuk digunakan, hamparan Microsoft Excel pasti akan berguna. Terdapat tiga alat Excel asas yang boleh berfungsi untuk anda, tidak kira bagaimana anda mahu memanipulasi koordinat geografi.

Anda perlu tahu cara mengira jarak antara koordinat dalam Excel, cara menukar data latitud dan longitud kepada darjah perpuluhan, dan akhirnya, cara geokod latitud dan longitud.

Kaedah 1: Kira jarak antara koordinat dalam Excel

Dalam contoh cara mengira jarak antara dua koordinat dalam Excel, kita akan melihat untuk mengukur jarak bulatan besar. Kita akan melihat bahawa latitud dan longitud dilambangkan dalam darjah, minit dan saat.

Cara Mengira Jarak Antara Koordinat dalam Excel

Cara mengira jarak antara koordinat dalam Excel dengan menukar latitud dan longitud kepada darjah perpuluhan

Segala-galanya, walaupun sesuatu yang rumit seperti darjah, minit dan saat, boleh ditukar kepada perpuluhan. Bahagian darjah tetap sama, tetapi minit dan saat mesti ditukar kepada peratusan darjahnya dan digabungkan.

Terdapat 60 minit dalam satu darjah dan 60 saat dalam satu minit (yang bermaksud 3600 saat dalam satu darjah). Oleh itu, minit dibahagikan dengan 60 dan saat dengan 3.600.

Formula umum:

  • Jumlah Darjah (dalam bentuk perpuluhan) = Darjah + [Minit/60] + [Saat/3600]

Cara Mengira Jarak Antara Koordinat dalam Excel

…Mengenai jarak itu

Memandangkan anda mempunyai nilai latitud dan longitud dalam perpuluhan, anda hanya menghadapi persamaan untuk batu nautika antara Timbuktu dan Casablanca, yang diberikan di bawah.

Batu nautika = 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

Jumlah tiga ribu itu, pada akhirnya, adalah jejari Bumi, dalam Batu Nautika. Walaupun anda menggantikannya dengan jejari sfera, dengan mengandaikan Bumi adalah sfera, pada 3437,7468 NM, ia tidak akan mendekati jarak sebenar dan tepat.

Rajah: Anda hanya perlu memasukkan formula itu ke dalam EXCEL SEKALI.
Rajah: Anda hanya perlu memasukkan formula itu ke dalam EXCEL SEKALI.
Rajah: Nombor 4476 ialah jarak dalam batu nautika. Perpuluhan agak tidak berguna kerana anda tahu ia adalah anggaran
Rajah: Nombor 4476 ialah jarak dalam batu nautika. Perpuluhan agak tidak berguna kerana anda tahu ia adalah anggaran

Kaedah 2: Kira jarak antara koordinat dalam Excel (Geokod latitud dan longitud)

Geokod ialah proses menukar alamat jalan kepada data latitud dan longitud yang boleh dipetakan. Terdapat dua cara untuk geokod latitud dan longitud daripada hamparan Excel: cara yang sukar dan cara yang mudah.

Pertama sekali, kita akan membincangkan cara yang sukar, iaitu apa yang anda perlukan jika anda mahu koordinat dibenamkan dalam dokumen Excel anda. Anda perlu menulis skrip Visual Basic (VBA) untuk memanggil geocoder luaran atau mencari kod di tempat lain. Terdapat beberapa API geocoder yang tersedia, dan ada yang lebih pantas daripada yang lain.

API pengekodan geo Peta Google merupakan pilihan biasa, dan ini adalah API yang akan kita panggil dengan cara yang mudah. ​​Walau bagaimanapun, anda juga boleh bekerja secara langsung dalam Excel. Berbekalkan kod yang telah anda tulis atau temui, berikut ialah langkah-langkah untuk melaksanakan pengekodan geo dalam Excel.

Cara yang sukar

  1. Langkah 1:cari tab Pemaju dalam versi Excel anda.
  2. Langkah 2:cari tab «Visual Basic«. Ini membuka tetingkap pembangunan.
  3. Langkah 3:Sisip -> Modul. Modul baharu akan mengekalkan fungsi anda.
  4. Langkah 4: Di sinilah anda menyalin dan menampal kod anda.
  5. Langkah 5:Kita perlu menambah rujukan sekarang. Jadi, Alat -> Rujukan. Pastikan anda menyemak Microsoft XML v6.0. KLIK TERIMA.
  6. Langkah 6:Tekan CTRL / CMD +S. Simpan sebagai jenis —> Tambahan Excel. Kini anda boleh menamakan fungsi anda. Sambungan mesti xlam. Sudah tiba masanya untuk menutup semua fail Excel.
  7. Langkah 7:Buka fail baharu mengikut laluan berikut: Fail —> Pilihan —> Pemalam. Dalam kotak Urus, pilih Add-in Excel.
  8. Langkah 8:Tekan Ir. Pilih fungsi dalam tetingkap yang muncul dengan menandakan kotak. Tekan
  9. Langkah 9:Kini anda boleh menggunakan fungsi baharu yang anda buat, seperti mana-mana fungsi lain.

NOTA : Setelah anda selesai mendapatkan nilai, salin dan tampalkannya di tempat lain, di luar hamparan yang mengandungi pengiraan. Kemudian, alih keluar panggilan fungsi kerana jika tidak, apabila anda membuka semula fail ini, Google API akan mula menerima ping sekali lagi. Ini akan mengambil masa beberapa minit sebelum fail dibuka. Untuk mengoptimumkan penggunaan sumber Google, berikan jeda 10 saat antara ping.

Ini adalah banyak langkah dan ia menganggap anda telah menemui beberapa kod untuk diuji. Seterusnya, kami akan melihat cara paling mudah untuk geokod data Excel anda. Ia pantas dan boleh dipercayai, tetapi ia tidak akan mengimport koordinat ke dalam fail Excel anda. Sebaliknya, alat geokod Excel mudah untuk disalin dan ditampal serta memberikan anda peta interaktif.

Cara mudah (kira jarak antara koordinat dalam Excel semasa membuat peta)

Terdapat beberapa cara untuk membuat peta dengan data Excel. Mungkin yang paling mudah ialah dengan hanya menyalin dan menampal data hamparan anda ke dalam alat pemetaan kami. Melakukannya menukar dokumen Excel anda menjadi peta interaktif yang indah.

  1. langkah 1: Untuk membuat peta anda sendiri berdasarkan koordinat latitud dan longitud, pisahkan koordinat ke dalam lajurnya sendiri dalam hamparan anda.

Cara Mengira Jarak Antara Koordinat dalam Excel Cara Mengira Jarak Antara Koordinat dalam Excel Cara Mengira Jarak Antara Koordinat dalam Excel

  1. langkah 2: Kemudian, pilih dan salin baris dan lajur hamparan anda (arahan Ctrl+C atau Cmd+C dalam Mac) dan Tampal (Ctrl+V atau Cmd+V pada Mac) ke dalam data anda, dan anda sudah selesai!

Anda mungkin juga berminat untuk membaca tentang: Cara Menggunakan Fungsi QUARTILE dalam Excel – Panduan Lengkap

Kesimpulan

Seperti yang anda lihat, ini ialah kaedah yang boleh anda gunakan untuk mengira jarak antara koordinat dalam Excel. Sama ada anda ingin mencipta peta latitud dan longitud atau mencipta panduan perkahwinan maya anda sendiri untuk tetamu anda, proses ini menawarkan cara percuma dan mudah untuk mencipta peta web yang cantik yang sedia untuk disimpan dan dikongsi. Kami berharap dapat membantu anda dengan maklumat ini.