Entfernungsberechnung mit Excel durchführen?


8

Gibt es eine Möglichkeit (vorzugsweise in Excel), die Entfernung (basierend auf lat, lon) zwischen zwei Punktelisten zu berechnen?

Mein Endziel wäre zum Beispiel, eine Liste von Starbucks und eine Liste von McDonald's zu haben und dann den nächsten Nachbarn zu zeigen, wenn Sie so wollen.


Ich suche Mindestabstand.
B-Rad-B

Um welches Unet wird die Entfernung zurückgegeben?
Jeed

@Jeed Jede Einheit wäre in Ordnung, wahrscheinlich Meilen in diesem Fall.
B-Rad-B

Antworten:


16

Mit einer Liste von geografischen Koordinatenpaaren können Sie die Haversine-Formel direkt in Excel implementieren .


Der einfachste Weg , diese (oder eine genauere, aber ich denke , es ist nicht dein Fall) zu verwenden Formel besteht in drücken Alt+F11den VBA - Editor zu öffnen, klicken Sie Insert --> Moduleund dann (Kopieren und) fügen Sie zB den Code freundlicherweise von blah238 vorgeschlagen.

Public Function getDistance(latitude1, longitude1, latitude2, longitude2)  
earth_radius = 6371  
Pi = 3.14159265  
deg2rad = Pi / 180  

dLat = deg2rad * (latitude2 - latitude1)  
dLon = deg2rad * (longitude2 - longitude1)  

a = Sin(dLat / 2) * Sin(dLat / 2) + Cos(deg2rad * latitude1) * Cos(deg2rad * latitude2) * Sin(dLon / 2) * Sin(dLon / 2)  
c = 2 * WorksheetFunction.Asin(Sqr(a))  

d = earth_radius * c  

getDistance = d  

End Function

getDistanceIn Ihrer Tabelle steht eine neue benutzerdefinierte Funktion (Einheit = Kilometer) zur Verfügung, die vier Parameter akzeptiert, dh die beiden Koordinatenpaare wie folgt:

getDistance(latitude1, longitude1, latitude2, longitude2)

wo latitude1, longitude1, latitude2, longitude2sollte durch ihre relativen Zellreferenzen ersetzt werden.

Geben Sie hier die Bildbeschreibung ein


3
Direkter Link: codecodex.com/wiki/…
blah238

@ blah238 Danke für deinen Vorschlag. Ich habe eine kurze Anleitung hinzugefügt, damit es funktioniert.
Antonio Falciano

1
@afalciano Danke für den Rundgang & Code. Meine Frage ist jedoch, was sind die ultimativen Einheiten aus dieser Gleichung? ist es Meter?
Kerry

@ Kerry Es sind Kilometer. Auch wenn die Formel "Sqr" sagt, sollte es "Sqrt" sein.
ddunn801

Die Maßeinheit für Entfernungen ist Kilometer, genau wie der Erdradius.
Antonio Falciano

3

Ein genauerer Weg ist die Verwendung der Vicenty- Formel. Es basiert auf einem Ellipsoid anstelle einer Kugel. Die vorherige Antwort reicht jedoch aus, wenn Sie in einer Stadt arbeiten (Unterschiede können in Ihrem Fall vernachlässigt werden). Ich habe hier für alle Fälle einen Excel-VB-Code gefunden .

Beachten Sie, dass die Verwendung von "Vogelflug" -Distanzen irreführend sein kann, wenn Sie in einer Stadt arbeiten. Es wäre besser, Netzwerkentfernungen zu verwenden. Ein Kompromiss ist die Verwendung von "Manhattan Entfernung"

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.