Fonction JOURS OUVRABLESCe complément renverra le nombre de jours de travail entiers entre deux dates et créera une colonne de formules contenant le résultat.Le script identifie automatiquement les week-ends, cependant, les jours fériés sont lus à partir du fichier Holiday List.jmp inclus. Ce fichier contient actuellement les jours fériés fédéraux de 2016 et réside dans votre répertoire d'accueil Addin lors de l'installation. Pour modifier le fichier :
1. Cliquez sur le menu Affichage ==> Compléments...
2. Sélectionnez NETWORKDAYS dans votre liste de compléments enregistrés
3. Cliquez sur le lien vers le dossier d'accueil
4. Ouvrez la table de données Holiday List.jmp et ajoutez, supprimez ou modifiez les dates à exclure
5. Enregistrez le fichier
Pour exécuter le complément : Sélectionnez deux colonnes de date dans votre tableau de données, puis sélectionnez l'élément NB.JOURS.OUVRES dans votre menu Compléments ==> Fonctions personnalisées.
Notez que la colonne de formule répondra aux modifications de données, cependant, si une nouvelle date est ajoutée en dehors des dates min et max d'origine, la fonction NETWORKDAYS doit être réexécutée pour tenir compte des jours de week-end inclus dans la nouvelle plage.
Intéressé par l'utilisation de formules ?Mon journal avec formules intégrées peut vous intéresser.
Add-in creates column with # of whole days between dates in 2 selected columns.Add-in creates column with # of whole days between dates in 2 selected columns.Le complément crée une colonne avec # de jours entiers entre les dates dans 2 colonnes sélectionnées.
UtilitairesRe : Fonction NB.JOURS.OUVRES@jerry_cooper ce complément est très utile et je l'utilise pour calculer le délai d'exécution moyen de mon laboratoire pour répondre aux demandes d'analyse. Je me demande si vous pouvez me proposer quelques suggestions - Parfois, nous recevons les demandes les jours fériés et pour ces demandes, l'horloge commence le jour ouvrable suivant. Ce complément compte le jour de soumission dans le calcul du jour réseau. serait-il possible d'apporter quelques modifications aux scripts afin qu'il ne calcule pas le jour de départ s'il tombe sur l'un des jours fériés ?
Re : Fonction NB.JOURS.OUVRESJe pense que ça marche ! J'ai du faire quelques modifications :
1. Ajoutez l'argument "fractionnaire" aux fonctions Différence de date.
2. Le facteur "+ 1" dans la formule n'est plus nécessaire et doit être supprimé.
3. J'ai supprimé la clause Modulo 7 == 0 comme indiqué pour conserver le samedi comme jour de travail.
4. J'ai remarqué que si j'inclus les jours fériés qui surviennent un dimanche dans la liste des jours fériés (comme l'a fait le Nouvel An 2017), ils sont soustraits deux fois (une fois pour être un dimanche et une fois pour être un jour férié), donc aucun dimanche les vacances autorisées dans la liste.
Avec cela, je l'ai essayé sur un certain nombre d'exemples et cela semble fonctionner correctement.
Merci encore Jerry !!!!
Re : Fonction NB.JOURS.OUVRESMerci Jerry ! Je prends note de vos suggestions et je vous ferai savoir si cela fonctionne comme espéré. C'est bien.
Re : Fonction NB.JOURS.OUVRESSalut Jean,
Heureux que vous ayez trouvé le complément utile. En réponse à vos questions :
1. Oui, l'ajout de l'argument "fractionnel" aux fonctions de différence de date devrait vous donner des jours partiels. Mes tests superficiels l'ont confirmé, mais assurez-vous que vos résultats correspondent à vos attentes ;o).
2. Changer les jours de "week-end" à exclure est facile, cependant, cela nécessitera de modifier le script inclus. Le complément fonctionne en créant une matrice de jours à exclure - c'est ce qu'on appelle les "exclusions". La matrice "exclusions" est composée des jours fériés et de tous les samedis et dimanches entre les dates max et min des deux colonnes de dates choisies. Vous pouvez voir les valeurs réelles des « exclusions » en double-cliquant sur la formule dans l'éditeur de formules (celles-ci sont au format de date JMP, c'est-à-dire le nombre de secondes depuis le 1er janvier 1904). Pour modifier le script afin d'exclure différents jours de la semaine, procédez comme suit :
un. Sélectionnez "Affichage->Compléments..." dans votre menu JMP
b. Sélectionnez NETWORKDAYS dans la fenêtre Registered Add-Ins
c. Cliquez sur le lien à côté de Home Folder pour ouvrir le dossier contenant le script
d. Faites une copie de sauvegarde du fichier NetWorkDays.jsl (au cas où...)
e. Double-cliquez sur le fichier NetWorkDays.jsl pour accéder à l'éditeur de script
je. Recherchez la ligne avec la fonction Modulo, un reste de 1 signifie qu'elle a trouvé un dimanche, un reste de 0 signifie qu'elle a trouvé un samedi.
ii. La suppression de " | Modulo( Day Of Week( mindate ) + i, 7 ) == 0" de la déclaration supprimera le samedi des exclusions.
iii. Enregistrez le script en gardant le même nom
Soit dit en passant, vous pouvez ajouter l'argument "fractionnel" aux fonctions de différence de date dans le script si vous le souhaitez afin de ne pas avoir à le faire après coup...
J'espère que cela t'aides.
-Jerry
Re : Fonction NB.JOURS.OUVRESAussi, Jerry, et si pour nous le samedi comptait comme un jour de travail, mais pas le dimanche ? Je suis novice et je ne comprends pas ce qui, dans votre formule, accomplit l'exclusion Sat/Sun.
Re : Fonction NB.JOURS.OUVRESPS Est-ce que le simple fait d'ajouter l'argument "fractionnaire" aux deux fonctions de différence de date dans la formule ferait l'affaire ?
Re : Fonction NB.JOURS.OUVRESSalut Jerry,
Merci beaucoup pour ce complément utile. Je me demande si vous pourriez faire des suggestions, puisque vous y avez déjà pensé.
J'ai besoin de calculer la durée (en jours fractionnaires) entre deux valeurs de date/heure hors périodes de week-end, c'est-à-dire hors période de 48 heures à partir de 12h le samedi matin jusqu'à 12h le lundi matin.
Cette fonction NETWORKDAYS me donne le nombre entier de jours ouvrables, mais pas le nombre fractionnaire de jours ouvrables, entre deux dates/heures. Serait-il facile de modifier pour donner ce dernier ?
John