Excel-Calcul sous condition [Résolu/Fermé]

Signaler
Messages postés
56
Date d'inscription
jeudi 2 juin 2011
Statut
Membre
Dernière intervention
1 septembre 2011
-
Messages postés
53160
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 janvier 2021
-
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 !


3 réponses

Messages postés
23819
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 janvier 2021
6 599
Bonsoir,

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

eric
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
56
Date d'inscription
jeudi 2 juin 2011
Statut
Membre
Dernière intervention
1 septembre 2011

Bonjour,

ça fonctionne merci beaucoup !

Cordialement,
Messages postés
53160
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 janvier 2021
15 154
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
53160
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 janvier 2021
15 154
Messages postés
23819
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 janvier 2021
6 599
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
Messages postés
56
Date d'inscription
jeudi 2 juin 2011
Statut
Membre
Dernière intervention
1 septembre 2011

Bonjour,

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

Merci beaucoup en tout cas !
Messages postés
53160
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 janvier 2021
15 154
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.
Messages postés
9831
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
28 janvier 2021
1 112
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 ?
Messages postés
56
Date d'inscription
jeudi 2 juin 2011
Statut
Membre
Dernière intervention
1 septembre 2011

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,