si(ou avec un si(et

V

Victor

Guest
Bonsoir le forum,

Est-il possible d'imbriquer deux formules si l'une avec un ou et la seconde avec un et, car il m'est impossible de trouver la bonne formule, cerla m'indique toujours une erreur. Merci à vous. Victor
 

Pièces jointes

  • Indem.zip
    7.7 KB · Affichages: 23
A

andré

Guest
Salut,

Il manque une paranthèse derrière le "6" du troisième SI.

=SI(G12=0;" ";
SI(OU(NB.SI($V$8:$V$16;A12)>0;JOURSEM(A12;2)>6);RECHERCHEV(G12;'P:\66.32\[Indemnitées .xls]Base calcul'!$AE$1:$AF$49;2;FAUX);
SI(ET(STXT(C12;9;5)=24;NB.SI(V8:V16;A13)>0;JOURSEM(A13;2)>6);RECHERCHEV(G12;'P:\66.32\[Indemnitées .xls]Base calcul'!$AE$1:$AF$49;2;FAUX);0)))

Ândré.
 
V

Victor

Guest
Salut André,

En effet il manquait une parenthèse, mais cela ne fonctionne pas encore,
formule in cohérente !!

Cela provient -il du = 24 ?
Sachant que la cellule est 15:30 - 24:00
et je voudrait lui faire comprendre que si (stxt(c12;9;5)=24
il doit faire la recherche et à mon avis c'est là que sa cloche, mais ne trouve pas la solution, a moins que le problème soit ailleurs.

Merci à toi Victor
 
M

Monique

Guest
Bonjour,

Il y avait une histoire de parenthèse.
Sinon, STXT(C12;9;5) renvoie 24:00 sous forme de texte.
On peut écrire :
STXT(C12;9;2)="24"
STXT(C12;9;5)="24:00"
1*STXT(C12;9;2)=24

En I12 :
=SI(G12=0;" ";SI(OU(NB.SI($V$8:$V$16;A12)>0;JOURSEM(A12;2)>6);RECHERCHEV(G12;Table;2;FAUX);SI(ET(STXT(C12;9;2)="24";NB.SI(V8:V16;A13)>0;JOURSEM(A13;2)>6);RECHERCHEV(G12;Table;2;FAUX);0)))
Ou bien, en I13 :
=SI(G13=0;" ";SI(OU(NB.SI($V$8:$V$16;A13)>0;JOURSEM(A13;2)>6);RECHERCHEV(G13;Table;2;FAUX);SI(ET(1*STXT(C13;9;2)=24;NB.SI(V9:V17;A14)>0;JOURSEM(A14;2)>6);RECHERCHEV(G13;Table;2;FAUX);0)))
* * * "Table" fait référence à l'autre classeur
 
V

Victor

Guest
Salut Monique,

merci encore pour le "24"
Mais je n'arrive encore pas à trouver la solution, comme tu peux le voir voici la formule,
'=SI(G15=0;" ";SI(ET(STXT(C15;9;2)="24";NB.SI($V$8:$V$16;A16)>0;JOURSEM(A16;2)>6);RECHERCHEV(G15;'P:\66.32\[Indemnitées .xls]Base calcul'!$AE$1:$AF$49;2;FAUX);SI(OU(NB.SI($V$8:$V$16;A15)>0;JOURSEM(A15;2)>6);RECHERCHEV(G15;'P:\66.32\[Indemnitées .xls]Base calcul'!$AE$1:$AF$49;2;FAUX);SI(ET(STXT(C15;9;2)<>"24";NB.SI($V$8:$V$16;A16)<>0;JOURSEM(A16;2)<>6);" ";SI(ET(STXT(C15;9;2)="24";NB.SI($V$8:$V$16;A16)<>0;JOURSEM(A16;2)<>6);" ")))))

Ma question y a-t-il un ordre pour mettre les SI ??

car si mon Service se termine à 24:00 un dimanche, il ne doit rien avoir dans la case indemnités du dimanche car après minuit le dimanche c'est un jour normal.

Encore merci à toi Monique
 
M

Monique

Guest
Re,

En fin de compte, sauf erreur, ça peut se résumer à ça, pour la ligne 4 :
=SI(ET(STXT(C4;9;2)="24";OU(NB.SI($V$8:$V$16;A5)>0;JOURSEM(A5)=1));RECHERCHEV(G4;Table;2;0);" ")

Que l'on soit samedi ou dimanche ou mercredi n'a aucune importance.
Ce qui compte, c'est le lendemain.
La seule et unique condition en réunit 3, (quand même) :
1 ) Et trouver "24" en 9è position
2 ) Et l'une de ces 2 conditions à respecter :
2 a ) ou bien le lendemain est dimanche
2 b ) ou bien le lendemain est férié

En donnant un nom à la plage des fériés, c'est plus facile à déchiffrer :
=SI(ET(STXT(C4;9;2)="24";OU(NB.SI(Feries;A5)>0;JOURSEM(A5)=1));RECHERCHEV(G4;Table;2;0);" ")

JourSem(A5;2)>6 ne vaut pas trop le coup
JourSem(A5)=1 est l'équivalent en plus court
 
V

Victor

Guest
Re Monique,

un grand merci à toi et à ton ingéniosité, pourquoi faire compliqué quand on peut faire simple ( mais faut-il encore le savoir )

Je veux aller encore plus loin dans mon tableau, mais là il faut à mon avis en faire un autre et utiliser la fonction recherche, je m'explique :

Si je fini mon service à 00:40 ai lieu de 23:30, dans la colonne D je dois mettre 70 ( minutes de prolongation )

il doit avoir en e5 30
et en e6 40

en plus des formules d'avant avec dimanche et les si OU

Encore merci à toi Monique, et bonne soirée. Victor
 
M

Monique

Guest
Bonjour,

C'est bien ce à quoi j'ai pensé.
Un horaire qui se termine pile à 24:00, c'est pratique, si on fait du supplément, tout le supplément est fait le lendemain.
Et celui qui est supposé terminer à 19:00, il n'a jamais un gros pépin qui le fait travailler 5 ou 6 heures de plus ?

En B1 et ça évite d'avoir une table de correspondance :
=NOMPROPRE(TEXTE(DATE(ANNEE(A4);MOIS(A4)+1;1);"mmmm"))

Ou bien s'il y a plus de 2 mois par feuille :
=NOMPROPRE(TEXTE(DATE(ANNEE(MAX(A4:A100));MOIS(MAX(A4:A100));1);"mmmm"))

En C1 et ça évite de taper à la main :
="Du "&JOUR(A4)&" au "&JOUR(MAX(A4:A100))&" inclus"

En C5 et ça évite la table de correspondance minutes ---> heures
=SI(ET(DROITE(C4;5)="24:00";OU(NB.SI(Feries;A5)>0;JOURSEM(A5)=1));G4/60;" ")

Pour obtenir l'heure de fin (ça peut servir) :
Format standard, donne 12,50 pour 12:30
=DROITE(C4;5)*24

Format heure hh:mm
=DROITE(C4;5)*1
 
M

Monique

Guest
Re,

Pour avoir le nb d'heures faites un dimanche ou un férié si on fait du rab la veille au soir :
pour la ligne 4 :
=SI(ET(DROITE(C4;5)*24+G4/60>24;OU(NB.SI(Feries;A5)>0;JOURSEM(A5)=1));DROITE(C4;5)*24+G4/60-24;" ")
 

Discussions similaires

Réponses
5
Affichages
187

Statistiques des forums

Discussions
312 242
Messages
2 086 536
Membres
103 244
dernier inscrit
lavitzdecreu