SOMMEPROD & NB.JOURS.OUVRES ou DATEDIF [RESOLU]

sadar

XLDnaute Nouveau
Bonjour,

Je cherche à pouvoir effectuer une SOMMEPROD avec aux choix un DATEDIF ou un NB.JOURS.OUVRES

J'ai une feuille avec les colonnes suivantes
  • User Name
  • Statut
  • Date Début
  • Délai max.
  • Date Fin
  • Charge réelle

Certaines colonnes possèdent des plages nommées

  • User Name --> RngUserName
  • Statut --> RngStatut
  • Date Début --> RngDDeb
  • Date Fin --> RngDFin
  • Charge --> RngCharge

Lorsque j'effectue une formule matricielle simple telle que
Code:
=SOMMEPROD((RngUserName="User 1")*(RngStatut="Terminé")*(ANNEE(RngDDeb)=ANNEE(MAINTENANT()))*(ANNEE(RngDFin)=ANNEE(MAINTENANT()))* (RngCharge))
Cela fonctionne bien pour toutes les dates Début et Fin qui sont dans l'année en cours

La formule ci-après comptabilise bien le nombre de lignes correspondantes à des date de début situées en 2013 avec une date de fin en 2014
Code:
=SOMMEPROD((RngUserName="User 1")*(RngStatut="Terminé")*(ANNEE(RngDDeb)=ANNEE(MAINTENANT())-1)*(ANNEE(RngDFin)=ANNEE(MAINTENANT())))

MAIS comment comptabiliser le nombre de jours depuis le 01/01/2014 jusqu'à la date de fin dans une formule matricielle ???
En effet

Code:
=SOMMEPROD((RngUserName="User 1")*(RngStatut="Terminé")*(ANNEE(RngDDeb)=ANNEE(MAINTENANT())-1)*(ANNEE(RngDFin)=ANNEE(MAINTENANT()))*(NB.JOURS.OUVRES(DATE(ANNEE(MAINTENANT());1;1);RngDFin;JoursFeries)))

Me répond #Valeur

Et
Code:
=SOMMEPROD((RngUserName="User 1")*(RngStatut="Terminé")*(ANNEE(RngDDeb)=ANNEE(MAINTENANT())-1)*(ANNEE(RngDFin)=ANNEE(MAINTENANT()))*(DATEDIF(DATE(ANNEE(MAINTENANT());1;1);RngDFin;"d")))
Me répond #Nombre

Bref un peu d'aide serait la bien venue en PJ le fichier pour mieux comprendre

Merci
 

Pièces jointes

  • XlForum.xlsm
    17.6 KB · Affichages: 43
Dernière édition:

sadar

XLDnaute Nouveau
Re : SOMMEPROD & NB.JOURS.OUVRES ou DATEDIF

Réponse trouvée sur un forum US en effectuant la recherche avec les mots clés excel sumproduct networkdays -vba

http://www.excelforum.com/excel-formulas-and-functions/862099-networkdays-in-sumproduct.html

pour que cela fonctionne il faut ajouter +0 !!
Code:
=SOMMEPROD((RngUserName="User 1")*(RngStatut="Terminé")*(ANNEE(RngDDeb)=ANNEE(MAINTENANT())-1)*(ANNEE(RngDFin)=ANNEE(MAINTENANT()))
*(NB.JOURS.OUVRES(DATE(ANNEE(MAINTENANT());1;1)[B]+0[/B];(RngDFin[B]+0[/B]);JoursFeries)))

Pourquoi ? j'en sait fichetrement rien MAIS cela fonctionne !!!

:rolleyes: