Funzione NETWORKDAYSQuesto componente aggiuntivo restituirà il numero di interi giorni lavorativi tra due date e creerà una colonna formula contenente il risultato.Lo script identifica automaticamente i fine settimana, tuttavia, le festività vengono lette dal file Holiday List.jmp incluso. Questo file attualmente contiene le festività federali del 2016 e risiede nella directory Home di Addin al momento dell'installazione. Per modificare il file:
1. Fare clic sul menu Visualizza ==> Componenti aggiuntivi...
2. Selezionare NETWORKDAYS dall'elenco dei componenti aggiuntivi registrati
3. Fare clic sul collegamento alla cartella Home
4. Aprire la tabella dati Holiday List.jmp e aggiungere, eliminare o modificare le date da escludere
5. Salvare il file
Per eseguire il componente aggiuntivo : Seleziona due colonne di date nella tabella dei dati e quindi seleziona la voce NETWORKDAYS dal menu Componenti aggiuntivi ==> Funzioni personalizzate.
Tieni presente che la colonna della formula risponderà alle modifiche dei dati, tuttavia, se viene aggiunta una nuova data al di fuori delle date minime e massime originali, la funzione NETWORKDAYS deve essere eseguita nuovamente per tenere conto dei giorni del fine settimana inclusi nel nuovo intervallo.
Ti interessa usare le formule?Mio diario con formule incorporate potrebbe interessarti.
Add-in creates column with # of whole days between dates in 2 selected columns.Add-in creates column with # of whole days between dates in 2 selected columns.Il componente aggiuntivo crea una colonna con il numero di giorni interi tra le date in 2 colonne selezionate.
UtilitàRe: Funzione NETWORKDAYS@jerry_cooper questo componente aggiuntivo è molto utile e lo sto usando per calcolare il tempo medio di consegna per il mio laboratorio per soddisfare le richieste analitiche. Mi chiedo se puoi offrirmi alcuni suggerimenti - A volte riceviamo le richieste nei giorni festivi e per tali richieste l'orologio inizia il giorno lavorativo successivo. Questo componente aggiuntivo conta il giorno di invio nel calcolo del giorno di rete. sarebbe possibile apportare alcune modifiche agli script in modo che non calcoli il giorno di inizio se cade in una delle festività?
Re: Funzione NETWORKDAYSPenso di averlo fatto funzionare! Ho dovuto apportare alcune modifiche:
1. Aggiungere l'argomento "frazionario" alle funzioni Date Difference.
2. Il fattore "+ 1" nella formula non è più necessario e deve essere eliminato.
3. Ho rimosso la clausola Modulo 7 == 0 come indicato per mantenere il sabato come giorno lavorativo.
4. Ho notato che se includo le festività che si verificano di domenica nell'elenco delle festività (come nel caso di capodanno 2017), vengono sottratte due volte (una volta per essere domenica e una volta per essere festivo), quindi non sono consentite festività domenicali la lista.
Detto questo, l'ho provato su una serie di esempi e sembra funzionare correttamente.
Grazie ancora Jerry!!!!
Re: Funzione NETWORKDAYSGrazie, Jerry! Prenderò in considerazione i tuoi suggerimenti e ti farò sapere se funziona come sperato. Questo è fantastico.
Re: Funzione NETWORKDAYSEhi Giovanni,
Sono contento che tu abbia trovato utile il componente aggiuntivo. In risposta alle tue domande:
1. Sì, l'aggiunta dell'argomento "frazionario" alle funzioni Date Difference dovrebbe darti giorni parziali. I miei rapidi test lo hanno confermato, ma assicurati che i tuoi risultati siano quelli che ti aspetti ;o).
2. Cambiare i giorni del "fine settimana" da escludere è facile, tuttavia, ciò richiederà la modifica dello script incluso. Il componente aggiuntivo funziona costruendo una matrice di giorni da escludere, chiamata "esclusioni". La matrice delle "esclusioni" è composta dai giorni festivi e da tutti i sabati e le domeniche comprese tra le date massima e minima delle due colonne date scelte. È possibile visualizzare i valori effettivi per le "esclusioni" facendo doppio clic sulla formula nell'editor delle formule (questi sono in formato data JMP, ovvero numero di secondi dal 01 gennaio 1904). Per modificare lo script in modo da escludere diversi giorni della settimana, procedere come segue:
UN. Seleziona "Visualizza->Componenti aggiuntivi..." dal menu JMP
B. Selezionare NETWORKDAYS dalla finestra Componenti aggiuntivi registrati
C. Fare clic sul collegamento accanto a Cartella Home per aprire la cartella contenente lo script
D. Crea una copia di backup del file NetWorkDays.jsl (per ogni evenienza...)
e. Fare doppio clic sul file NetWorkDays.jsl per accedere all'editor di script
io. Cerca la riga con la funzione Modulo, un resto di 1 significa che ha trovato una domenica, un resto di 0 significa che ha trovato un sabato.
ii. L'eliminazione di " | Modulo( Day Of Week( mindate ) + i, 7 ) == 0" dall'istruzione rimuoverà sabato dalle esclusioni.
iii. Salva lo script mantenendo lo stesso nome
A proposito, puoi aggiungere l'argomento "frazionario" alle funzioni Date Difference nello script, se lo desideri, in modo da non doverlo fare dopo il fatto ...
Spero che questo ti aiuti.
-Jerry
Re: Funzione NETWORKDAYSInoltre, Jerry, che ne dici se per noi il sabato conta come giorno lavorativo, ma non la domenica? Sono un novizio e non capisco cosa nella tua formula realizza l'esclusione di sabato/domenica.
Re: Funzione NETWORKDAYSPS La semplice aggiunta dell'argomento "frazionario" alle due funzioni Date Difference nella formula farebbe il trucco?
Re: Funzione NETWORKDAYSCiao Jerry,
Grazie mille per questo utile componente aggiuntivo. Mi chiedo se potresti offrire alcuni suggerimenti, visto che ci hai già pensato.
Devo calcolare la durata (in giorni frazionari) tra due valori di data/ora esclusi i periodi del fine settimana, ovvero escludendo il periodo di 48 ore dalle 12:00 del sabato mattina alle 12:00 del lunedì mattina.
Questa funzione NETWORKDAYS mi fornisce il numero intero di giorni lavorativi, ma non il numero frazionario di giorni lavorativi, tra due date/ore. Sarebbe facile modificare per dare quest'ultimo?
John