Excel-Calcul sous condition

Résolu/Fermé
LD1 Messages postés 56 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 septembre 2011 - Modifié par LD1 le 28/06/2011 à 19:29
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 29 juin 2011 à 13:11
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 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
28 juin 2011 à 23:38
Bonsoir,

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

eric
1
LD1 Messages postés 56 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 septembre 2011
29 juin 2011 à 08:37
Bonjour,

ça fonctionne merci beaucoup !

Cordialement,
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
29 juin 2011 à 00:26
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 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
29 juin 2011 à 00:30
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
29 juin 2011 à 07:16
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 jeudi 2 juin 2011 Statut Membre Dernière intervention 1 septembre 2011
29 juin 2011 à 08:39
Bonjour,

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

Merci beaucoup en tout cas !
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
29 juin 2011 à 13:11
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 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 1 426
28 juin 2011 à 22:23
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 jeudi 2 juin 2011 Statut Membre Dernière intervention 1 septembre 2011
28 juin 2011 à 22:37
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