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;".";"")

6 réponses

1 2
Avatar
Daniel
Bonjour AV
Cela fonctionne mieux avec deuxième groupe (I5:M8)
Cela ne fonctionne pas tous a fait bien avec le premier groupes
Ci vous regarder les exemple (a I2:M4) il y a seulement 1 uniter dans
la donner GPS de différente .
sur la carte géographique il y a en réaliter que 10 pieds de différence.

Je croix qu'on devrait fair plusieur trie :
1: en coupant les deux dernier chiffre de Long & Lat
N45 33.857 W73 25.665 = (N45 33.8 W73 25.6)
2: avec la liste obtenu refaire un trie en coupant que les deux dernier
chiffre
3:avec la liste obtenu refaire un trie en coupant que le dernier chiffre.
Penser vous que cela est possible ???!!

Ps: si cela ne peut se faire avec des formule
j'ai un VBA qui s'exécute tous les 10 seconde
pour extraire ma donné GPS.
Je pourait l'incorporer dedans.

Merci

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

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




Avatar
AV
Le problème est que j'ai du mal à comprendre ta logique :
Si, dans le champ "LongLat", la recherche se fait prioritairement sur la
Longitude (type xx.xxx) et si, en cas d'égalité sur ce critère, on prend
secondement en compte la Latitude (type xx.xxx) pour trouver la correspondance
dans un autre des champs de la base de données, la solution que je t'ai
transmise est bonne.
Avec, par exemple, une valeur de "N45 33.855 W73 25.665" la valeur à renvoyer
pour le champ "PMil" est de 5.14 et non 5.25 comme tu sembles devoir l'attendre
!
Si tel n'est pas le cas, la logique shadock du truc m'échapperait totalement !

Principe général de calcul adopté appliqué à l'exemple "N45 33.855 W73 25.665"
en B1 :
On extrait la partie 33.855 que l'on * par 1000 pour en faire un entier
(SUBSTITUE(STXT(B1;2;9);" ";"")*1000) --> 33855
auquel on va additionner la partie 25.665 que l'on / par 10000
(SUBSTITUE(STXT(B1;13;9);" ";"")/10000) --> 0.25665
pour constituer, in fine, la valeur numérique décimale 33855.25665
Cette manip est faite sur chacun des éléments du champs pour constituer une
matrice de valeurs num sur laquelle se fait la recherche.

AV
Avatar
Daniel
Rebonjour AV
Le problème ces qu'il n'y a pas de priorité, les deux doive etre aussi près
que possible de la location rechercer.
Avec un VBA cela pourait t'il se faire mieux??

Pour extraire les donné GPS j'ai un VBA qui s'exécute tous les 10 seconde .

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

Le problème est que j'ai du mal à comprendre ta logique :
Si, dans le champ "LongLat", la recherche se fait prioritairement sur la
Longitude (type xx.xxx) et si, en cas d'égalité sur ce critère, on prend
secondement en compte la Latitude (type xx.xxx) pour trouver la
correspondance
dans un autre des champs de la base de données, la solution que je t'ai
transmise est bonne.
Avec, par exemple, une valeur de "N45 33.855 W73 25.665" la valeur à
renvoyer
pour le champ "PMil" est de 5.14 et non 5.25 comme tu sembles devoir
l'attendre
!
Si tel n'est pas le cas, la logique shadock du truc m'échapperait
totalement !

Principe général de calcul adopté appliqué à l'exemple "N45 33.855 W73
25.665"
en B1 :
On extrait la partie 33.855 que l'on * par 1000 pour en faire un entier
(SUBSTITUE(STXT(B1;2;9);" ";"")*1000) --> 33855
auquel on va additionner la partie 25.665 que l'on / par 10000
(SUBSTITUE(STXT(B1;13;9);" ";"")/10000) --> 0.25665
pour constituer, in fine, la valeur numérique décimale 33855.25665
Cette manip est faite sur chacun des éléments du champs pour constituer
une
matrice de valeurs num sur laquelle se fait la recherche.

AV




Avatar
AV
Le problème ces qu'il n'y a pas de priorité, les deux doive etre aussi près
que possible de la location rechercer.


S'il n'y a pas de priorité, il n'y a pas de question donc pas de problème donc
pas de réponse !

Avec un VBA cela pourait t'il se faire mieux??


Ca ne change strictement rien à à l'incohérence du truc et donc à l'absence de
"problématique" !

AV

Avatar
Daniel
Bonjour AV
Dans le fichier Test2 , si en B1 ont inscrie
en B1 (recherche) référence obtenu (milles)
N45 33.856 W73 25.665 = 5.25 (N45 33.856 W73 25.659)
N45 33.855 W73 25.665 = 5.14 (N45 33.855 W73 25.523)
N45 33.857 W73 25.665 = 5.35 (N45 33.857 W73 25.790)
sur une carte géographique
entre les trois point chercher il n'y a que 9 pieds mais 25pieds de 5.25
très acceptable
entre les point obtenu il y a 530 pieds il manque de présition

Que faire??
Merci beaucoup

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

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




Avatar
Daniel
Bonsoir AV

J'ai enlever le dernier chiffre et cela répond mieux.
8 a la place de 9 dans votre formule.
cela ma enlever seulement 40 pieds de précision ,Bien acceptable.

=INDEX(PMil;EQUIV(PETITE.VALEUR(ABS(((SUBSTITUE(STXT(B1;2;8);"
";"")*1000)+(SUBSTITUE(STXT(B1;13;8);"
";"")/10000))-((SUBSTITUE(STXT(LongLat;2;8);"
";"")*1000)+(SUBSTITUE(STXT(LongLat;13;8);"
";"")/10000)));1);ABS(((SUBSTITUE(STXT(B1;2;8);"
";"")*1000)+(SUBSTITUE(STXT(B1;13;8);"
";"")/10000))-((SUBSTITUE(STXT(LongLat;2;8);"
";"")*1000)+(SUBSTITUE(STXT(LongLat;13;8);" ";"")/10000)));0))

Merci

"Daniel" a écrit dans le message de news:
uv2hB%
Rebonjour AV
Le problème ces qu'il n'y a pas de priorité, les deux doive etre aussi
près que possible de la location rechercer.
Avec un VBA cela pourait t'il se faire mieux??

Pour extraire les donné GPS j'ai un VBA qui s'exécute tous les 10 seconde
.

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

Le problème est que j'ai du mal à comprendre ta logique :
Si, dans le champ "LongLat", la recherche se fait prioritairement sur la
Longitude (type xx.xxx) et si, en cas d'égalité sur ce critère, on prend
secondement en compte la Latitude (type xx.xxx) pour trouver la
correspondance
dans un autre des champs de la base de données, la solution que je t'ai
transmise est bonne.
Avec, par exemple, une valeur de "N45 33.855 W73 25.665" la valeur à
renvoyer
pour le champ "PMil" est de 5.14 et non 5.25 comme tu sembles devoir
l'attendre
!
Si tel n'est pas le cas, la logique shadock du truc m'échapperait
totalement !

Principe général de calcul adopté appliqué à l'exemple "N45 33.855 W73
25.665"
en B1 :
On extrait la partie 33.855 que l'on * par 1000 pour en faire un entier
(SUBSTITUE(STXT(B1;2;9);" ";"")*1000) --> 33855
auquel on va additionner la partie 25.665 que l'on / par 10000
(SUBSTITUE(STXT(B1;13;9);" ";"")/10000) --> 0.25665
pour constituer, in fine, la valeur numérique décimale 33855.25665
Cette manip est faite sur chacun des éléments du champs pour constituer
une
matrice de valeurs num sur laquelle se fait la recherche.

AV








1 2