OVH Cloud OVH Cloud

Manque de précision

16 réponses
Avatar
Daniel
Bonsoir à tous
J'ai une recherche dans une liste de point GPS,
avec une référence pour chaque données GPS.(un point millière en "AQ" )
Avec la formule suisvante je recherche la coordonné la plus près de la
donnée
que j'ai en "AO1" pour obtenir équivalent dans la colonne "AQ".

=INDEX(AQ2:AQ3980;EQUIV(INDEX(DROITE(AR2:AR3980;6);EQUIV(PETITE.VALEUR(ABS(DROITE(AO1;6)-DROITE(AR2:AR3980;6));1);ABS(DROITE(AO1;6)-DROITE(AR2:AR3980;6));0));DROITE(AR2:AR3980;6);0))

colonne "AQ" "AR"
126.71 N45 41.585 W73 29.425
126,71 N45 41.579 W73 29.430
cela sur 3980 lignes.

Mon problème est que parfois je n'obtien pas la bonne référence ( le bon
millage).

Il ya a t'il une autre facon de faire une recherche !

ou si on retire N45 et W73 puis les point (car il ce répète sur tous les
donné).
(retire avec =SUBSTITUE(am;".";"")

10 réponses

1 2
Avatar
AV
Pour trouver la position d'une valeur la plus proche (au-dessus ou au-dessous)
(ou exacte) dans une plage pas forcément triée, appliquer la formule matricielle
type suivante :
=INDEX(PlageRecherche;EQUIV(PETITE.VALEUR(ABS(ValCherchée-PlageRecherche);1);ABS
(ValCherchée-PlageRecherche);0))
(validation par ctrl + maj +entrée)

PS : utiliser la fonction INDEX pour renvoyer une équivalence à cette position
dans un autre champ
AV
Avatar
Daniel
Bonjour AV
J'utilise cette formule :
=INDEX(AQ2:AQ3980;EQUIV(INDEX(DROITE(AR2:AR3980;6);EQUIV(PETITE.VALEUR(ABS(DROITE(AO1;6)-DROITE(AR2:AR3980;6));1);ABS(DROITE(AO1;6)-DROITE(AR2:AR3980;6));0));DROITE(AR2:AR3980;6);0))

Mais elle ne me donne pas toujour la bonne location.
Dans la donné GPS les trois premier carractère sont tous pareille ,
si je les retire la formule sera t'elle plus précise?

Merci pour le coup de main, car cela me tien beaucoup a coeur

"AV" a écrit dans le message de news:

Pour trouver la position d'une valeur la plus proche (au-dessus ou
au-dessous)
(ou exacte) dans une plage pas forcément triée, appliquer la formule
matricielle
type suivante :
=INDEX(PlageRecherche;EQUIV(PETITE.VALEUR(ABS(ValCherchée-PlageRecherche);1);ABS
(ValCherchée-PlageRecherche);0))
(validation par ctrl + maj +entrée)

PS : utiliser la fonction INDEX pour renvoyer une équivalence à cette
position
dans un autre champ
AV




Avatar
AV
A défaut de ne pas vouloir/pouvoir adapter la solution que je te propose, mets
un bout de fichier dans http://cjoint.com avec exemple et résultat attendu...

AV
Avatar
Daniel
Bonsoir AV

J'ai fait un fichier (très simplifier).
http://cjoint.com/?fAd7WCZpfE
La cellule A2: est l'endroit ou la macro inscrie la donné du GPS (cela a
tout les 10 seconde).
pour me permettre de trouver le millage ou je suis sur la voie ferrer.
La liste est le chemin de fer que je parcour.

La cellule B2: est le retour du millage (rechercher)
La cellule C2: est le retour du nom de la zone
Sur les ligne 5,6,7 sont des exemple erronné que j'ai obtenu .

J'ai 8 fichier différent donc certain plus de 9000 ligne.


Merci

"AV" a écrit dans le message de news:

A défaut de ne pas vouloir/pouvoir adapter la solution que je te propose,
mets
un bout de fichier dans http://cjoint.com avec exemple et résultat
attendu...

AV




Avatar
AV
En B5 de ton fichier exemple et recopie --> Bx
Matricielle (validation par ctrl+maj+entrée) :
=INDEX(PointMillaire;EQUIV(PETITE.VALEUR(ABS(STXT(A5;5;6)-STXT(Longitude_Latitud
e;5;6));1);ABS(STXT(A5;5;6)-STXT(Longitude_Latitude;5;6));0))

AV
Avatar
Daniel
Bonsoir AV
Je ne suis pas sur de bien comprendre.

Dans le fichier que je vous est fait parvenir ,
les donné en A5 ,A6 A7 sont des exemples que lorsque je copie une de ces
donné dans la cellule A2
j'obtien une mauvaise réponce (26,60... a la plac de 8.39)

Merci
"AV" a écrit dans le message de news:
%
En B5 de ton fichier exemple et recopie --> Bx
Matricielle (validation par ctrl+maj+entrée) :
=INDEX(PointMillaire;EQUIV(PETITE.VALEUR(ABS(STXT(A5;5;6)-STXT(Longitude_Latitud
e;5;6));1);ABS(STXT(A5;5;6)-STXT(Longitude_Latitude;5;6));0))

AV




Avatar
AV
j'obtien une mauvaise réponce (26,60... a la plac de 8.39)


Même en faisant un copier/coller de la formule que je t'ai donné en remplaçant
A5 par A2 ??
Allons y.....

En B2 de ton fichier :
=INDEX(PointMillaire;EQUIV(PETITE.VALEUR(ABS(STXT(A2;5;6)-STXT(Longitude_Latitud
e;5;6));1);ABS(STXT(A2;5;6)-STXT(Longitude_Latitude;5;6));0))
Validation matricielle (par ctrl+maj+entrée)
Le nom "Longitude_Latitude" (F3:Fxxx) doit être évidemment défini !

En C2 de ton fichier (et avec noms définis) :
=INDEX(EndroitSubd;EQUIV(B2;PointMillaire;0))

AV

Avatar
Daniel
Bonsoir AV
Samedi je vais sur la route et je vais faire des test.
je vous en reparle.
Merci

"AV" a écrit dans le message de news:

j'obtien une mauvaise réponce (26,60... a la plac de 8.39)


Même en faisant un copier/coller de la formule que je t'ai donné en
remplaçant
A5 par A2 ??
Allons y.....

En B2 de ton fichier :
=INDEX(PointMillaire;EQUIV(PETITE.VALEUR(ABS(STXT(A2;5;6)-STXT(Longitude_Latitud
e;5;6));1);ABS(STXT(A2;5;6)-STXT(Longitude_Latitude;5;6));0))
Validation matricielle (par ctrl+maj+entrée)
Le nom "Longitude_Latitude" (F3:Fxxx) doit être évidemment défini !

En C2 de ton fichier (et avec noms définis) :
=INDEX(EndroitSubd;EQUIV(B2;PointMillaire;0))

AV





Avatar
Daniel
Bonsoir AV

Beaucoup mieux sur une distance de 40 mille que deux secteur qui me donne
des erreurs.

je vous renvoie des exemple des erreur obtenues !!!
http://cjoint.com/?fDe1fDvdYh

Merci beaucoup

"Daniel" a écrit dans le message de news:
%
Bonsoir AV
Samedi je vais sur la route et je vais faire des test.
je vous en reparle.
Merci

"AV" a écrit dans le message de news:

j'obtien une mauvaise réponce (26,60... a la plac de 8.39)


Même en faisant un copier/coller de la formule que je t'ai donné en
remplaçant
A5 par A2 ??
Allons y.....

En B2 de ton fichier :
=INDEX(PointMillaire;EQUIV(PETITE.VALEUR(ABS(STXT(A2;5;6)-STXT(Longitude_Latitud
e;5;6));1);ABS(STXT(A2;5;6)-STXT(Longitude_Latitude;5;6));0))
Validation matricielle (par ctrl+maj+entrée)
Le nom "Longitude_Latitude" (F3:Fxxx) doit être évidemment défini !

En C2 de ton fichier (et avec noms définis) :
=INDEX(EndroitSubd;EQUIV(B2;PointMillaire;0))

AV









Avatar
AV
Regarde là :
http://cjoint.com/?fDhzN3i5fY

PS : il eut été plus simple de séparer Long. et Lat. en 2 champs distincts mais
bon...puisque c'est fait...
AV
1 2