2016-05-20 1 views
0

J'essaie de créer une application de planificateur de congé simple en utilisant Sharepoint. Je travaille en grande partie, mais je vais revenir sur les affaires courantes comme les jours fériés et les demi-journées. J'ai donc ajouté une case à cocher et, si cochée, je veux qu'elle déduise 0,5 de la valeur totale (demi-journée). La formule qui fonctionne pour les jours entiers est:Ajout d'une valeur numérique basée sur la case à cocher dans la formule Sharepoint

=(DATEDIF(dateFrom,dateTo,"D"))-INT(DATEDIF(dateFrom,dateTo,"D")/7)*2-IF((WEEKDAY(dateTo)-WEEKDAY(dateFrom))<0,2,0)+1 

Donc je viens de créer deux autres colonnes appelées shalfday et edayday. Si elles sont cochées, alors déduisez 0.5 du total (si les dates correspondent et que les deux sont cochées, déduisez 0.5 encore).

J'ai essayé de jouer rond avec des choses comme

-IF([shalfday],"0.5") 

et d'autres variantes que les résultats Google ne sont pas d'être ce matin trop gentil mais ils reviennent #NOM? variables

Des pointeurs sur la syntaxe ou ce que je devrais regarder?

+0

comme et des conseils: votre "formule Sharepoint" est en fait égal à une 'formule Excel'. Ouvrez Excel et simulez vos colonnes de champs calculées ici. Il sera beaucoup plus facile de 'déboguer' la formule – Verthosa

+0

Salut, j'ai utilisé la même formule dans Excel (juste pas lié à un nom de case à cocher). La formule enlève effectivement le 0.5 là où j'en ai besoin. Sharepoint semble avoir de la difficulté à savoir ce que j'essaie. J'ai essayé d'ajouter le code Nils fourni ci-dessous à la fin de la formule du jour ouvrable ci-dessus, mais je reçois toujours le #NAME? référence ..... Tout ce que j'essaie de faire est de dire si checkbox = true alors -0.5 à partir du résultat. Semble vraiment obtus sur la façon de l'atteindre. – Amble

Répondre

0

J'ai fini par faire cela d'une autre manière. J'ai plutôt demandé à l'utilisateur de spécifier combien de demi-journées étaient dans son congé dans une autre colonne de site et utilisé ce suffixe dans la formule. Il s'est également débarrassé du contrôle de validation pour s'assurer que l'utilisateur ne prenait pas deux demi-journées sur un jour de congé.

Nouvelle colonne de site appelée 'Total Half Days' définie sur nombre, valeur par défaut 0; Annexés à la formule originale:

-([Total Half Days]/2)+1 

formule complète:

=(DATEDIF(dateFrom,dateTo,"D"))-INT(DATEDIF(dateFrom,dateTo,"D")/7)*2-IF((WEEKDAY(dateTo)-WEEKDAY(dateFrom))<0,2,0)-([Total Half Days]/2)+1 
0

Je suggère:

-IF([shalfday],0.5,0) 

Puisque vous essayez de vous soustraire devez travailler avec des nombres entiers et non pas des chaînes (i enlevé les guillemets).