BASE DE DADOS DE CONHECIMENTO

Cálculo do número de dias úteis entre datas


Publicado: 17 Feb 2017
Data da última modificação: 05 Jun 2023

Pergunta

Como fazer a contagem do número de dias da semana ou de dias úteis entre duas datas. Por exemplo, o número de dias úteis entre dois campos de data na fonte de dados, duas datas de parâmetro ou o número de dias da semana em um mês.

Ambiente

Tableau Desktop

Resposta

    
         
CLIQUE PARA EXPANDIR A SOLUÇÃO

Opção 1: contar números de dias da semana entre dois campos de data na mesma fonte de dados

Etapa 1: criar campos calculados
  1. Selecione Análise > Criar campo calculado.
  2. Na caixa de diálogo Campo calculado que é aberta, faça o seguinte e clique em OK:
    1. Nomeie o campo calculado. Neste exemplo, o campo calculado é chamado de "Data do pedido (alternado para dia de semana)"
    2. No campo de fórmula, crie um campo calculado similar ao seguinte:
       
      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.  Crie um campo calculado chamado "Data de envio (alternado para dia de semana)" usando um cálculo semelhante ao seguinte:
     
    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.  Crie um campo calculado chamado "No. de dias da semana a partir do pedido de envio" usando um cálculo similar ao seguinte:
     
    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)])
    )
Etapa 2: criar a exibição
  1. Arraste [Order ID (ID do pedido)] para a divisória Linhas
  2. Opcional: arraste [Order Date (Data do pedido)] e Data de [Ship(Envio)] para a divisória Linhas
  3. Arraste [# of Weekdays from Order to Shipping (No. de dias da semana a partir do pedido de envio)] para Texto no cartão Marcas
 
CLIQUE PARA EXPANDIR A SOLUÇÃO

Opção 2: contar número de dias da semana a cada mês para um campo de data

Este exemplo usa o conjunto de dados de amostra Superstore para encontrar o número de dias da semana em cada mês para a data do pedido.
  1. Selecione Análise > Criar campo calculado.
  2. Na caixa de diálogo Campo calculado que é aberta, faça o seguinte e clique em OK:
    1. Nomeie o campo calculado. Neste exemplo, o campo calculado é chamado de "Início da data de mês"
    2. No campo de fórmula, crie um campo calculado similar ao seguinte:

      DATETRUNC('month', [Order Date])
  3. Crie um campo calculado com nome "Data final do mês" com um cálculo similar ao seguinte:

    DATEADD('day', -1, DATEADD('month', 1, DATETRUNC('month', [Order Date])))
  4. Siga as instruções na Opção 1 usando [Start of Month Date (Data inicial do mês)] em vez de [Order Date (Data do pedido)], e [End of Month Date (Data final do mês)] em vez de [Ship Date (Data de envio)] 
         
CLIQUE PARA EXPANDIR A SOLUÇÃO

Opção 3: contar dias da semana excluindo feriados

Este exemplo usa o conjunto de dados de amostra Superstore para encontrar os dias da semana entre as datas do pedido e do envio de cada pedido.

Etapa 1: configurar dados
  1. Adicione uma tabela à fonte de dados original que contém uma lista de dadas de feriado. Neste exemplo, essa tabela é chamada "Feriados"
  2. Acesse a guia Fonte de dados no Tableau Desktop
  3. Adicione a tabela "Feriado" à área do canvas
  4. Na caixa de diálogo União, faça o seguinte:
    1. Selecione Esquerda
    2. Em Fonte de dados, selecione Data do pedido
    3. Em Feriados, selecione Data de feriado
    4. Clique no símbolo de igual e selecione <=
    5. Em Fonte de dados, clique em Adicionar nova cláusula de união e selecione Data de envio
    6. Em Feriados, selecione Data de feriado
    7. Clique no símbolo de igual e selecione >=
 
Observação: [Order Date (Data do pedido)] e [Ship Date (Data de envio)] devem ser substituídos pelas datas inicial e final, respectivamente. Caso as datas inicial e final sejam campos calculados, esses cálculos podem ser recriados em cálculos de união. Se não for possível adicionar uma tabela à fonte de dados original com datas de feriado, crie uma união entre bancos de dados a uma tabela externa que contenha datas de feriado. Para isso, é necessário atualizar para o Tableau Desktop 10.5 ou posterior para usar as desigualdades nas cláusulas de união no recurso de uniões entre bancos de dados.
 
Etapa 2: criar os cálculos
  1. Navegue até uma planilha
  2. Siga as etapas de 1-1 até 1-3 nas instruções da opção 1 para criar os cálculos [Order Date (shifted to weekday) (Data do pedido (alternado para dia da semana))] e [Ship Date (shifted to weekday) (Data de envio (alternado para dia da semana))]
  3.  Crie um campo calculado chamado "No. de dias da semana a partir do pedido de envio" com um cálculo similar ao seguinte:
     
    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])

Etapa 3: criar a exibição
  1. Arraste [Order ID (ID do pedido)] para a divisória Linhas
  2. Opcional: arraste [Order Date (Data do pedido)] e Data de [Ship(Envio)] para a divisória Linhas
  3. Arraste [# of Weekdays from Order to Shipping (No. de dias da semana a partir do pedido de envio (excluindo feriados))] para Texto no cartão Marcas
Este artigo resolveu o problema?