Journée comparable dans l'année précédente sur excel
jalal
-
Patrice33740 Messages postés 8931 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8931 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai besoin d'une fonction qui me renvoi la journée identique dans l'année précédente, par exemple: le 01/01/2013 est un mardi, donc je souhaite que excel me renvoi le 1er mardi du mois janvier 2012.
merci d'avance pour votre aide
j'ai besoin d'une fonction qui me renvoi la journée identique dans l'année précédente, par exemple: le 01/01/2013 est un mardi, donc je souhaite que excel me renvoi le 1er mardi du mois janvier 2012.
merci d'avance pour votre aide
A voir également:
- Journée comparable dans l'année précédente sur excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Si ou excel - Guide
10 réponses
Bonjour,
Une piste de travail :
Si date de cette année en A1
la formule 1
=JOURSEM(A1) donne le n° du jour de cette année
la formule 2
=JOURSEM(DATE(ANNEE(A1)-1;MOIS(A1);JOUR(A1))) donne le n° du jour de l'année précédente
Si la différence 1 - 2 est positive :
le jour recherché est donné par la formule 3
=DATE(ANNEE(A1)-1;MOIS(A1);JOUR(A1)) + cette différence
Si la différence est négative :
le jour recherché est donné par la formule 4
=DATE(ANNEE(A1)-1;MOIS(A1);JOUR(A1)) + cette différence + le résultat de la formule 2
A toi de placer ces formules dans différentes cellules ou de les réunir en une seule
A suivre ..;
Une piste de travail :
Si date de cette année en A1
la formule 1
=JOURSEM(A1) donne le n° du jour de cette année
la formule 2
=JOURSEM(DATE(ANNEE(A1)-1;MOIS(A1);JOUR(A1))) donne le n° du jour de l'année précédente
Si la différence 1 - 2 est positive :
le jour recherché est donné par la formule 3
=DATE(ANNEE(A1)-1;MOIS(A1);JOUR(A1)) + cette différence
Si la différence est négative :
le jour recherché est donné par la formule 4
=DATE(ANNEE(A1)-1;MOIS(A1);JOUR(A1)) + cette différence + le résultat de la formule 2
A toi de placer ces formules dans différentes cellules ou de les réunir en une seule
A suivre ..;
Bonjour
essayer cette formule,(pour une date en (C4) .je n'ai pas tout testé mais ce ne doit pas être loin
=DATE(ANNEE(C4)-1;MOIS(C4);JOUR(C4)+JOURSEM(C4)-JOURSEM(DATE(ANNEE(C4)-1;MOIS(C4);JOUR(C4))))
Note: si le jour correspondant "sort du mois cherché", la formule affiche le plus proche au mois suivant.
par exemple: C4=Jeudi 28 février 2°013, le résultat est Jeudi 1° mars 2012
crdlmnt
ne sommes nous pas seuls à comprendre ce que l'on explique?
essayer cette formule,(pour une date en (C4) .je n'ai pas tout testé mais ce ne doit pas être loin
=DATE(ANNEE(C4)-1;MOIS(C4);JOUR(C4)+JOURSEM(C4)-JOURSEM(DATE(ANNEE(C4)-1;MOIS(C4);JOUR(C4))))
Note: si le jour correspondant "sort du mois cherché", la formule affiche le plus proche au mois suivant.
par exemple: C4=Jeudi 28 février 2°013, le résultat est Jeudi 1° mars 2012
crdlmnt
ne sommes nous pas seuls à comprendre ce que l'on explique?
Bonjour à tous
Finalement en comparant ma solution avec celle de Vaucluse le problème est plus compliqué qu'il ne parait !
J'arrive à une solution qui semble mieux fonctionner, notamment pour le 04/03/13 (10° Lundi) et le 03/01/16 (1° dimanche) :
=SI(ENT(DATEDIF(DATE(ANNEE(A1);1;1);A1;"d")/7)=ENT(DATEDIF(DATE(ANNEE(A1)-1;1;1);A1-7*52;"d")/7);A1-7*52;A1-7*53)
Il reste un problème insoluble, celui du 53ème jour d'une d'année lorsque l'année précédente n'en comporte que 52, par exemple le jeudi 31/12/2015
Finalement en comparant ma solution avec celle de Vaucluse le problème est plus compliqué qu'il ne parait !
J'arrive à une solution qui semble mieux fonctionner, notamment pour le 04/03/13 (10° Lundi) et le 03/01/16 (1° dimanche) :
=SI(ENT(DATEDIF(DATE(ANNEE(A1);1;1);A1;"d")/7)=ENT(DATEDIF(DATE(ANNEE(A1)-1;1;1);A1-7*52;"d")/7);A1-7*52;A1-7*53)
Il reste un problème insoluble, celui du 53ème jour d'une d'année lorsque l'année précédente n'en comporte que 52, par exemple le jeudi 31/12/2015
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le demandeur pourrait peut être nous dire ce qui ne convient pas dans cet exemple, ,on y verrais plus clair, je pense: (mais il a un peu disparu?
https://www.cjoint.com/c/CAwk7zpWMDK
A+
ne sommes nous pas seuls à comprendre ce que l'on explique?
https://www.cjoint.com/c/CAwk7zpWMDK
A+
ne sommes nous pas seuls à comprendre ce que l'on explique?
C'est pas 2013 qui pose problème (sauf le 31/12/13 qui est le 53ème mardi alors que 2012 n'en comporte que 52)
Par contre le 05/01/14 qui est le premier dimanche correspond au 06/01/13 (et pas au 30/12/12)
Par contre le 05/01/14 qui est le premier dimanche correspond au 06/01/13 (et pas au 30/12/12)
Exact Patrice, oubli de ma, part,mais là je pense qu'il ne manque que le code de jour semaine qui dit que lundi est le, premier jour de la semaine.
JOURSEM(cell;2) au lieu de JOURSEM(Cell)
soit la formule complète corrigée:
=SI(C15="";"";DATE(ANNEE(C15)-1;MOIS(C15);JOUR(C15)+JOURSEM(C15;2)-JOURSEM(DATE(ANNEE(C15)-1;MOIS(C15);JOUR(C15));2)))
en rajoutant aux bons endroits les ;2 du code JOURSEM
A suivre
JOURSEM(cell;2) au lieu de JOURSEM(Cell)
soit la formule complète corrigée:
=SI(C15="";"";DATE(ANNEE(C15)-1;MOIS(C15);JOUR(C15)+JOURSEM(C15;2)-JOURSEM(DATE(ANNEE(C15)-1;MOIS(C15);JOUR(C15));2)))
en rajoutant aux bons endroits les ;2 du code JOURSEM
A suivre
@Vaucluse
C'est encore ça !
Le mardi 01/01/2013 doit correspondre au mardi 03 /01/2012 (et pas au mardi 27/12/2011)
Je ne pense pas que l'utilisation de JOURSEM permette de résoudre le problème, d'où l'utilisation de ENT(no.série/7) qui permet de compter le nombre de lu, ma, ,..;.
Amicalement
Patrice
C'est encore ça !
Le mardi 01/01/2013 doit correspondre au mardi 03 /01/2012 (et pas au mardi 27/12/2011)
Je ne pense pas que l'utilisation de JOURSEM permette de résoudre le problème, d'où l'utilisation de ENT(no.série/7) qui permet de compter le nombre de lu, ma, ,..;.
Amicalement
Patrice
Suis têtu... suis peut être pas arrivé,, mais j'irais jusqu'au bout :-))) na!
https://www.cjoint.com/c/CAwoTu5IKtk
https://www.cjoint.com/c/CAwoTu5IKtk
Finalement, pour compléter ma dernière formule et prendre en compte tous les cas (y compris l'absence de correspondance pour certains 53èmes jours) :
=SI(ANNEE(A1)=ANNEE(SI(ENT(DATEDIF(DATE(ANNEE(A1);1;1);A1;"d")/7)=ENT(DATEDIF(DATE(ANNEE(A1)-1;1;1);A1-7*52;"d")/7);A1-7*52;A1-7*53))+1;SI(ENT(DATEDIF(DATE(ANNEE(A1);1;1);A1;"d")/7)=ENT(DATEDIF(DATE(ANNEE(A1)-1;1;1);A1-7*52;"d")/7);A1-7*52;A1-7*53);"Pas de correspondance")
=SI(ANNEE(A1)=ANNEE(SI(ENT(DATEDIF(DATE(ANNEE(A1);1;1);A1;"d")/7)=ENT(DATEDIF(DATE(ANNEE(A1)-1;1;1);A1-7*52;"d")/7);A1-7*52;A1-7*53))+1;SI(ENT(DATEDIF(DATE(ANNEE(A1);1;1);A1;"d")/7)=ENT(DATEDIF(DATE(ANNEE(A1)-1;1;1);A1-7*52;"d")/7);A1-7*52;A1-7*53);"Pas de correspondance")
Bonjour
pour moi, j'arrête là en attendant que le demandeur veuille bien venir nous dire ce qu'il veut. Je pense que ma proposition donne le jour correspondant au plus près de celui cherché.
Mais on peut faire dire ce que l'on veut lorsque par exemple on tombe sur 5 dimanches en janvier 202 alors qu'il y en a 4 en 2013.
Quel est le premier, quel est le dernier??????
Dans ma, proposition le 1/1/12 se rapporte à fin décembre 2013. Il faudra de toutes façons en caser un sur un autre mois!
crdlmnt
pour moi, j'arrête là en attendant que le demandeur veuille bien venir nous dire ce qu'il veut. Je pense que ma proposition donne le jour correspondant au plus près de celui cherché.
Mais on peut faire dire ce que l'on veut lorsque par exemple on tombe sur 5 dimanches en janvier 202 alors qu'il y en a 4 en 2013.
Quel est le premier, quel est le dernier??????
Dans ma, proposition le 1/1/12 se rapporte à fin décembre 2013. Il faudra de toutes façons en caser un sur un autre mois!
crdlmnt
Bonjour à tous,
J'arrive après la bataille mais je m'étonne que personne n'est proposé une solution simplissime :
Cela donne exactement le même résultat que les formules de Vaucluse, pas de celles de Patrice avec le bon numéro de semaine mais est-ce judicieux d'obtenir :
dimanche 9 décembre 2012 pour le dimanche 15 décembre 2013 ?
J'arrive après la bataille mais je m'étonne que personne n'est proposé une solution simplissime :
=A1-364
Cela donne exactement le même résultat que les formules de Vaucluse, pas de celles de Patrice avec le bon numéro de semaine mais est-ce judicieux d'obtenir :
dimanche 9 décembre 2012 pour le dimanche 15 décembre 2013 ?
Bj tous
Gb a bien raison,bravo tellement c'est tout bête, et Eric aussi mais ajuster les années bissextiles demande certaines précautions
Toutefois, pour la période qui semble raisonnable, on peut penser à
=A1-SI(ET(MOIS(A1-364)<=3;MOD(ANNEE(A1)-1;4)<>0);364;365)
Mais ceci ne sera pas valable depuis 1900 pour toutes les années divisibles par 100 dont le quotient année/100 n'est pas divisible par 4
(exemple 2100 2200 2300 ne sont pas bissextiles alors que 2400 l'est)
Mais d'ici là, le demandeur aura peut être donné signe de vie
crdlmnt
Gb a bien raison,bravo tellement c'est tout bête, et Eric aussi mais ajuster les années bissextiles demande certaines précautions
Toutefois, pour la période qui semble raisonnable, on peut penser à
=A1-SI(ET(MOIS(A1-364)<=3;MOD(ANNEE(A1)-1;4)<>0);364;365)
Mais ceci ne sera pas valable depuis 1900 pour toutes les années divisibles par 100 dont le quotient année/100 n'est pas divisible par 4
(exemple 2100 2200 2300 ne sont pas bissextiles alors que 2400 l'est)
Mais d'ici là, le demandeur aura peut être donné signe de vie
crdlmnt
Bonjour gbinforme,
C'était la toute première réponse de ce fil (A1-7*52 = A1-364) ;-) !!! (#1)
Elle répond exactement à l'exemple fourni, mais pas forcément à la question «une fonction qui me renvoi la journée identique dans l'année précédente» pour laquelle nous avons tous fait des suppositions.
Il faudrait que jalal fournisse plus de précisions sur ce qu'il entend par identique !!!
@Eric : année bissextile ou pas, il y a toujours 7 jours par semaine, donc si on recule de 52 semaines on tombe forcement sur le même jour.
Patrice
C'était la toute première réponse de ce fil (A1-7*52 = A1-364) ;-) !!! (#1)
Elle répond exactement à l'exemple fourni, mais pas forcément à la question «une fonction qui me renvoi la journée identique dans l'année précédente» pour laquelle nous avons tous fait des suppositions.
Il faudrait que jalal fournisse plus de précisions sur ce qu'il entend par identique !!!
@Eric : année bissextile ou pas, il y a toujours 7 jours par semaine, donc si on recule de 52 semaines on tombe forcement sur le même jour.
Patrice
@Vaucluse: pas simple les années bissextiles avec Excel !
Par exemple il trouve un mercredi 29 février 1900 qui n'existe pas et donc la veille est un mardi
au lieu d'un mercredi. Heureusement que c'est du passé car de ce fait, avec Excel, tous les noms de jour entre le 0 janvier 1900 et le 28 février 1900 sont faux !!!
Calc : 1 - Excel : 0
Par exemple il trouve un mercredi 29 février 1900 qui n'existe pas et donc la veille est un mardi
au lieu d'un mercredi. Heureusement que c'est du passé car de ce fait, avec Excel, tous les noms de jour entre le 0 janvier 1900 et le 28 février 1900 sont faux !!!
Calc : 1 - Excel : 0
Salut le fil,
Je découvre cette discussion pertinente qui est un déchainement de passion des intervenants, heureusement parce que le demandeur est pris dans la neige.
je viens ajouter un peu d'eau au moulin avec une formule que j'ai testé, mais à l'approbation des experts formulistes que vous êtes nous en sortirons peut être quelque chose
=TEXTE(DATE(ANNEE(A1)-1;MOIS(A1);1);"m/aaa")-MOD(TEXTE(DATE(ANNEE(A1)-1;MOIS(A1);1);"m/aaa")-JOURSEM(A1);7)+7
Je découvre cette discussion pertinente qui est un déchainement de passion des intervenants, heureusement parce que le demandeur est pris dans la neige.
je viens ajouter un peu d'eau au moulin avec une formule que j'ai testé, mais à l'approbation des experts formulistes que vous êtes nous en sortirons peut être quelque chose
=TEXTE(DATE(ANNEE(A1)-1;MOIS(A1);1);"m/aaa")-MOD(TEXTE(DATE(ANNEE(A1)-1;MOIS(A1);1);"m/aaa")-JOURSEM(A1);7)+7
Bonjour à tous,
Et pourquoi ne pas utiliser simplement la fonction DateAdd
DateAdd(interval, number, date)
A voir dans l'aide Excel
Bonne suite
Et pourquoi ne pas utiliser simplement la fonction DateAdd
DateAdd(interval, number, date)
A voir dans l'aide Excel
Bonne suite
Bonjour,
Et si justement;
Dans la fonction
"Interval" = année, ou trimestre, ou mois, ou semaine, ou jour
"Number" = le nombre d' "interval" choisi
et "date" = la date de base du calcul.
Càd qu'en 3 expression on a la réponse; par exemple
DateAdd("yyyy",1, "27/1/2012") = 27/1/2013 = aujourd'hui
DateAdd("yyyy",2, "27/1/2012") = 27/1/2014 = l'année prochaine
C'est si simple.
Et si justement;
Dans la fonction
"Interval" = année, ou trimestre, ou mois, ou semaine, ou jour
"Number" = le nombre d' "interval" choisi
et "date" = la date de base du calcul.
Càd qu'en 3 expression on a la réponse; par exemple
DateAdd("yyyy",1, "27/1/2012") = 27/1/2013 = aujourd'hui
DateAdd("yyyy",2, "27/1/2012") = 27/1/2014 = l'année prochaine
C'est si simple.
=SI(NO.SEMAINE(A6)=NO.SEMAINE(MOIS.DECALER(A6;-12));A6-7*52;A6-7*53)
Ainsi le 01/01/13 était un mardi, et 364 jours avant, le 03/01/12 était bien le 1er mardi de l'année.
Mais si tu pars du 06/01/2013, qui est un dimanche, ta formule nous aménera au 8 janvier 2012, alors que le premier dimanche était le premier janvier !
Il faut donc la compléter : =SI(JOUR(A1-7*52)>7;A1-7*53;A1-7*52)
Amicalement.
Il y a plusieurs façons d'interpréter la demande de Jalal :
=A1-7*52 permet de trouver le jour correspondant au 1er janvier précédent et les jours suivants
=SI(JOUR(A1-7*52)>7;A1-7*53;A1-7*52) pour trouver le jour correspondant dans la 1ère semaine de l'année précédente (1° lu, 1° ma, 1° me, ..). Ne fonctionne pas bien pour les semaines suivantes.
=SI(NO.SEMAINE(A6)=NO.SEMAINE(MOIS.DECALER(A6;-12));A6-7*52;A6-7*53) pour trouver le Xème jour correspondant de l'année précédente (par exemple le 3ème mardi).
Amicalement
Patrice
Je dois préciser que mon message #4 que j'ai fini de rédiger à 02:10 était en cours d'élaboration depuis 01:55 environ, et répondait à ta proposition #1 de 01:06 ;
quand je l'ai validée, ton message #3 de 02:08 n'était pas encore disponible à l'affichage ...
Amicalement.
merci beaucoup, j'ai essayé ta formule et elle marche à merveille.
amicalement.
Jalal