Coordonnées GPS et Filtre

Bonjour,

Est il possible sur excel de filtrer les coordonnées gps par proximité (via formule ou VBA)

J'ai une liste de 350 sites avec leur point GPS (type latitude 47°52'27"N longitude 0°0'51"E) et je voudrais les assembler par proximité.

Merci

Bonjour,

Alors, il y a plusieurs manières.

Si tu cellules sont de la forme :

"latitude 47°52'27"N"

"longitude 0°0'51"E"

... voici la formule que je te propose pour extraire les données en forme décimal :

=STXT(J9; TROUVE(" ";J9)+1; TROUVE("°";J9) - (TROUVE(" ";J9)+1))+STXT(J9; TROUVE("°";J9)+1; TROUVE("'";J9) - (TROUVE("°";J9)+1))/60+STXT(J9; TROUVE("'";J9)+1; TROUVE("""";J9) - (TROUVE("'";J9)+1))/3600

(Pour récupérer la donnée, en décimal, de la cellule J9... bien entendu ! )

Ensuite, ayant tes 4 formules en décimal, tu peux utiliser cette formule :

=ACOS(SIN(RADIANS(O9))*SIN(RADIANS(O13))+COS(RADIANS(O9))*COS(RADIANS(O13))*COS(RADIANS(O10-O14)))*6371

... avec en O9 la latitude A, en O13 la latitude B // en O10 la longitude A, en O14 la longitude B.

Tu auras la distance en kilomètre entre tes deux points.

Cependant, si tu veux comparer 350 sites les uns avec les autres, il est préférable d'utiliser le VBA.

Dis moi en plus sur la manière dont tu veux procéder (le résultat souhaité, en fait), pour que je t'aide à l'implémenter, si tu le souhaites !

J'étais justement en train de plancher sur la méthode que tu viens de présenter.

Mais en effet je souhaite comparer les 350 sites entre eux ! ça risque de prendre un certain temps.

Ce que je veux en définitif c'est regroupé les sites par paquet de 3 selon leur proximité.

Ce qui revient à prendre un site le tester avec les 349 autres retenir les 2 plus proches, les retirer de la liste

Et recommencer comparer 1 site avec les 347 restant en retenir 2, les retirer de la liste etc...

Mes sites sont dispersés dans plusieurs départements (13), je pense les filtrer pour faire des paquets de 30 approximativement sachant que le nombre de site n'est pas égal par département.

J'ai bien compris la façon dont tu veux tester tes sites, à savoir :

Ce qui revient à prendre un site le tester avec les 349 autres retenir les 2 plus proches, les retirer de la liste

Et recommencer comparer 1 site avec les 347 restant en retenir 2, les retirer de la liste etc...

Mais il y a un petit problème. Imaginons tu prends Biarritz, Bayonne, Marseille, Nice. Comment fais-tu le tri ? En effet, la recherche commence par Bayonne pour une raison quelconque. Tu vas donc trouver Marseille et Biarritz. Si tu retires ces deux villes de ta liste et que tu fais ensuite une recherche sur Nice, tu vas trouver des villes peut-être plus loin que Marseille (en particulier à l'Est)...

Bref, c'était un aparté.

En revanche, je ne comprends pas ce que tu veux dire par tes "Départements". C'est justement pour répondre à la première interrogation que j'ai soulevé ? J'entends par là, que tu veux d'abord regrouper tes géolocalisations en départements avant de cibler les deux points les plus proches ?

Ton aparté est pertinent, en effet mais je ne vois pas comment optimiser le tri

Peut être avec le solveur d'excel

Concernant les département il s'agit en effet de ne plus tester les 350 sites entres eux mais seulement ceux qui sont dans le même département.

Kimy_Ire a écrit :

Bonjour,

Alors, il y a plusieurs manières.

Si tu cellules sont de la forme :

"latitude 47°52'27"N"

"longitude 0°0'51"E"

... voici la formule que je te propose pour extraire les données en forme décimal :

=STXT(J9; TROUVE(" ";J9)+1; TROUVE("°";J9) - (TROUVE(" ";J9)+1))+STXT(J9; TROUVE("°";J9)+1; TROUVE("'";J9) - (TROUVE("°";J9)+1))/60+STXT(J9; TROUVE("'";J9)+1; TROUVE("""";J9) - (TROUVE("'";J9)+1))/3600

(Pour récupérer la donnée, en décimal, de la cellule J9... bien entendu ! )

Est ce que ta formule fais la différence entre La longitude Est et Ouest dans le calcul ?

Non, ce sont les coordonnées uniquement Est. Souhaites-tu que je t'aides pour changer la formule en fonction de O ou E ?

EDIT :

=SI(OU(DROITE(J10; 1) = "E";DROITE(J10; 1) = "N"); STXT(J10; TROUVE(" ";J10)+1; TROUVE("°";J10) - (TROUVE(" ";J10)+1))+STXT(J10; TROUVE("°";J10)+1; TROUVE("'";J10) - (TROUVE("°";J10)+1))/60+STXT(J10; TROUVE("'";J10)+1; TROUVE("""";J10) - (TROUVE("'";J10)+1))/3600; -1*(STXT(J10; TROUVE(" ";J10)+1; TROUVE("°";J10) - (TROUVE(" ";J10)+1))+STXT(J10; TROUVE("°";J10)+1; TROUVE("'";J10) - (TROUVE("°";J10)+1))/60+STXT(J10; TROUVE("'";J10)+1; TROUVE("""";J10) - (TROUVE("'";J10)+1))/3600))

Oui s'il te plait, étant donné que j'ai des sites à l'est et à l'ouest mes valeurs ne concordent pas.

Merci de ton aide !

La formule au dessus prend maintenant en compte les différences N/S et E/W ! =)

ça marche nickel ! Merci bien !

J'ai un peu avancé sur ma problématique de départ grâce à toi et j'ai posté une autre question sur le forum concernant la sélection optimisé des sites.

J'ai même repris ton exemple qui été judicieux !

Si jamais tu as une idée :

https://forum.excel-pratique.com/excel/macro-tableau-double-entree-meilleurs-choix-t37350.html

Ceci doit répondre à une partie de mon topic mais je n'ai rien compris

Rechercher des sujets similaires à "coordonnees gps filtre"