XL 2010 Nb.si sur plage variable

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

yves57

XLDnaute Nouveau
Bonjour à toutes et à tous,
j'aimerai connaître le nombre de jours ( lundi, mardi...) écoulés sur une plage dont le début est toujours le même mais ou la fin est variable.
je sais que c'est pas très utile et que je suis un éternel optimiste mais on ne se refait pas
merci, à bientôt
 

Pièces jointes

Bonjour @yves57🙂, @Cousinhub😉,

Mettre la formule suivante en C3 puis la recopier vers le bas. Noter que la colonne B n'intervient pas dans la formule. Seules les années 1984, 2012 et 2040 ont le même nombre pour chaque jour de la semaine (4j, 8j et 12j).
=SOMMEPROD(((ANNEE(A$3:A$199)>=ANNEE($A$3))*(ANNEE(A$3:A$199)<=$E$1)) * (JOURSEM(A$3:A$199;2)=LIGNES(A$1:A1) )) & " " & STXT("lun.mar.mer.jeu.ven.sam.dim.";1+4*(LIGNES(A$1:A1)-1);4)
 

Pièces jointes

Dernière édition:
Bonjour à toutes et tous,

Je ne comprend pas pourquoi tu as 15/12/1957 en A3. Vu que l'on est en octobre ça devrait être 26/10/1957 comme 1ère date.

Sinon as-tu vraiment besoin de cette plage de dates (colonne A) car c'est calculable directement (colonne B inutile aussi) ?
 
Bonjour @yves57🙂, @Cousinhub😉,

Mettre la formule suivante en C3 puis la recopier vers le bas. Noter que la colonne B n'intervient pas dans la formule. Seules les années 1984, 2012 et 2040 ont le même nombre pour chaque jour de la semaine (4j, 8j et 12j).
=SOMMEPROD(((ANNEE(A$3:A$199)>=ANNEE($A$3))*(ANNEE(A$3:A$199)<=$E$1)) * (JOURSEM(A$3:A$199;2)=LIGNES(A$1:A1) )) & " " & STXT("lun.mar.mer.jeu.ven.sam.dim.";1+4*(LIGNES(A$1:A1)-1);4)
Mapomme , c'est du grand art mais je suis à des années lumière de ce niveau sur excel
merci pour votre participation
 
Bonjour à toutes et tous,

Je ne comprend pas pourquoi tu as 15/12/1957 en A3. Vu que l'on est en octobre ça devrait être 26/10/1957 comme 1ère date.

Sinon as-tu vraiment besoin de cette plage de dates (colonne A) car c'est calculable directement (colonne B inutile aussi) ?
Hecatonchire ; le calcul se fait sur l'année en cours et non sur la date précise . c'était déjà compliqué pour moi, preuve en est que j'ai fait appel au forum
 
Ok A3 est la date de naissance et on décale de 100 ans


Formule pour avoir le nombre de Lundi (le 1 en rouge et n'utilise que A3)
VB:
=SOMME((JOURSEM(MOIS.DECALER(A3;(LIGNE(INDIRECT("1:100"))-1)*12);2)=1)*1)

=SOMME((JOURSEM(MOIS.DECALER($A$3;(LIGNE(INDIRECT("1:100"))-1)*12);2)=1)*1)

Attention : Valider la formule avec la combinaison CTRL+MAJ+ENTRER et non un simple ENTRER

Fichier avec le jour variable via une cellule
 

Pièces jointes

Ok A3 est la date de naissance et on décale de 100 ans


Formule pour avoir le nombre de Lundi (le 1 en rouge et n'utilise que A3)
VB:
=SOMME((JOURSEM(MOIS.DECALER(A3;(LIGNE(INDIRECT("1:100"))-1)*12);2)=1)*1)

=SOMME((JOURSEM(MOIS.DECALER($A$3;(LIGNE(INDIRECT("1:100"))-1)*12);2)=1)*1)

Attention : Valider la formule avec la combinaison CTRL+MAJ+ENTRER et non un simple ENTRER

Fichier avec le jour variable via une cellule
Ok A3 est la date de naissance et on décale de 100 ans


Formule pour avoir le nombre de Lundi (le 1 en rouge et n'utilise que A3)
VB:
=SOMME((JOURSEM(MOIS.DECALER(A3;(LIGNE(INDIRECT("1:100"))-1)*12);2)=1)*1)

=SOMME((JOURSEM(MOIS.DECALER($A$3;(LIGNE(INDIRECT("1:100"))-1)*12);2)=1)*1)

Attention : Valider la formule avec la combinaison CTRL+MAJ+ENTRER et non un simple ENTRER

Fichier avec le jour variable via une cellule

Ok A3 est la date de naissance et on décale de 100 ans


Formule pour avoir le nombre de Lundi (le 1 en rouge et n'utilise que A3)
VB:
=SOMME((JOURSEM(MOIS.DECALER(A3;(LIGNE(INDIRECT("1:100"))-1)*12);2)=1)*1)

=SOMME((JOURSEM(MOIS.DECALER($A$3;(LIGNE(INDIRECT("1:100"))-1)*12);2)=1)*1)

Attention : Valider la formule avec la combinaison CTRL+MAJ+ENTRER et non un simple ENTRER

Fichier avec le jour variable via une cellule
votre formule fonctionne parfaitement mais elle prend l'intégralité de la plage contrairement aux formules de Cousinhub et Mapomme qui ont bien créés une plage variable. mais je vois un problème et 3 solutions différentes pour le régler . efficace et rapide. Merci à tous
 
Bonjour à toutes et à tous, bonjour @yves57
Bon après la bagarre et pas plus simple pour autant 😕
Ça ne simplifie rien bien sûr mais j'ai créé quelques noms définis pour la "lisibilité" (si j'ose dire) de la formule.
J'ai ajouté une date à la plage des dates pour la date anniversaire des 100 ans (15/12/2057)
J'ai mis une mise en forme conditionnelle sur la plage des dates et des jours de la semaine.

Plage_Dates=Feuil1!$A$3:$A$103Plage contenant les dates anniversaires jusqu'à 100 ans
Bilan=Feuil1!$C$3Première cellule du bilan
Année=Feuil1!$E$1Année correspondant à l'âge choisi
Âge=Feuil1!$E$2Âge choisi
Plage_Âge=DECALER(Plage_Dates;0;0;Âge+1;1)Plage des dates pour l'âge choisi
Jours_Anniv=JOURSEM(Plage_Âge;2)Jours de la semaine pour l'âge choisi (de 1 à 7)
N°JourSem=LIGNE()-LIGNE(Bilan)+1Jour de la semaine pour le bilan (de 1 à 7)


La formule utilisée (sur toute la plage du bilan) :
VB:
=TEXTE(SOMMEPROD(N(Jours_Anniv=N°JourSem));"00")&" "&CHOISIR(N°JourSem;"Lundi";"Mardi";"Mercredi";"Jeudi";"Vendredi";"Samedi";"Dimanche")
Chapeau bas pour les autres formules 👍

Voir le fichier joint
À bientôt
 

Pièces jointes

Bonjour à toutes et à tous, bonjour @yves57
Bon après la bagarre et pas plus simple pour autant 😕
Ça ne simplifie rien bien sûr mais j'ai créé quelques noms définis pour la "lisibilité" (si j'ose dire) de la formule.
J'ai ajouté une date à la plage des dates pour la date anniversaire des 100 ans (15/12/2057)
J'ai mis une mise en forme conditionnelle sur la plage des dates et des jours de la semaine.

Plage_Dates=Feuil1!$A$3:$A$103Plage contenant les dates anniversaires jusqu'à 100 ans
Bilan=Feuil1!$C$3Première cellule du bilan
Année=Feuil1!$E$1Année correspondant à l'âge choisi
Âge=Feuil1!$E$2Âge choisi
Plage_Âge=DECALER(Plage_Dates;0;0;Âge+1;1)Plage des dates pour l'âge choisi
Jours_Anniv=JOURSEM(Plage_Âge;2)Jours de la semaine pour l'âge choisi (de 1 à 7)
N°JourSem=LIGNE()-LIGNE(Bilan)+1Jour de la semaine pour le bilan (de 1 à 7)


La formule utilisée (sur toute la plage du bilan) :
VB:
=TEXTE(SOMMEPROD(N(Jours_Anniv=N°JourSem));"00")&" "&CHOISIR(N°JourSem;"Lundi";"Mardi";"Mercredi";"Jeudi";"Vendredi";"Samedi";"Dimanche")
Chapeau bas pour les autres formules 👍

Voir le fichier joint
À bientôt
Joli avec la mise en forme, encore une solution différente .... ça fait 4 pour un même problème et je suis persuadé qu'il y en à d'autres. Merci de m'avoir rendu ce qui pour moi est un grand service .
A bientôt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
1 K
Réponses
0
Affichages
358
D
Réponses
4
Affichages
341
DidPouAxi
D
Retour