Difference de dates en "Business days"

cameleon1970

XLDnaute Nouveau
Bonjour à tous,

Au sein d'un rapport Excel, je désirerais intégrer une colonne colonne calculant la différence entre deux dates.

Là, vous me direz, rien de compliqué > =TODAY()-B2 .... B2 étant la cellule reprenant la date de référence.

Le problème réside dans le fait que je voudrais qu'il me calcule le résultat sur base d'une semaine de 5 jours calendrier (Lu > Ve), soit, les jours de travail.

Prenons un exemple : 27/06/2012 - 05/07/2012 > retourne comme résultat (en jours complets) le nombre 8
Mais si je compte en business days (ce que je voudrais), il devrait m'afficher dans ce cas-ci, 6.

Quelqu'un aurait-il une idée ? :confused:

En vous remerciant d'avance,

Amicalement,

Cameleon;)
 

tototiti2008

XLDnaute Barbatruc
Re : Difference de dates en "Business days"

Bonjour cameleon,

Essaye de voir vers la fonction NB.JOURS.OUVRES
Elle doit être directement utilisable en XL2010, sur XL2003 tu devras installer la macro complémentaire Utilitaires d'analyse (Menu Outils - Macros complémentaires, cocher Utilitaires d'analyse)
 

Modeste geedee

XLDnaute Barbatruc
Re : Difference de dates en "Business days"

Bonsour®
A noter aussi que je crée le fichier en "Excel 2010 / XLSX" mais que le résultat, les formules etc ... doivent être compatible en 2003 / XLS.
Cameleon

:( ne pas utiliser les fonction des macro complémentaire ...

utiliser des formules d'équivalence (plus long, mais compatible quelle que soit la version)
=start_date+IF(days=0,0,SIGN(days)*SMALL(IF((WEEKDAY(start_date+SIGN(days)*(ROW(INDIRECT(“1:”&ABS(days)*10))),2)<6)*ISNA(MATCH(start_date+SIGN(days)*(ROW(INDIRECT(“1:”&ABS(days)*10))),holidays,0)),ROW(INDIRECT(“1:”&ABS(days)*10))),ABS(days)))
Code:
=Date_Debut+SI(nbJours=0;0;SIGNE(nbJours)*PETITE.VALEUR(SI((JOURSEM(Date_Debut+SIGNE(NbJours)*(LIGNE(INDIRECT(“1:”&ABS(NbJours)*10)));2)<6)*ESTNA(EQUIV(Date_Debut+SIGNE(NbJours)*(LIGNE(INDIRECT(“1:”&ABS(NbJours)*10)));ListeFériès;0));LIGNE(INDIRECT(“1:”&ABS(NbJours)*10)));ABS(NbJours)))
Daily Dose of Excel » Blog Archive » Replacing the Analysis Toolpak Addin – Part 2
voir également les commentaires sur cette page-lien
 
Dernière édition:

cameleon1970

XLDnaute Nouveau
Re : Difference de dates en "Business days"

Merci beaucoup pour cette information mais serait-il possible de clarifier, et ce par exemple en fonction de l'exemple ci-dessous :

Date quotidienne désignée par a variable : TODAY ()
Date de référence : >>> Exemple : cellule B2

Ce qui est demandé : Calcul en Business days

Voilà, peux-tu me faire un exemple de code avec celà ?

Merci beaucoup,

Cameleon1970
 

tototiti2008

XLDnaute Barbatruc
Re : Difference de dates en "Business days"

Re,
Bonjour Modeste Geedee :),

@Modeste : Je conçois qu'il peut être intéressant de se passer de l'utilitaire d'analyses, mais laisse le choix à Cameleon
D'autre part il me semble que ta formule sert plutôt à ajouter ou retrancher des jours ouvrés à une date
Si j'ai compris, c'est plutôt le nombre de jours ouvrés entre 2 dates qui l'intéresse

@Cameleon :
Quand tu dis "NB.JOURS.OUVRES" ne serait-il pas pas "NB.JOURS.OUVERTS" ?
Dois je utiliser "WORKDAYS" en 2010 et est ce reconnu en 2003 ?

non, c'est bien NB.JOURS.OUVRES en français, et NETWORKDAYS en anglais
pour que ça fonctionne en 2003, tu devras dire aux utilisateurs de cocher la macro complémentaire (Tools - Addins - cocher Analysis Toolpak)
L'autre solution est d'utiliser la solution de remplacement proposée par Modeste dans son premier lien, en face de Networkdays
 

cameleon1970

XLDnaute Nouveau
Re : Difference de dates en "Business days"

Quelques détails en plus.

Le rapport se fait sur base d'un TEMPLATE XLT.

On reçoit des données dans un fichiers XLS. On effectue "un copier/coller" des données vers le template.
Le template est en mode compatibilité pour 2003.

Je cherche de mon côté à insérer une colonne qui me retourne le nombre de jours ouverts ( jours de travail standart > du lundi au vendredi / semaine de 7 jours -2 pour le week-end)

Je prends un exemple :

- J'ai 8 jours complets entre demain (le 28/06/2012) et le jours de référence (05/07/2012)
- Ce qui m'intéresse, c'est qu'il m'affice le résultat de jours ouvrables (Businessdays) qui est ici de 6.

Voilà, je ne sais pas le dire autrement.

NETWORKDAYS ... j'ai essayé mais il me fait une erreur et me renvoie 7 jours, autrement dit il me compte le jour en cours et celà fausse le résultat car ce n'est pas comme celà que l'on compte.
En effet, il ne devrait pas tenir compte de la date d'aujourd'hui et donc, me renvoyer le nombre de jour restants soit 6.

Pour ce qui est des liens vers le site "dailydoseofexcel", aucun ne fonctionne.
J'ai une "Error 404 - Not Found"

Voilà.

Donc, si vous avez une solution pour moi, merci beaucoup

Bon appétit à ceux qui passent à table

Amicalement,

Caméléon
 

tototiti2008

XLDnaute Barbatruc
Re : Difference de dates en "Business days"

Re,

as-tu essayé
=networkdays(B2;TODAY()-1)
?

edit : sinon la version simplifiée (sans jours fériés) de la formule de contournement devrait être
avec B2 date de début et C2 Date de fin

Code:
=SOMMEPROD((JOURSEM(LIGNE(INDIRECT(B2&":"&C2-1));2)<6)*(1-2*(B2>C2)))
Code:
=SUMPRODUCT((WEEKDAY(ROW(INDIRECT(B2&"":""&C2-1)),2)<6)*(1-2*(B2>C2)))
 
Dernière édition:

cameleon1970

XLDnaute Nouveau
Re : Difference de dates en "Business days"

Cher tototiti2008,

Oui j'ai essayé avec ta formule et la j'avais un résultat érroné.
Mais en changeant le -1 en +1, la réponse est bonne.

Code:
=NETWORKDAYS(B2;TODAY()+1)

Maintenant, je dois encore rajouter une condition pour que dans le cas ou la valeur B2 est vide, il ne me mette rien dans la cellule qui me rapporte le résultat ... soit une case blanche.

Puis je coompléter la formule avec un "AND IF" ?

Merci d'avance,

Bien à toi,

Cameleon
 

cameleon1970

XLDnaute Nouveau
Re : Difference de dates en "Business days"

Mon affichage se faisait en négatif.
J'ai donc repris partiellement ta formule mais je l'ai modifiée en inversant les champs de références :

=NETWORKDAYS(TODAY();B2-1)

J'ai donc bien un entier comme réponse mais positif cette fois-ci

Pour le reste, je cherche toujours à compléter cette formule dans le cas où ce qui correspond à la cellule B2 serait vide.
Il faudrait donc que ma formule me retourne une case vide.
Est ce possible ?

Merci d'avance,

Cameleon
 

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 024
Membres
101 873
dernier inscrit
excellllll