Formule d'exclusion

F

Farid

Guest
Bonjour à Tous,

Je souhaiterais modifier la formule du tableau ci-joint pour que ne soient pas pris en compte les jours fériés (Exemple de la colonne 'V' où des valeurs apparaissent bien que le 15 août soit férié).

J'ai essayé tout ce que je connaissais (c'est à dire pas grand chôse je l'avoue) sans réussite.

Merci de Votre Aide et Bon Long Week-End à Tous Soyez prudent sur les routes

A bientôt
Farid [file name=Agenda.zip size=35146]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Agenda.zip[/file]
 

Pièces jointes

  • Agenda.zip
    10.6 KB · Affichages: 56
  • Agenda.zip
    10.6 KB · Affichages: 55
  • Agenda.zip
    10.6 KB · Affichages: 57
F

Farid

Guest
Bonjour Chris,

Les samedis sont comptabilisés et les dimanches ne figurent même pas dans le tableau.

Mais en fait la seule chôse à modifier c'est que je souhaiterais qu'il ne renvoie aucune valeur si le jour en question figure dans le tableau des jours fériés (plage nommée 'Fer').

Merci de ton Aide
Farid
 

chris

XLDnaute Barbatruc
Re
ta question reste un peu imprécise: tu veux que la date disparaisse de la ligne 1 ou tu veux seulement que les lignes en dessous de cette date soient vides ?

Si c'est la 2ème alternative la formule est
=SI(ET(V$1>=$E2;V$1<=$F2;ESTNA(EQUIV(V$1;Fer;0)));$B2/$C2/$I2/$H2*1,2;'')

Message édité par: chris, à: 12/08/2005 15:09
 

Gael

XLDnaute Barbatruc
Bonjour Farid, Bonjour Chris,

Si j'ai bien compris il faut que la suite de dates en S1... ne comprenne pas les jours fériés.

Je te propose la formule suivante à mettre en S1 sous forme matricielle (avec Ctrl Maj Entrée) puis recopier vers la droite:

=PETITE.VALEUR(SI(ESTNA(EQUIV(LIGNE(INDIRECT(R1&':'&(R1+10)));Fer;0));LIGNE(INDIRECT(R1&':'&(R1+10))));2)

Le principe est de créer une liste de dates en excluant les jours fériés ou fermés, puis de prendre la plus petite Kième valeur de cette liste, K étant égal à 2 pour avoir le jour suivant.

(LIGNE(INDIRECT(R1&':'&(R1+10)) donne une matrice des numéros de série des dates depuis la date de départ jusquà 10 jours de plus (pour se donner une marge, ces 10 jours comprennent le nombre de jours fériés éventuels ce chiffre peut être modifié sans problème).

Si ESTNA(EQUIV...);Fer;0) teste si les séries correspondent à une date non travaillée. Si c'est le cas, Equiv est correct et on ne met rien dans la matrice (en fait Equiv va mettre FAUX), si ce n'est pas le cas (ESTNA) on garde le numéro de série.

Petite.valeur(......);2 donne alors la date cherchée sans les jours non travaillés.

Pour les dimanches, soit tu mets ;3 à la place de 2 pour prendre la 3ème plus petite valeur soit tu testes si le jour de semaine est un dimanche, soit tu ajoutes les dimanches dans la liste Fer (ce qui est le plus simple).

@+

Gael
 

Samantha

XLDnaute Accro
Bonjour le fil ;)))


:S ben zont été plus rapides que moâ....

enfin pour pas avoir fait ça pour rien voici la solution que je propose :

En j1 tu mets ta date de début de période et en j2 tu colles : =SI((RECHERCHE(J1+1;Fer)=(J1+1));J1+2;SI((TEXTE(JOURSEM(J1+1);'jjj')<>'Dim');J1+1;J1+2))

Ainsi tu as toutes les dates de ton calendrier sauf les dimanches et jours fériés.

En résumé j'ai eu le même raisonnement que Gaël mais on a pas pris le même chemin pour arriver (normal moi et les matricielles
:eek: mais promis ça fait partie de mes résolutions pour 2006 dans mon plan quinquénal.... on verra pour 2008 pour le VBA lol)


Samantha
 

Samantha

XLDnaute Accro
Re ;)

Ben tant que j'y étais et parce, Farid, j'ai trouvé ta façon de mettre en forme sympa et que ça va bien me servir pour mes plannings d'absences : voici quoi coller dans la cellule b1 si on ne conserve que la colonne A pour rentrer les informations (des noms dans mon cas) :
=SI((TEXTE(JOURSEM(Fériés!C3);'jjj')<>'Dim');Fériés!C3;Fériés!C3+1)

Ainsi y'a plus qu'à entrer en C3 dans la feuille Fériés l'année concernée et on en a pour 255 jours ouvrés.... dites pourriez pas les faire un ch'tit peu plus larges vos feuilles m'sieur bilou ??



Samantha
 

chris

XLDnaute Barbatruc
Bonjour Samantha, Farid, Gael

Avec ce super team on avance bien !!

A Farid : ravie que tu aies une solution.

A Samantha : tu te casses la tête car JOURSEM(date;2)=7 suffit pour identifier un dimanche.

J'avais un peu renoncé à la solution de masquer la date dans la ligne 1 car si le jour férié tombe un lundi ta formule (comme les miennes :sick:) ne marche pas.

A Gael : la tienne marche bien mais il faut que je la digère !!!

@+
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Ça vaut peut-être le coup d'allonger la formule de Gaël pour ne pas avoir les dimanches.

En S1 et à valider par ctrl, maj et entrée :
=MIN(SI(NB.SI(Fer;LIGNE(INDIRECT(R1+1&':'&R1+10)))=0;SI(JOURSEM(LIGNE(INDIRECT(R1+1&':'&R1+10)))>1;LIGNE(INDIRECT(R1+1&':'&R1+ 10)))))

Elle est un tout petit peu raccourcie (?) par Min qui est plus court que PetiteValeur et NbSi, plus court que Equiv
 
F

Farid

Guest
Monique, Gaël, Sam' (scuse pour la familiarité) et Chris,

Je vous remercie pour votre Aide qui, une fois n'est pas coutume, m'a été précieuse.
Si un jour je pouvais me passez de vous, au fond ça me rendrait triste... Je trouve ça plus sympa, fédérateur et convivial de demander de l'aide ...Et d'être sauvé. :)

Que la Force soit avec Vous !!!
Farid
 

Samantha

XLDnaute Accro
Re le fil ;))

Pas de problème Farid Sam' ça me va aussi lol

Chis : j'avais bien pensé à un truc dans le genre JOURSEM(date;2)=7 ;)
mais si la date est une opération type j1+1, ben ya une erreur et j'ai pas voulu me casser la tête à comprendre pourquoi : ce que je voulais c'était pouvoir recopier ma formule sur toute la ligne avec un clic/glisse et que ça roule partout........ déjà que je suis arrivée après la bataille :evil:

Allez la débauche dans 10 mn : bon week end à tous



Samantha
 

Samantha

XLDnaute Accro
re encore ;)

et tiens une petite modif de la queue de formule pour éliminer les samedi aussi lol
=SI((RECHERCHE(B1+1;Fer)=(B1+1));B1+2;SI(ET((TEXTE(JOURSEM(B1+1);'jjj')<>'Dim');(TEXTE(JOURSEM(B1+1);'jjj')<>'Sam'));B1+1;B1+3))

Bonne route


Samantha
 

Gael

XLDnaute Barbatruc
Rebonjour à tous,

Effectivement, monique, en partant du lendemain R1+1, on prend toujours la plus petite valeur, donc Min est plus indiqué.

Et pour les dimanches... Super.

Chris, j'ai pioché le truc de ligne(indirect...) dans un exemple sur un forum et le mieux pour bien comprendre les résultats est de décomposer la formule et de regarder les résultats intermédiaires dans des matrices. C'est très cartésien mais efficace.

Ligne(indirect...) permet d'une façon générale de créer une matrice de nombres qui se suivent à partir d'un chiffre contenu dans une cellule.

L'avantage de ces formules est aussi de tenir compte d'une suite éventuelle de plusieurs jours fériés ou non travaillés ce qui est difficile à gérer avec une formule plus classique.

@+

Gael
 

Discussions similaires

Statistiques des forums

Discussions
312 356
Messages
2 087 564
Membres
103 594
dernier inscrit
edm