Deux formules excel se contrarient


#1

Bonjour,
Je suis en train de préparer un formulaire de demande de congé et j’ai un souci avec la formule “Nombre de jours pris” en H47 .

J’avais d’abord intégré que si la date de fin = la date de début alors 1 (=si(G42-D42;1) et ça marche mais
si la date de fin et la date de début sont vides le total est encore 1.

Alors j’ai rajouté =SI(G42-D42=0;0). Séparément ça fonctionne aussi.

Si je mets ces deux formules dans une même formule, le total est 1.

Quelqu’un pourrait me dire pourquoi SVP ?
Merci

Demande de congés 190305b.xlsm (32,1 Ko)


#2

Bonjour Ikhoor,
En ajoutant: =SI(ET(D42=0;G42=0);0; en début de formule, cela doit fonctionner.
car dans le cas où les cellules D42 et G42 sont vide, le résultat affiché sera de 0,00
la formule devient:
=SI(ET(D42=0;G42=0);0;SI(G42=D42;1;SI(A40=VRAI;G42-D42-0,5;SI(A44=VRAI;G42-D42–0,5;SI(I40=VRAI;G42-D42–0,5;SI(I44=VRAI;G42-D42–0,5;NB.JOURS.OUVRES(D42;G42;Liste!$H$2:$H$7)))))))
Cordialement,
Lucky32


#3

Bonjour Lucky32,

Ca fonctionne super bien. Merci.
Cependant, j’ai un autre souci avec les contraintes de 1/2 journées.
Si je sélectionne une contrainte du matin ou de l’après-midi du premier jour ou du dernier jour, la formule fonctionne.
Comme je dois prévoir tous les cas de figure, si je dis que je prends l’après-midi du premier jour(donc je travaille le matin) jusqu’à la matinée du dernier jour (je travaille l’après-midi), les 1/2 journées ne sont pas calculées.

=SI(ET(D42=0;G42=0);0;SI(G42=D42;1;SI(ET(G42=D42;A40=VRAI);G42-D42-0,5;SI(ET(G42=D42;A44=VRAI);G42-D42-0,5;SI(ET(G42=D42;I40=VRAI);G42-D42-0,5;SI(ET(G42=D42;I44=VRAI);G42-D42-0,5;SI(ET(A40=VRAI;I40=VRAI);G42-D42-1;SI(G42=D42;G42-D42±1;SI(A40=VRAI;G42-D42-1,5;SI(A44=VRAI;G42-D42-1,5;SI(H40=VRAI;G42-D42-1,5;SI(H44=VRAI;G42-D42-1,5;NB.JOURS.OUVRES(D42;G42;Liste!$H$2:$H$7)))))))))))))

Est-ce que j’ai trop contraintes dans une seule formule ou y a-t-il une erreur ?
Merci


#4

Bonjour,
D’après ce que j’ai vu, je pense que si je coche une case le matin ou l’après midi, c’est que je travaille, donc dans ce cas la formule serait (à compléter si nécessaire):
=SI(ET(D42=0;G42=0);0;SI(ET(A40=VRAI;I44=VRAI);G42-D42;SI(ET(A44=VRAI;I40=VRAI);G42-D42;SI(ET(A40=VRAI;I40=VRAI);G42-D42;SI(ET(A44=VRAI;I44=VRAI);G42-D42;SI(OU(A40=VRAI;A44=VRAI);G42-D42+0,5;SI(OU(I40=VRAI;I44=VRAI);G42-D42+0,5;G42-D42+1)))))))
rajouter bien entendu les “JOURS.OUVRE” si besoin, en prévoyant les cases cochées ou non dans la logique.
Cordialement
Luc


#5

Bonjour Luc,
La formule fonctionne mais je n’ai pas compris ou je dois intégrer les “JOURS.OUVRE”.
Si je les rajoute à la fin excel me dit que j’ai trop de contraintes pour cette fonction.
Faut-il le mettre après chaque condition ?
Merci


fermé automatiquement #6

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.