Combiner la fonction ET avec SI et N° semaine

Bonjour,

J'ai construit un tableau d'avancement pour mon travail , dans ce tableau j'ai des colonnes qui me renvois le N° de semaine prévue en fonction d'une date , ensuite je test ce N° de semaine et en fonction du résultat il planifie par ce N° de semaine

Au début j'avais une formule qui marchait bien

=SI(($G94=I$7)*ET(ANNEE($E94)=2011);"RD";"")

G94 Contient le N° de semaine de la date E94

E94 Contient la date saisie

I7 Contient un N° de semaine sur mon planning

2011 est important car mon planning var jusqu'en 2015 et les N° de semaines sont identiques chaque années

Les $ sont là pour figer soit les lignes soit les colonnes quand je recopie mes formules

Donc cette formule m'affiche un RD dans un planning quand G94=I7 et si l'année de E94=2011

Mais maintenant les choses se complique

je rajoute une autre colonne de N° semaine qui correspond a un N° de semaine réalisée et je dois combiner 2 résultats de la même façon que la formule précédente

A savoir si= semaine prévue alors ==> RDp et si= semaine réalisé alors ==> RDr

Donc j'ai fais la formule ci dessous mais cela ne marche pas il me renvois #Valeur

=SI(ET(($G94=I$7)*ET(ANNEE($E94)=2011));"RDp";"")*(ET(($H94=I$7)*ET(ANNEE($F94)=2011);"RDr";""))

Je met une extraction d'un fichier en exemple si besoin

Qui pourrais m'aider ?

Je pense avoir trouve réponse a mon problème

=SI(($G114=I$7)*ET(ANNEE($E114)=2011);"RDp";SI(($H114=I$7)*ET(ANNEE($F114)=2011);"RDr";""))

Par contre question pratique quand la RDp et la RDr on le même N° il n'affichera que RDp ce n'est pas trop gênant pour l'instant

C'est que après je pense comptabilisé les RDp et RDr

De plus ma formule qui convertit mes dates en N° de semaines ISO est la suivante

=SI(E118="";"";NO.SEMAINE(E118;2)-(JOURSEM(DATE(ANNEE(E118);1;4);2)<4)*1)

mais chaque 1er janvier affiche 0 et les 31/12 semaines 53 pourquoi?

auriez des suggestion ou remarque

Merci

ronan3577 a écrit :

De plus ma formule qui convertit mes dates en N° de semaines ISO est la suivante

=SI(E118="";"";NO.SEMAINE(E118;2)-(JOURSEM(DATE(ANNEE(E118);1;4);2)<4)*1)

mais chaque 1er janvier affiche 0 et les 31/12 semaines 53 pourquoi?

Merci

Personne N'aurais une idée

Bonjour

Si tu joignais un fichier tu aurais plus de chance d'avoir des réponses.

Amicalement

Nad

CI JOINT UN EXTRAIT DE MON FICHIER

56avancement.xlsx (25.96 Ko)

Re

Utilise cette formule qui correspond à la norme ISO 8601

La semaine n°1 d'une année est la première semaine de l'année civile dont le jeudi appartient à la dite année civile

=SI(E5="";"";ENT(MOD(ENT((E5-2)/7)+0.6;52+5/28))+1)

Amicalement

Nad

Nad a écrit :

Re

La semaine n°1 d'une année est la première semaine de l'année civile dont le jeudi appartient à la dite année civile

=SI(E5="";"";ENT(MOD(ENT((E5-2)/7)+0.6;52+5/28))+1)

Amicalement

Nad

Bonjour,

Merci pour ta réponse Nad

Mais quand je tapes cette formule il me dis qu'il y'a une erreur , si c'était un manque de parenthèse il me l'aurais corriger mais la je ne vois pas ou

Ah j'ai trouvé en fait a c'est 0.6 qui était écrit avec un point au lieu d'une virgule

Mais maintenant un autre problème se pose a moi

si j'indique dans mon tableau 01/01/2012 il va me donner semaine 52 ce qui est vrai mais pour la S52 de 2010

pour 31/12/2012 il indique semaine N° 1 mais pour l'année 2013

je ne conteste pas la formule mais après je planifie par des formules RCp, RCp ou RDp , RDr et dans ces cas là j'ai un an de décalage

pour planifier je fais un SI

= SI(($H5=I$3)*ET(ANNEE($F5)=2011);"RCr"; SI(($G5=I$3)*ET(ANNEE($E5)=2011);"RCp";""))

Je reprends l'année d'une cellule qui contient une date que je compare a 2011, 2012

un N° de semaine contient il une année ?

Alors soit je reste comme avant soit je modifie mes formules après et la je coince...

C'est que j'ai peur que mes formules après deviennent trop compliquer pour les personnes qui s'en serviront après

merci

Bonjour

Cela fait 2 fois en 1/2 heure que tu modifies ton message.

C'est bon? C'est la version définitive ou on attend encore un peu?

Cordialement

désolé c'est bon

je testait en même temps

Bonjour

Ok

un N° de semaine contient il une année ?

La fonction

=ENT(MOD(ENT((E5-2)/7)+0,6;52+5/28))+1)

tient compte de l'année et donne le No de semaine de l'année (ici de la date en E5)

Je suppose que cela induit une nouvelle question?

Cordialement

Oui , encore désolé de ces modifications de messages

la formule des N° de semaines est correcte et marche bien

Mon problème c'est que après j'ai une grille par année et N° de semaine et je reporte du texte en fonction de ce N° de semaine

Mais dans les cas des 1er janvier et 31 décembre j’obtiens un N° de semaine qui peux correspondre a l'année avant ou après et je n'arrive pas a le placer correctement

(il est vrai que ces dates ne sont pas souvent travaillé mais j'aimerais bien trouver une solution)

Merc

Bonjour

Je vois que tu as un tableau de 2 années dans lesquels le mois de janvier commence toujours par la semaine 1.

Ton soucis est-il:

  • de commencer par 52 ou 53 si c'est le cas? ou de démarrer sur la semaine 1
  • de créer un tableau dans lequel les mois et les Nos de semaine sont correctements affichés? (Correspondent)
Cordialement

Bonjour,

en fait il s'agit d'un extrait je vais jusqu’à 2015 voire plus.

Quand j'ai construit mon tableau j'ai commencer toutes mes année par semaine 1 jusqu’à 52

ensuite avec un calendrier j'ai attribuer le N° de semaine au mois contenant le plus de jour (exemple S09 2012 en février)

mon soucis est de commencer janvier par S01 et finir par décembre S52

en regardant le calendrier j'ai effectivement vu qu'on avait une semaine 53 en 2015 mais pas vus pour les autres années

Avec l'ancienne formule

=SI(E118="";"";NO.SEMAINE(E118;2)-(JOURSEM(DATE(ANNEE(E118);1;4);2)<4)*1)

J'avais des semaines 0 au 1er janvier et 53 au 31 décembre

Bonjour

Comme tu as pu le constater, les résultats de la fonction NO.SEMAINE s'écartent parfois de la semaine ISO.

De plus, F5 contient la date 31/12/2011 et le résultat part donc semaine 52 de 2011. Ce qui est normal.

Si tu mets 31/12/2010, ce résultat disparaît puisque ton tableau ne prévoit pas l'année 2010.

A part cela, rien ne change sur ton tableau

Cordialement

48avancement.zip (27.65 Ko)

WOW

je regarderais ça lundi ou peut ce week-end car là je ne suis plus au travail

merci

Bonjour,

Merci Amadéus pour ton aide

Je regardes ce que tu as fait et je vois que que tu as rajouter

ANNEE($F5)=2011 par 
ANNEE($F5)=ANNEE(MAX($I$2:I$2))

Ce que j'avais essayer au début mais sans la fonction Max que je ne connaissait pas

cela marche pour certains 31 décembre qui se positionne bien mais pas pour les 1er janvier

En effet le 1er janvier 2011 renvois semaine 52 mais de l'année 2010 ce qui est normale , mais il se place sur S52 de 2011

idem pour 2012

Autre cas un 31/12/2012 tombe semaine 01 de 2013 et il se place en 01 de 2012

je n'arrive pas a comprendre pourquoi

Faut 'il arranger la matrice de MAX ?

Merci pour ton aide


Autre point que j'ai oublier de dire que Excel m'indique une erreur

"La formule de cette cellule fait référence a une plage ayant des plages supplémentaires adjacents "

Est que c'est lier a mon problème ?

Bonjour

Je suis parti du raisonnement suivant:

1) La semaine correspondant à E9 (01/01/2011) commence le:

=(7*(ENT(MOD(ENT(($E9-2)/7)+0,6;52+5/28))+1)+DATE(ANNEE($E9);1;3)-JOURSEM(DATE(ANNEE($E9);1;3))-5)

qui renvoie 26/12/2011, soit un écart en jours avec la date en E9 de 359 jours

on en déduit facilement que dès que cet écart est supérieur à une certaine valeur, on est dans l'erreur.

En prenant 7 (arbitrairement car 7 jours = 1 semaine complète) on peut décider que dès que l'écart dépasse 7, il faut corriger l'année en décalant de -1

La même méthode appliquée pour E10 montre cette fois-ci un écart de -364 jours et là on décalera l'année dans l'autre sens.

2) Donc, il faut inclure dans les formules du tableau I6:DP12 une formule corrigeant ces écarts, du style:

Si l'écart entre la date en colonne E et celle du début de la semaine inscrite en colonne G est supérieur à 7, on décale de -1 an, s'il est inférieur à -7, on décale de °1an

Cette partie de formule de correction calculant l'écart serait en $I10

=SI((7*(ENT(MOD(ENT(($E10-2)/7)+0,6;52+5/28))+1)+DATE(ANNEE($E10);1;3)-JOURSEM(DATE(ANNEE($E10);1;3))-5)-$E10>7;1;SI($E10-(7*(ENT(MOD(ENT(($E10-2)/7)+0,6;52+5/28))+1)+DATE(ANNEE($E10);1;3)-JOURSEM(DATE(ANNEE($E10);1;3))-5)>7;-1;0))

3) Pour ne pas trimballer une formule encore plus à rallonge sur tout le tableau, il est intéressant de nommer cette dernière partie

En ayant sélectionné $I10, j'ai nommé Ecart la formule précédente

4) Suite de quoi, la formule en I5 est

= SI(ET($H5=I$3;ANNEE($F5)=ANNEE(MAX($I$2:I$2)));"RCr"; SI(ET($G5=I$3;ANNEE($E5)-Ecart=ANNEE(MAX($I$2:I$2)));"RCp";""))

et même correction pour les autres lignes.

Chez moi (Excel XP 2003) çela fonctionne correctement. Fais quelques tests de ton côté.

Cordialement

31avancement.zip (28.76 Ko)

Bonjour,

Alors la je dois te dire bravo , car je n'aurais pas été capable de faire ça

je comprends ton raisonnement mais certains point sont pour moi difficiles a comprendre car je ne maitrise pas Excel comme toi

J'ai compris que tu calculais un écart pour savoir ou on se positionner l'année -1 ; 0 ou 1

je vois que dans la formule tu inclus écart pour RDp mais pas pour RDr , il faut que je le rajouter ?

Je ne savait pas que l'on pouvait nommer une formule ça ma l'air bien utile

Mais comment Excel gère t'il cela car quand tu le fais ta formule fait référence a la cellule E10 et tu l'applique a tout le tableau donc d'autre cellule. c'est automatique , il s'adapte a la cellule tous seul?

Si j'ai bien compris pour tout mes tableau il faut que je nomme une formule Ecart avec cela

=SI((7*(ENT(MOD(ENT(($E10-2)/7)+0,6;52+5/28))+1)+DATE(ANNEE($E10);1;3)-JOURSEM(DATE(ANNEE($E10);1;3))-5)-$E10>7;1;SI($E10-(7*(ENT(MOD(ENT(($E10-2)/7)+0,6;52+5/28))+1)+DATE(ANNEE($E10);1;3)-JOURSEM(DATE(ANNEE($E10);1;3))-5)>7;-1;0))

Les tableaux que je vais créé comporteront plus de 200 lignes , et des dates jusqu'en 2015

Je ne suis pas obliger de laisser la partie 2010 ( je n'ai rien a cette date ni avant mi 2011 ?

Enfin a quoi sert la dernière ligne que tu inclus avec ANNEE MAX , c'était pour l'analyse ou doit elle rester pour la formule ?

Merci


Enfin pour l'erreur ,

je crois dans Excel 2010 il y'a la vérification automatique des erreurs et il me signale que

"La formule de cette cellule fait référence a une plage ayant des plages supplémentaires adjacents "

mais que ce n'est pas vraiment une erreur mais une suggestion

Bonjour

Tu peux supprimer tout ce qui n'est pas ton tableau.

Compte tenu de la difficulté prévisible du maniement de la formule nommée, je pense préférable de la scinder.

J'ai modifié les explications

Cordialement

36avancement-v2.zip (54.70 Ko)
Rechercher des sujets similaires à "combiner fonction semaine"