¿Realizar cálculo de distancia usando Excel?


8

¿Hay alguna manera (preferiblemente en Excel) de calcular la distancia (basada en lat, lon) entre dos listas de puntos?

Mi objetivo final sería, por ejemplo, tener una lista de Starbucks y una lista de McDonald's, y luego mostrarle al vecino más cercano, si lo desea.


Estoy buscando la distancia mínima.
b-rad-b

¿Por qué unet, devolverá la distancia?
Jeed

@Jeed Cualquier unidad estaría bien, probablemente millas en este caso.
b-rad-b

Respuestas:


16

Dada una lista de pares de coordenadas geográficas, puede implementar la fórmula de Haversine directamente en Excel.


La forma más simple de usar esta fórmula (o una más precisa, pero creo que no es su caso) consiste en presionar Alt+F11para abrir el Editor de VBA, hacer clic Insert --> Moduley luego (copiar y) pegar, por ejemplo, el código sugerido amablemente por blah238.

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

Habrá una nueva getDistancefunción personalizada (unidad = kilómetro) disponible en su hoja de cálculo que acepta cuatro parámetros, es decir, los dos pares de coordenadas, de la siguiente manera:

getDistance(latitude1, longitude1, latitude2, longitude2)

donde latitude1, longitude1, latitude2, longitude2debe ser reemplazado por sus referencias de celda relativas.

ingrese la descripción de la imagen aquí


3
Enlace directo: codecodex.com/wiki/…
blah238

@ blah238 Gracias por su sugerencia. He agregado un breve tutorial para que funcione.
Antonio Falciano

1
@afalciano Gracias por el recorrido y el código. Sin embargo, mi pregunta es ¿cuáles son las unidades finales de esta ecuación? es metros?
Kerry

@ Kerry Son kilómetros. Además, cuando la fórmula dice "Sqr", debería ser "Sqrt".
ddunn801

La unidad de medida de distancias es kilómetros, al igual que el radio de la Tierra.
Antonio Falciano

3

Una forma más precisa es usar la fórmula de Vicenty . Se basa en un elipsoide en lugar de una esfera. Sin embargo, la respuesta anterior hará el trabajo si trabaja en una ciudad (las diferencias pueden descuidarse en su caso). He encontrado un código de Excel vb aquí por si acaso.

Tenga en cuenta que si trabaja en una ciudad, el uso de distancias de "vuelo de pájaros" podría ser engañoso. Sería mejor usar distancias de red. Un compromiso es usar la "distancia de Manhattan"

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.