KNOWLEDGE BASE

Calcolo dei giorni della settimana tra date


Pubblicato: 17 Feb 2017
Data dell'ultima modifica: 05 Jun 2023

Domanda

Come conteggiare il numero di giorni feriali (o giorni lavorativi) tra due date. Ad esempio, il numero di giorni lavorativi tra due campi data nell'origine dati, due date parametro o il numero di giorni della settimana in un mese.

Ambiente

Tableau Desktop

Risposta

    
         
FAI CLIC PER ESPANDERE LA SOLUZIONE        

Opzione 1: Numero di giorni della settimana tra due campi data nell'origine dati

Passaggio 1: Crea campi calcolati
  1. Seleziona Analisi > Crea campo calcolato
  2. Nella finestra di dialogo Campo calcolato che si apre, esegui le seguenti operazioni, quindi fai clic su OK:
    1. Attribuisci un nome al campo calcolato. In questo esempio, il campo calcolato è denominato "Data ordine (spostata a giorno della settimana)"
    2. Nel campo Formula, crea un calcolo simile a quello riportato di seguito:
       
      IF DATEPART('weekday', [Order Date]) = 1
      THEN DATEADD('day', 1, [Order Date])
      ELSEIF DATEPART('weekday', [Order Date]) = 7
      THEN DATEADD('day', 2, [Order Date])
      ELSE [Order Date]
      END
  3. Crea un campo calcolato con un nome come "Data spedizione (spostata a giorno della settimana)" con un calcolo simile a quello riportato di seguito:
     
    IF DATEPART('weekday', [Ship Date]) = 1
    THEN DATEADD('day', -2, [Ship Date])
    ELSEIF DATEPART('weekday', [Ship Date]) = 7
    THEN DATEADD('day', -1, [Ship Date])
    ELSE [Ship Date]
    END
  4. Crea un campo calcolato con un nome come "# di Giorni feriali da Ordine di spedizione" con un calcolo simile a quello riportato di seguito:
     
    MIN(
    DATEDIFF('day', [Order Date (shifted to weekday)], [Ship Date (shifted to weekday)])
    + 1
    - 2 * DATEDIFF('week', [Order Date (shifted to weekday)], [Ship Date (shifted to weekday)])
    )
Passaggio 2: Crea la Vista
  1. Trascina [ID ordine] sullo spazio Righe
  2. Facoltativo: trascina [Data ordine] e Data [Spedizione] sullo spazio Righe.
  3. Trascina [N. di giorni della settimana dall'ordine alla spedizione] su Testo nella scheda Indicatori
 
FAI CLIC PER ESPANDERE LA SOLUZIONE       

Opzione 2: Numero di giorni della settimana in ogni mese per un campo data         

In questo esempio viene utilizzato un insieme di dati Superstore campione per trovare il numero di giorni della settimana in ciascun mese per la data dell'ordine.
  1. Seleziona Analisi > Crea campo calcolato
  2. Nella finestra di dialogo Campo calcolato che si apre, esegui le seguenti operazioni, quindi fai clic su OK:
    1. Attribuisci un nome al campo calcolato. In questo esempio, il campo calcolato è denominato "Data di inizio mese"
    2. Nel campo Formula, crea un calcolo simile a quello riportato di seguito:

      DATETRUNC('month', [Data ordine])
  3. Crea un campo calcolato con un nome come "Data di fine mese" con un calcolo simile a quello riportato di seguito:

    DATEADD('day', -1, DATEADD('month', 1, DATETRUNC('month', [Order Date])))
  4. Segui le istruzioni nell'opzione 1 utilizzando [Data di inizio mese] al posto di [Data ordine] e [Data di fine mese] al posto di [Data spedizione] 
         
FAI CLIC PER ESPANDERE LA SOLUZIONE        

Opzione 3: Numero di giorni della settimana escludendo le vacanze

In questo esempio viene utilizzato un insieme di dati Superstore campione per trovare il numero di giorni della settimana tra la data dell'ordine e la data di spedizione per ciascun ordine.

Passaggio 1: Configura i dati
  1. Aggiungi una tabella all'origine dati originale che contenga un elenco di date delle vacanze. In questo esempio, tale tabella è denominata "Vacanze"
  2. Vai alla scheda Origine dati in Tableau Desktop
  3. Aggiungi la tabella "Vacanze" nell'area Canvas
  4. Nella finestra di dialogo Join, esegui le seguenti operazioni:
    1. Seleziona Sinistro
    2. In Origine dati, seleziona Data ordine
    3. In Vacanze, seleziona Data vacanze
    4. Fai clic sul segno di uguale e seleziona <=
    5. In Origine dati, fai clic su Aggiungi nuova clausola di join e seleziona Data spedizione
    6. In Vacanze, seleziona Data vacanze
    7. Fai clic sul segno di uguale e seleziona >=
 
Nota: [Data ordine] e [Data spedizione] devono essere sostituite rispettivamente con la data di inizio e di fine effettiva. Se le date di inizio e di fine sono campi calcolati, puoi ricreare tali calcoli nei calcoli del join. Se ti risulta impossibile aggiungere una tabella con le date delle vacanze all'origine dati originale, crea un join tra database in una tabella esterna contenente le date delle vacanze. Ciò richiede l'aggiornamento a Tableau Desktop 10.5 o versioni successive, al fine di utilizzare le disuguaglianze nelle clausole di join nella funzionalità di join tra database.
 
Passaggio 2: crea i calcoli
  1. Vai al foglio di lavoro.
  2. Segui i passaggi da 1-1 a 1-3 nelle istruzioni dell'opzione 1 per creare i calcoli di [Data ordine (spostata a giorno della settimana)] e [Data spedizione (spostata a giorno della settimana)].
  3. Crea un campo calcolato con un nome come "# di Giorni feriali da Ordine di spedizione" con un calcolo simile a quello riportato di seguito:
     
    MIN(
    DATEDIFF('day', [Order Date (shifted to weekday)], [Ship Date (shifted to weekday)])
    + 1
    - 2 * DATEDIFF('week', [Order Date (shifted to weekday)], [Ship Date (shifted to weekday)])
    ) - COUNTD([Holiday Date])

Passaggio 3: Crea la vista
  1. Trascina [ID ordine] sullo spazio Righe
  2. Facoltativo: trascina [Data ordine] e Data [Spedizione] sullo spazio Righe.
  3. Trascina [N. di giorni della settimana dall'ordine alla spedizione (escluse vacanze)] su Testo nella scheda Indicatori
Con questo articolo hai risolto il problema?