Existe-t-il un moyen (de préférence dans Excel) de calculer la distance (basée sur lat, lon) entre deux listes de points?
Mon objectif final serait, par exemple, d'avoir une liste de Starbucks et une liste de McDonald's, puis de montrer le voisin le plus proche, si vous voulez.
Réponses:
Étant donné une liste de paires de coordonnées géographiques, vous pouvez implémenter la formule Haversine directement dans Excel.
La façon la plus simple d'utiliser cette formule (ou une formule plus précise, mais je pense que ce n'est pas votre cas) consiste à appuyer sur
Alt+F11
pour ouvrir l'éditeur VBA, à cliquerInsert --> Module
puis à (copier et) coller par exemple le code aimablement suggéré par blah238.Il y aura une nouvelle
getDistance
fonction personnalisée (unité = kilomètre) disponible dans votre feuille de calcul qui accepte quatre paramètres, à savoir les deux paires de coordonnées, comme suit:où
latitude1, longitude1, latitude2, longitude2
doit être remplacé par leurs références de cellule relatives.la source
Une manière plus précise consiste à utiliser la formule de Vicenty . Il est basé sur un ellipsoïde au lieu d'une sphère. Cependant, la réponse précédente fera l'affaire si vous travaillez dans une ville (les différences peuvent être négligées dans votre cas). J'ai trouvé un code excel vb ici juste au cas où.
Notez que si vous travaillez dans une ville, l'utilisation de distances de «vol d'oiseau» peut être trompeuse. Il serait préférable d'utiliser les distances du réseau. Un compromis consiste à utiliser "Manhattan distance"
la source