Formule "SI" à plusieurs conditions

Fermé
charlou6 Messages postés 3 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 16 mai 2010 - Modifié par charlou6 le 11/05/2010 à 19:05
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 - 16 mai 2010 à 14:01
Bonjour,
J'ai un problème avec ma formule "SI". C'est un peu complexe à expliquer mais je vais tout de même tenter le coup!

Le tableau est basée sur une semaine de travail, incluant temps supplémentaire, heures en banque et heures maladie.

Dans plusieurs cellules, il y a déjà des formules "SI" et "ET". À date, tout fonctionne très bien. Par contre, à 2 endroits, je dois créer une formule conditionnelle.
Voici les critères:
Si L16>0 ET (J13+K13)>0 alors L13=(J13+K13)-(J15 * 1.5) ET L15=(J15*1.5)-(J13+K13)
Si L16=0 ET (J13+K13)>0 alors L13=(J13+K13)-J15 ET L15=J15-(J13+K13)
Si L16=0 ET (J13+K13)=0 alors L13=0 ET L15=J15

NB: Aucune donnée ne doit être négative.

Quelqu'un peut m'aider??
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 mai 2010 à 19:01
Bonjour,

Pourquoi écrire en gras? c'est agressif...
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 823
Modifié par dobo69 le 11/05/2010 à 20:29
bonjour,

traduction excel de ce qui est écrit en données :
pour la cellule L13 :
=Si(et(L16>0;(J13+K13)>0);(J13+K13)-(J15*1.5);Si(et(L16=0;(J13+K13)>0);(J13+K13)-J15;Si(et(L16=0;(J13+K13)=0);0;)))

pour le cellule L15
=Si(et(L16>0;(J13+K13)>0);(J15*1.5)-(J13+K13);Si(et(L16=0;(J13+K13)>0);J15-(J13+K13);Si(et(L16=0;(J13+K13)=0);J15;)))

à vérifier malgré tout...
Si vous n'avez besoin de rien, demandez-moi.
0
charlou6 Messages postés 3 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 16 mai 2010
11 mai 2010 à 22:10
Bonjour!
Votre formule semble fonctionne à première vue, par contre selon les données inscrites, les résultats sont négatifs, et vu qu'on parle d'un nombre d'heures travaillées, ou d'absence, le résultat ne peut pas être négatif.

Je tiens à vous dire qu'avec votre formule, j'ai appris que je pouvais insérer des conditionnels dans la "valeur si vraie"; "valeur si faux".
Merci beaucoup!
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 823
11 mai 2010 à 22:26
En fait ce n'est pas 'ma formule'...C'est simplement la traduction excel de ce que vous avez écris en question.
Si vous devez traiter des conditions négatives alors il faut compléter la petite liste que vous avez commencée et ensuite la traduire de la même façon. Mais attention, la manipulation des 'SI' imbriqués est à faire avec précaution sous peine de trouver le contraire du résultat souhaité...
et cela passe comme vous l'avez fait par une écriture claire des conditions à remplir. Il s'agit d'abord de logique avant d'être de la rédaction de formules
0
Bonsoir,

Si pb résultat négatif..utiliser abs(?).

Cela renvoie la valeur absolue (toujours positive) !!!

A+
0
charlou6 Messages postés 3 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 16 mai 2010
16 mai 2010 à 13:50
En fait, si le résultat devient négatif, il faut donc qu'il soit égal à "0".
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 823
16 mai 2010 à 14:01
Pour renvoyer ce résultat, l'écriture Excel est la suivante :
=SI('Formule'<0;0;'Formule), à mettre en forme avec les formules que vous avez.
Cependant, avant de faire cela, et compte tenu que votre calcul d'heure ne doit pas renvoyer d'heures négatives, il faut se poser la question de l'exactitude des tests de la formule initiale.. Ce sont ces tests qui doivent certainement faire en sorte que le résultat est toujours positif. Encore une fois, ce n'est certainement pas un pb de formule excel mais de logique d'écriture des conditions.
0