……Marco Valli's Blog……

Internet, Tecnologia e SharePoint!!!

Il fantastico mondo delle colonne calcolate (Parte 2): calcolare il numero di giorni lavorativi tra due date


Anche oggi ho avuto modo di scontrarmi con le colonne calcolate in Sharepoint.. l’obiettivo era molto semplice, realizzare una form di richiesta ferie, quanto di più semplice, anche se nasconde un’insidia…

Gli utenti infatti non dovevano inserire il numero di giorni ma il sistema doveva automaticamente calcolare il numero di giorni lavorativi (escludendo quindi sabati e domeniche..) il compito è semplice, la realizzazione ha richiesto un po’ di lavoro, sempre considerando il fatto che non essendo un programmatore devo risolvere i problemi senza l’ausilio di codice…

Dopo qualche tentativo e l’aiuto dell’infaticabile excel (peccato in sharepoint non sia supportata la funzione GIORNI.LAVORATIVI.TOT che avrebbe reso molto più semplice il tutto..) ho trovato il modo di trovare quante ricorrenze di un determinato giorno ci sono in un lasso di tempo:

=((INT(([Data Fine]-[Data Inizio ]+GIORNO.SETTIMANA([Data Inizio]-1))/7))

in cui il numero che si sottrae (in questo caso l’1) è il numero che corrisponde al giorno della settimana secondo questo schema:

Giorno Valore
Domenica 1
Lunedì 2
Martedì 3
Mercoledì 4
Giovedì 5
Venerdì 6
Sabato 7

 

Una volta avuta questa informazione non resta che ripetere due volte l’operazione (per il sabato e la domenica) e sommare il risultato, sottraendolo quindi alla differenza tra la data di fine e la data di inizio.. risultato:

=([Data Fine]-[Data Inizio]+1)-((INT(([Data Fine]-[Data Inizio]+GIORNO.SETTIMANA([Data Inizio]-7))/7))+(INT(([Data Fine]-[Data Inizio]+GIORNO.SETTIMANA([Data Inizio]-1))/7)))

Unica nota, effettuando il calcolo ([Data Fine]-[Data Inizio]) Sharepoint restituisce un valore inferiore di 1 a quello corretto (probabilmente perchè parte a fare il calcolo dalle 00.00 del giorno iniziale fino alle 00.00 del giorno finale) quindi basta aggiungere un +1 alla formula per ottenere il valore corretto..

Enjoy!! 🙂

Annunci

2 risposte a “Il fantastico mondo delle colonne calcolate (Parte 2): calcolare il numero di giorni lavorativi tra due date

  1. Francesco 23 novembre 2010 alle 16:19

    e invece x i festivi?

    • Marco Valli 23 novembre 2010 alle 16:55

      La gestione dei festivi è decisamente più complessa, risolvibile però con metodi decisamente più articolati della semplice colonna calcolata di Sharepoint, magari appoggiandosi ad un calendario con segnate le festività e un workflow che conteggia i giorni tra Data Inizio e Data Fine e restituisce il numero di festività comprese…

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: