Calculer les jours fériés sur Google Spreadsheet

J’ai du récemment écrire une feuille d’édition de CRAs sur Google Spreadsheet, et je voulais savoir si un jour était ouvré ou non, en une seule cellule, sans autre référence temporaire.

Il y a bien NETWORKDAYS() qui calcule le nombre de jours ouvrés, mais pour les US. Il ne prend pas en compte les jours fériés français ! Par contre il a un paramètre optionnel qui aide…

Bien évidemment, le calcul des jours fériés n’est pas trivial, car le jour de Pâques dépend d’un paquet de conditions, et plusieurs jours fériés dépendent de Pâques…

Aidé de morceaux de formule que j’ai pu dénicher en ligne, voici donc le calcul des jours fériés en fonction de l’année (en $E$7) :

=NETWORKDAYS(DATE(YEAR($E$7);MONTH($E$7);B$11);DATE(YEAR($E$7);MONTH($E$7);B$11);{DATE(year($E$7);1;1);DATE(year($E$7);3;29,56+0,979*MOD(204-11*MOD(year($E$7);19);30)-WEEKDAY(DATE(year($E$7);3;28,56+0,979*MOD(204-11*MOD(year($E$7);19);30))));DATE(year($E$7);3;29,56+0,979*MOD(204-11*MOD(year($E$7);19);30)-WEEKDAY(DATE(year($E$7);3;28,56+0,979*MOD(204-11*MOD(year($E$7);19);30))))+1;DATE(year($E$7);5;1);DATE(year($E$7);5;8);DATE(year($E$7);3;29,56+0,979*MOD(204-11*MOD(year($E$7);19);30)-WEEKDAY(DATE(year($E$7);3;28,56+0,979*MOD(204-11*MOD(year($E$7);19);30))))+39;DATE(year($E$7);3;29,56+0,979*MOD(204-11*MOD(year($E$7);19);30)-WEEKDAY(DATE(year($E$7);3;28,56+0,979*MOD(204-11*MOD(year($E$7);19);30))))+49;DATE(year($E$7);3;29,56+0,979*MOD(204-11*MOD(year($E$7);19);30)-WEEKDAY(DATE(year($E$7);3;28,56+0,979*MOD(204-11*MOD(year($E$7);19);30))))+50;DATE(year($E$7);7;14);DATE(year($E$7);8;15);DATE(year($E$7);11;1);DATE(year($E$7);5;1);DATE(year($E$7);11;11);DATE(year($E$7);12;24)})

(Oui, c’est gros : merci Pâques…)

Commentaires