Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
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,
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.
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.