Excel-Calcul sous condition

Résolu
LD1 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -  
Raymond PENTIER Messages postés 58991 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je rencontre un problème pour calculer des distances dans un espace particulier. En fait, j'ai enregistré les positions en x du curseur d'un sujet qui se déplace dans un environnement en 1-D de 200 pixels. Le problème, c'est que cet espace se boucle sur lui-même : si le sujet franchit le pixel 199, il réapparaît au pixel 0 et inversement.

Je souhaite calculer la distance parcourue en fonction du temps, en tenant compte de la direction du franchissement. Par exemple, il faudrait que je compte 1 pixel si le sujet passe de 199 à 0, et inversement que je compte -1 pixel s'il passe de 0 à 199.

J'ai réussi à obtenir la distance absolue (sans la direction) avec cette formule :
=SI(ABS(B3-B2)<150;ABS(B3-B2);ABS(ABS(B3-B2)-200))

Mais là je sèche pour faire la même chose en tenant compte des directions... Quelqu'un a-t-il une idée ?

Je joins un fichier d'exemple :
http://www.cijoint.fr/cjlink.php?file=cj201106/cijTdlFV5M.xlsx

Merci d'avance si vous avez une idée !


A voir également:

3 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonsoir,

Ca peut-être :
=B3-B2+(((B3-B2)<-150)-((B3-B2)>150))*200

eric
1
LD1 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

ça fonctionne merci beaucoup !

Cordialement,
0
Raymond PENTIER Messages postés 58991 Date d'inscription   Statut Contributeur Dernière intervention   17 357
 
Salut.
En mettant en C3 la formule
=B3-B2
et en D3 la formule
=SI(ABS(C3)>150;C3-SIGNE(C3)*200;C3)
cela devrait marcher (formules à recopier vers le bas).
1
Raymond PENTIER Messages postés 58991 Date d'inscription   Statut Contributeur Dernière intervention   17 357
 
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Salut raymond,

Ce qui donne la même chose que moi au post 3, sauf que je n'ai pas de colonne intermédiaire... ;-)
eric
0
LD1 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

ça fonctionne également comme ça, avec effectivement une colonne intermédiaire.

Merci beaucoup en tout cas !
0
Raymond PENTIER Messages postés 58991 Date d'inscription   Statut Contributeur Dernière intervention   17 357
 
Bien sûr, Eric, j'en étais conscient.

Simplement j'ai eu peur que LD1 n'aie du mal à comprendre la syntaxe de ta formule, et j'ai cherché à lui proposer quelque chose d'aussi proche que possible de ce qu'il avait conçu lui-même, tout en lui montrant comment optimiser sa démarche grâce à la fonction SIGNE, que l'on utilise trop rarement ...

Très cordialement.
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Au passage, et que fait-on si le sujet passe de 199 à 170 ou l'inverse ?
Qu'elle est la raison du critère [<150] et de la constante [-200] dans votre formule ?
0
LD1 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

si le sujet passe de 199 à 170, c'est qu'il aura parcouru -21 pixels en un pas de temps. Si c'est l'inverse, c'est qu'il aura parcouru +21 pixels (c'est très rapide, mais c'est encore possible).

Pour ce qui est de [<150], il s'agit d'un critère arbitraire qui permet de ne pas tenir compte des passages du sujet au-delà des bords de l'espace pour obtenir la distance réelle parcourue. Dans tous les autres cas, un "saut" de + de 150 pixels en un seul pas de temps est physiquement impossible.
La constante [-200] correspond à la taille de l'espace, que je retranche dans le cas où le test logique est faux pour obtenir la distance réelle parcourue sans tenir compte du franchissement de la limite de l'espace (dont le sujet n'a pas conscience).

Mais la formule que j'ai proposé n'est peut-être pas très judicieuse, il s'agit plutôt d'un petit bricolage dans le but d'obtenir le nombre de pixels parcourus quel que soit la position au temps t et t+1. De plus, elle me fait perdre de l'information, et notamment la direction du déplacement, que je ne parviens pas à obtenir, d'où ma question.

J'espère que je suis pas trop confus dans mes explications... N'hésitez pas à me demander plus de précisions.

Cordialement,
0