formateur informatique

Tous les jours de l'année sans les Week-End avec Excel

Accueil  >  Bureautique  >  Excel  >  Excel Avancé  >  Tous les jours de l'année sans les Week-End avec Excel
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Jours de l'année sans les Week-End

Grâce à la fonction Sequence, nous avons récemment vu comment construire facilement et rapidement de longues suites de dates. Couplée à la fonction Serie.Jour.Ouvre.Intl, elle permet de reconstruire tous les jours du calendrier, sans les Week-End et ce, à simple validation d'une formule triviale. La différence majeure par rapport à l'emploi simple de la fonction Serie.Jour.Ouvre.Intl et vous l'avez compris, consiste à ne pas devoir tirer la poignée du résultat sur un nombre interminable de cellules.

Classeur Excel à télécharger
La démonstration peut se faire depuis une feuille vierge. Néanmoins, nous suggérons de récupérer un classeur Excel offrant un petit tableau de paramètres variables. En cellule D3, nous découvrons la date de départ à partir de laquelle il est question de créer cette série personnalisée de dates. Juste en-dessous en D4, c'est la longueur de la série, en années, qui est mentionnée. Tout l'intérêt de ces valeurs dynamiques est de pouvoir les modifier à souhait, pour influer automatiquement sur la série de dates qui en découlera, rappelons-le, tout en excluant les jours de Week-End, ou autres jours personnalisés d'ailleurs.

Série de dates à la poignée
Il existe différentes méthodes pour construire des suites de dates, excluant automatiquement les jours de Week-End. L'une d'entre elles consiste à utiliser la fonction Serie.Jour.Ouvre.Intl. Elle écarte naturellement les jours de Week-End. Mais elle peut aussi exclure d'autres jours précis pour des suites encore plus personnalisées. Dans son emploi classique, elle se contente de calculer la date d'une échéance, par rapport à une date de départ, en fonction d'un nombre de jours indiqués et devant exclure les Week-End. Nous proposons de commencer simplement :
  • Sélectionner la première case de la liste à construire en cliquant sur la cellule F3,
  • Taper le symbole égal (=) pour initier la syntaxe de la formule,
  • Inscrire la fonction d'échéance, suivie d'une parenthèse, soit : Serie.Jour.Ouvre.intl(,
Comme l'indique l'info-bulle qui se déclenche, en premier paramètre, cette fonction attend la date de début. En effet, sur la base de la première date trouvée, nous souhaitons construire une suite logique de dates. Donc, nous allons tirer la poignée du calcul sur les lignes du dessous. Mais pour chaque calcul, c'est toujours cette même date de départ qui doit être considérée. C'est l'écart qui doit croître avec la réplication. Donc, nous figeons cette cellule de référence.
  • Taper un point-virgule (;) pour passer dans l'argument du nombre de jours,
  • Inscrire le chiffre 1 pour définir un écart d'une unité,
  • Fermer la parenthèse de la fonction d'échéance,
  • Puis, valider la formule par la touche Entrée du clavier,
En l'absence de jours de Week-End intercalés, nous obtenons bien la date de la journée suivante, soit le lundi 2 janvier 2023. Malheureusement et fort naturellement à ce stade, si vous tirez la poignée du résultat sur les lignes du dessous, vous n'obtenez pas une suite logique de dates, mais la répétition de la même date.

Ce phénomène s'explique très simplement parce que le second paramètre est statique. Nous devons le rendre dynamique pour le faire progresser avec la formule répliquée. L'astuce consiste à exploiter la fonction Excel Ligne sur une cellule de la première ligne, comme A1. Au premier calcul, elle répondra par l'indice 1. Avec les réplications sur les lignes du dessous, elle pointera sur la cellule A2, puis A3 et les suivantes. Elle va donc faire grandir linéairement l'écart à observer avec la date de début.
  • Sélectionner de nouveau la cellule F3,
  • Dans la barre de formule, supprimer le chiffre 1 en second paramètre,
  • A la place, saisir la fonction Ligne, suivie d'une parenthèse, soit : Ligne(,
  • Cliquer alors sur la cellule A1 pour désigner une cellule de la première ligne,
Cette fois et contrairement au cas précédent, il est impératif de ne pas figer cette case pour qu'elle suive le déplacement de la formule répliquée.
  • Fermer la parenthèse de la fonction Ligne puis valider la formule par la touche Entrée,
Suite de dates sans les Week-End par formule Excel

Désormais, si vous tirez la poignée du résultat sur les lignes du dessous, vous avez le plaisir de constater que vous créez une suite logique de dates, à partir de celle mentionnée en cellule D3. De plus et grâce à la fonction Serie.Jour.Ouvre.intl, les jours de Week-End sont naturellement sautés. A chaque vendredi, une rupture est observée. L'énumération reprend inévitablement à partir du lundi suivant.

Suite sans Week-End automatique
Pourtant, cette technique n'est pas pleinement satisfaisante. Si l'utilisateur souhaite créer ce type de séries sur une, voire plusieurs années, la méthode de la poignée ou même de la présélection des cellules, s'avère extrêmement laborieuse. Mais cette décomposition en étapes permet d'atteindre et de mieux comprendre l'astuce que nous allons dégainer maintenant. L'idée est d'embarquer la fonction Serie.Jour.Ouvre.intl dans un raisonnement matriciel, soit un traitement récursif. En second paramètre, il n'est plus question de lui fournir la valeur d'un seul écart pour obtenir la date de fin. Il est question de lui passer toute la série des écarts à observer, par rapport à la date de début et ce, sur la longueur demandée, par exemple sur les 365 jours d'une année. Et comme vous le savez, c'est la fonction matricielle Sequence qui permet de construire ce type de suites.
  • Supprimer tous les résultats de la colonne F sauf celui de la première cellule (F3),
  • Sélectionner de nouveau la cellule F3,
  • Dans la barre de formule, supprimer le second argument : Ligne(A1),
  • A la place, inscrire la fonction de suite logique, suivie d'une parenthèse, soit : Sequence(,
En premier paramètre, cette dernière attend l'information sur le nombre de lignes sur lesquelles il s'agit de construire la série. Cette indication est fournie en nombre d'années, en cellule D4. Nous devons la transformer en nombre de jours en la multipliant par 365.
  • Taper le nombre 365 suivi du symbole de l'étoile : 365*, pour annoncer la multiplication,
  • Puis, cliquer sur la cellule D4 livrant l'information sur le nombre d'années,
  • Taper alors un point-virgule (;) pour passer dans l'argument du nombre de colonnes,
Cette série doit progresser en lignes, dans une seule et même colonne.
  • En conséquence, taper le chiffre 1,
  • Puis, taper un point-virgule (;) pour passer dans l'argument du point de départ,
  • Dès lors, taper le chiffre 0,
De cette manière, nous considérons la date mentionnée en premier paramètre de la fonction Serie.Jour.Ouvre.intl, sans l'altérer (Ni incrémentation, ni décrémentation).

Enfin, nous devons définir le pas de la série. La progression doit être linéaire, de jour en jour.
  • Taper un dernier point-virgule (;) pour atteindre l'argument du pas,
  • Puis, saisir le chiffre 1,
  • Enfin, fermer la parenthèse de la fonction Sequence et valider la formule par Entrée,
Cette fois et comme vous pouvez l'apprécier, nous obtenons bien une longue suite logique de dates, excluant les Week-End. Elle débute bien à partir de la date mentionnée en cellule D3 et se répand effectivement sur le nombre de jours correspondant au nombre d'années demandé en cellule D4. D'ailleurs et désormais, il suffit d'influer sur ces deux paramètres pour recomposer complètement une nouvelle suite.

Suite automatique de dates sans les Week-End par formule Excel

Si vous atteignez la fin de la liste, vous remarquez qu'elle déborde allègrement sur l'année suivante, malgré les 365 jours demandés à l'origine, en raison naturellement de l'exclusion des Week-End. Enfin et sachez-le, si vous influez sur le troisième paramètre, certes facultatif de la fonction Serie.Jour.Ouvre.intl, vous pouvez définir d'autres groupes de jours à exclure de l'énumération, pour construire automatiquement d'autres longues suites de dates très personnalisées.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn