Fonction recherchev et condition

Bonjour à tous,

Dans mon tableau des absences, j'ai la formule suivante :

=SI(R$6="s";"C";SI(R$6="f";"C";SI(R$6="d";"C";SI(R$6="vs";"vs";SI(ET(R$5>=$D7;R$5<=$E7;NB.SI(Code_Abs;$F7)>0);$F7;"")&SI(ET(R$5>=$I7;R$5<=$J7;NB.SI(Code_Abs;$K7)>0);$K7;"")&SI(ET(R$5>=$N7;R$5<=$O7;NB.SI(Code_Abs;$P7)>0);$P7;"")))))

J'aimerai ajouter une condition. Si l'employé 1 est mensuel : le formule si dessus est valable.

Mais si l'employeur 1 est horaire : il faudrait déduire les mercredi

Dans la feuille gestion des absences j'ai les employés et la colonne à coté M ou H (si mensuel ou horaire)

J'ai tenté une formule avec RECHERCHEV mais sans succès.

Pour plus de clarté je vous joint le fichier

Merci d'avance

26absences.zip (149.57 Ko)

Bonjour

=SI(R$6="s";"C";SI(R$6="f";"C";SI(R$6="d";"C";SI(R$6="vs";"vs";SI(ET(R$5>=$D7;R$5<=$E7;NB.SI(Code_Abs;$F7)>0);$F7;"")&SI(ET(R$5>=$I7;R$5<=$J7;NB.SI(Code_Abs;$K7)>0);$K7;"")&SI(ET(R$5>=$N7;R$5<=$O7;NB.SI(Code_Abs;$P7)>0);$P7;"")))))

J'aimerai ajouter une condition. Si l'employé 1 est mensuel : le formule si dessus est valable.

Mais si l'employeur 1 est horaire : il faudrait déduire les mercredi

Dans la feuille gestion des absences j'ai les employés et la colonne à coté M ou H (si mensuel ou horaire)

J'ai tenté une formule avec RECHERCHEV mais sans succès.

En changeant les formules Nommées Employé et statut pour que les champs soient de longueurs correctes et correspondants aux données.

Employé

=DECALER('Gestion Absences'!$C$6;;;NBVAL('Gestion Absences'!$C$6:$C$500))

statut

=DECALER('Gestion Absences'!$C$6:$D$6;;;NBVAL('Gestion Absences'!Employé))

J'ai également diminué le nombre de SI en ajoutant un OU

Ce qui donne en R7

=SI($B7=0;"";SI(ET(RECHERCHEV($B7;statut;2;0)="H";R$6="Me");"";SI(OU(R$6="s";R$6="f";R$6="d");"C";SI(R$6="vs";"vs";SI(ET(R$5>=$D7;R$5<=$E7;NB.SI(Code_Abs;$F7)>0);$F7;"")&SI(ET(R$5>=$I7;R$5<=$J7;NB.SI(Code_Abs;$K7)>0);$K7;"")&SI(ET(R$5>=$N7;R$5<=$O7;NB.SI(Code_Abs;$P7)>0);$P7;"")))))

Cordialement

Merci Amadéus,

Nickel comme toujours.

Mon autre problème c'est que je ne parviens pas à modifié la formule qui calcule le nombre de jours d'absence.

Dans le cas qui m'intéresse, si le salarié est horaire (il ne travaille pas le mercredi) ne pas déduire les mercredi de l'absence.

Ma formule est la suivante :

=SI(OU(C7="1/2 congé matin";C7="1/2 RTT matin";C7="1/2 congé am";C7="1/2 RTT am");NB.JOURS.OUVRES(D7;E7;vacfer)-(0,5*NB.JOURS.OUVRES(D7;E7;vacfer));NB.JOURS.OUVRES(D7;E7;vacfer))

Merci encore infiniment

Bonjour

=SI(C7=0;"";SI(OU(C7="1/2 congé matin";C7="1/2 RTT matin";C7="1/2 congé am";C7="1/2 RTT am");NB.JOURS.OUVRES(D7;E7;vacfer)-(0,5*NB.JOURS.OUVRES(D7;E7;vacfer));NB.JOURS.OUVRES(D7;E7;vacfer))-(SI(RECHERCHEV($B7;statut;2;0)="H";SOMMEPROD((JOURSEM(LIGNE(INDIRECT($D7&":"&$E7)))=4)*1);0)))

Cordialement

Merci Amadeus,

J'ai juste un petit problème : lorsque l'absence se prolonge de part et d'autre des vacances scolaires, il me déduit les mercredi des vacances. En fait il me déduit 2 fois le mercredi (1 fois en temps que mercredi et 1 fois en temps que jour de vacance scolaire).

Aurais-tu une solution ? Sachant que je ne peux pas retirer les mercredi du calendrier des vacances scolaire (car j'en ai besoin pour le personnel mensuel).

Encore énorme merci

Bonjour

Teste avec

=SI(C7=0;"";SI(OU(C7="1/2 congé matin";C7="1/2 RTT matin";C7="1/2 congé am";C7="1/2 RTT am");NB.JOURS.OUVRES(D7;E7;vacfer)-(0,5*NB.JOURS.OUVRES(D7;E7;vacfer));NB.JOURS.OUVRES(D7;E7;vacfer))-(SI(RECHERCHEV($B7;statut;2;0)="H";SOMMEPROD((JOURSEM(LIGNE(INDIRECT(D7&":"&E7)))=4)*(NB.SI(vacfer;LIGNE(INDIRECT(D7&":"&E7)))=0));0)))

Cordialement

Bonjour Amadeus et merci,

La formule fonctionne très bien, mais j'ai oublié de préciser que si l'employé est mensuel (Statut=M), outre les mercredi, il ne faut pas déduire non plus les vacances scolaires.

Merci à toi

En fait j'ai modifié la formule comme cela :

=SI(C7=0;"";SI(OU(C7="1/2 congé matin";C7="1/2 RTT matin";C7="1/2 congé am";C7="1/2 RTT am");NB.JOURS.OUVRES(D7;E7;jfdate)-(0,5*NB.JOURS.OUVRES(D7;E7;jfdate));NB.JOURS.OUVRES(D7;E7;jfdate))-(SI(RECHERCHEV($B7;statut;2;0)="H";SOMMEPROD((JOURSEM(LIGNE(INDIRECT(D7&":"&E7)))=4)*(NB.SI(vacfer;LIGNE(INDIRECT(D7&":"&E7)))=0));0)))

S'il s'agit d'une personne mensuel "M" ça fonctionne bien, mais si c'est une personne horaire "H" ça ne marche pas car j'aimerai que pour cette dernière, il me déduise aussi les vacances scolaires (puisque les "H" ne travaillent pas pendant les vacances scolaires)

Merci d'avance

Rechercher des sujets similaires à "fonction recherchev condition"