ET/OU logiques

  • Initiateur de la discussion yvon51
  • Date de début
Y

yvon51

Guest
bonjour le forum,

je dois réaliser des tests logiques sur des horaires.

voici la formule (pas terminée mais qui fonctionne) contenue dans D2


= SI(ET(B2<$j$2;C2>$J$3);"1";"")

J2=11:00 et J3=14:00 (ce sont des limites horaires)

ce que j'aimerais faire étant donné qu'il existe aussi une plage horaire le soir (18:00 et 21:00) c'est la chose suivante:

si plage OK le midi alors 1
si plage OK le soir alors 1
si plages OK midi et soir alors 2

j'espère avoir été assez explicite.
au fait, je remercie les personnes qui m'ont déjà aidé, car la formule ci-dessus, je l'ai réussi grâce à eux car je l'ai réalisé à l'aide de ce que j'ai appris ici.

merci à toutes et à tous
yvon51
 
A

andré

Guest
Saluy yvon51,

Eh oui, c'est à nouveau le même !

Si je comprends bien tu as deux heures en B2 et C2
Tu as une première plage horaire en J2 et J3 (11:00 et 14:00)
Je suppose que tu en as une deuxième , par exemple en H2 et H3 (18:00 et 21:00)

D'après ta formule tu veux vérifier si tes deux heures en B2 et C2 tombent toutes deux dans ta plage horaire J2:J3 ou bien toutes deux dans celle en H2:H3.
Alors ta formule doit renvoyer 1.

Quant à ta dernière condition il est évident que tes deux heures ne peuvent pas tomber en même temps dans les deux plages horaires.
Donc J2 dans la première plage et J3 dans la deuxième ?

Voudrais-tu préciser ?

Ândré.
 
B

Bernard

Guest
Bonjour Yvon51

La formule s'allonge mais n'est guère plus difficile.
= SI(ET(ET(B2<$j$2;C2>$J$3);ET(D2<$K$2;E2>$K$3));2;SI(ET(B2<$j$2;C2>$J$3);1;SI(ET(D2<$K$2;E2>$K$3);1;"")))

Cordialement

Bernard
 
Y

yvon51

Guest
bonjour André et Bernard

si André, je peux avoir [départ à 09:30 et retour à 23:15] par exemple.

si les deux horaires midi et soir sont séparés (par exemple deux missions), alors 2 lignes d'écritures (puisque 2 missions différentes)

Bernard je vais essayer cela, je te remercie

merci
yvon51

ps: eh oui ! ici aussi c'est toujours le même. ah ah ah!
 
V

Valérie

Guest
Bonjour à tous,

Je viens juste émettre une idée, pourquoi ne pas additionner les résultats, si aucun des 2 : 0, si un des 2 : 1, sinon 2

avec les mêmes cellules que Bernard j'obtiens:

= SI(ET(B2<$j$2;C2>$J$3);1) + SI(ET(D2<$K$2;E2>$K$3);1)

@ bientôt
Valérie
 
V

Valérie

Guest
Merci Ândré pour le encouragements,

Si j'enlève les SI il fait effectivement de la logique pure mais j'obtiens des VRAI et des FAUX pas des nombres!! Donc on garde les SI mais on les additionne

@+ Valérie
 
Y

yvon51

Guest
bonjour à tous trois

dans la formule de Valérie, il convient d'avoir 4 cellules pour entrer les horaires.

dans mon prob, la personne est absente soit:

a) pendant la plage horaire du midi

b) pendant la plage horaire du soir

c) pendant une plage englobant les 2 plages ci-dessus

mais dans les trois cas, il n'y a que deux horaires
par expl: Départ 09:30 Retour 16:00
OU 17:30 22:30
OU 09:30 22:30

dans le cas où la personne s'absente d'une part de 09:30 à 16:00 puis à nouveau de 17:30 à 22:30, elle doit utiliser 2 lignes (car deux missions) et dans ce cas aussi il n'y a que deux horaires à chaque fois

merci
yvon
 
V

Valérie

Guest
Le principe est le même : comprend pas ce qui bloque

= SI(ET(B2<$j$2;C2>$J$3);1) + SI(ET(B2<$K$2;C2>$K$3);1)

Si tu arrives avant ta première plage et pars après t'as 1
Si tu arrives avant ta deuxième plage et pars après t'as 1
et l'addition te donne bien 2!!

On est bien d'accord il faut qu'il soit absent durant toute la période du midi et/ou toute la période du soir

@+
Valérie
 
A

andré

Guest
Salut à vous,

Petite précision : si une condition renvoie VRAI il suffit de la multiplier par 1 pour qu'elle renvoie 1.

Je n'ai pas essayé, mais sur base de ta formule, celle-ci devrait aussi convenir : =ET(B2<$J$2;C2>$J$3)*1+ET(B2<$K$2;C2>$K$3)*1

C'est intéressant à savoir, car c'est une façon de contourner la limite des 7 SI.

Ândré
 
Y

yvon51

Guest
alors, je viens de tester la formule de Valérie et c'est OK, aucun prob.

c'est parfait

donc André, dans ton exemple, tu supprime le conditionnel? et tu fais de l'arithmétique?


merci à Valérie et à André.
à plus tard

bonne soirée

yvon
 
A

andré

Guest
Resalut,

Petit exemple pour éviter les SI :

En A1 : 2
En B1 : 3

La formule traditionnelle : =SI(A1*B1=6;A1*B1;"") te renverras 6
Si tu modifies un des deux nombres en A1 ou B1, elle te renverras "".

La formule : =(A1*B1=6)*A1*B1 fait exactement la même chose, à l'exception de ce que le "" sera remplacé par un 0.

Cela ne marche que pour des nombres.
Tu ne sais pas éviter les SI dans la formule : =SI(A1*B1=6;"c'est bon","").
Bien que ... Monique y parviendrais peut-être.

Ândré.
 

Statistiques des forums

Discussions
312 492
Messages
2 088 930
Membres
103 984
dernier inscrit
maliko67