Existe uma maneira (de preferência no Excel) de calcular a distância (com base em lat, lon) entre duas listas de pontos?
Meu objetivo final seria, por exemplo, ter uma lista da Starbucks e uma lista do McDonald's e, em seguida, mostrar o vizinho mais próximo.
Respostas:
Dada uma lista de pares de coordenadas geográficas, você pode implementar a fórmula Haversine diretamente no Excel.
A maneira mais simples de usar essa fórmula (ou uma mais precisa, mas acho que não é o seu caso) consiste em pressionar
Alt+F11
para abrir o Editor do VBA, clicarInsert --> Module
e depois (copiar e) colar, por exemplo, o código gentilmente sugerido por blah238.Haverá uma nova
getDistance
função personalizada (unidade = quilômetro) disponível em sua planilha que aceita quatro parâmetros, ou seja, os dois pares de coordenadas, como segue:onde
latitude1, longitude1, latitude2, longitude2
deve ser substituído por suas referências de célula relativas.fonte
Uma maneira mais precisa é usar a fórmula de Vicenty . É baseado em um elipsóide em vez de uma esfera. No entanto, a resposta anterior fará o trabalho se você trabalhar em uma cidade (as diferenças podem ser negligenciadas no seu caso). Eu encontrei um código vb do excel aqui por precaução.
Observe que se você trabalha em uma cidade, o uso de distâncias de "fuga de pássaros" pode ser enganoso. Seria melhor usar distâncias da rede. Um compromisso é usar a "distância de Manhattan"
fonte