Les Valeurs calculées (calcul basé sur d’autres colonnes) (Calculated Field column) peuvent être efficaces pour obtenir une évaluation de durée entre deux dates. Il y a une liste de formules utiles sur le site MSDN: Calculated Field Formulas. Cependant quelques formules ont des comportements bizarres eyt peuvent produire des résultats curieux. Une autre difficulté de SharePoint 2010 est d’obtenir le résultat dans le format que l’on recherche.

Voilà juste un petit article pour partager les formules que j’ai utilisée pour évaluer une durée entre deux colonnes date-heure dans une liste personnalisée.

J’ai donc une liste personnalisée avec deux colonnes date-heure [Date de Création] et [Date de Clôture] et je cherche à évaluer la durée entre ces deux dates.

Pour cela j’ai créé un champ [Durée] de type “Valeur calculée (calcul basé sur d’autres colonnes)” et, dans la partie “Formule” j’indique, avec le type “Nombre (1 ; 1,0 ; 100)”:

=(DATEDIF([Date de Création];[Date de Clôture];"d")*24)+HEURE([Date de Clôture]-[Date de Création])&" Heure(s) "&MINUTE([Date de Clôture]-[Date de Création])&" Mins"

Nous voyons ici que si un des champs n’est pas renseigné, une erreur apparaît dans le champ. Aussi on peut contrôler ce problème en ajoutant des conditions à l’évaluation.

Ainsi, en changeant le type à “Une seule ligne de texte” et en indiquant la formule suivante:

=SI([Date de Clôture]>[Date de Création];(DATEDIF([Date de Création];[Date de Clôture];"d")*24)+HEURE([Date de Clôture]-[Date de Création])&" Heure(s) "&MINUTE([Date de Clôture]-[Date de Création])&" Mins";"En Cours")

J’obtiens la durée en “X Heures(s) Y Mins” ou la mention “En cours” si la date de clôture n’est pas renseignée ou antérieure à la date de création.