BASE DE CONOCIMIENTO

Calcular el número de días laborables entre fechas


Publicado: 17 Feb 2017
Fecha de la última modificación: 05 Jun 2023

Pregunta

Cómo contabilizar el número de días de la semana o días laborables entre dos fechas. Por ejemplo, el número de días laborables entre dos campos de fecha en la fuente de datos, dos fechas de parámetro o el número de días laborables en un mes.

Entorno

Tableau Desktop

Respuesta

    
         
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN        

Opción 1: Contar el número de días laborables entre dos campos de fecha en la fuente de datos

Paso 1: crear campos calculados
  1. Seleccione Análisis > Crear campo calculado.
  2. En el cuadro de diálogo Campo calculado que se abre, siga estos pasos y haga clic en Aceptar:
    1. Asigne un nombre al campo calculado. En este ejemplo, el nombre del campo calculado es "Fecha del pedido (movido a un día laborable)"
    2. En el campo de fórmula, cree un cálculo similar al siguiente:
       
      IF DATEPART('weekday', [Fecha del pedido]) = 1
      THEN DATEADD('day', 1, [Fecha del pedido])
      ELSEIF DATEPART('weekday', [Fecha del pedido]) = 7
      THEN DATEADD('day', 2, [Fecha del pedido])
      ELSE [Fecha del pedido]
      END
  3. Cree un campo calculado con un nombre como "Fecha de envío (movido a un día laborable)" con un cálculo similar al siguiente:

    IF DATEPART('weekday', [Fecha de envío]) = 1
    THEN DATEADD('day', -2, [Fecha de envío])
    ELSEIF DATEPART('weekday', [Fecha de envío]) = 7
    THEN DATEADD('day', -1, [Fecha de envío])
    ELSE [Fecha de envío]
    END
  4. Cree un campo calculado con un nombre como "Número de días laborables desde el pedido al envío" con un cálculo similar al siguiente:

    MIN(
    DATEDIFF('day', [Fecha del pedido (movido a un día laborable)], [Fecha de envío (movido a un día laborable)])
    + 1
    - 2 * DATEDIFF('week', [Fecha del pedido (movido a un día laborable)], [Fecha de envío (movido a un día laborable)])
    )
Paso 2: crear la vista
  1. Arrastre [ID de pedido] al estante Filas
  2. Opcional: arrastre [Fecha de pedido] y [Fecha de envío] al estante Filas
  3. Arrastre [Número de días laborables desde el pedido al envío] a Texto en la tarjeta Marcas
 
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN        

Opción 2: Contar el número de días laborables cada mes para un campo de fecha

En este ejemplo se usa el conjunto de datos de muestra Superstore para encontrar el número de días laborables en cada mes para la fecha del pedido.
  1. Seleccione Análisis > Crear campo calculado.
  2. En el cuadro de diálogo Campo calculado que se abre, siga estos pasos y haga clic en Aceptar:
    1. Asigne un nombre al campo calculado. En este ejemplo, el nombre del campo calculado es "Fecha de inicio del mes"
    2. En el campo de fórmula, cree un cálculo similar al siguiente:

      DATETRUNC('month', [Fecha del pedido])
  3. Cree un campo calculado con un nombre como "Fecha de fin de mes" con un cálculo similar al siguiente:

    DATEADD('day', -1, DATEADD('month', 1, DATETRUNC('month', [Order Date])))
  4. Siga las instrucciones de la opción 1 usando [Fecha de inicio del mes] en lugar de [Fecha del pedido] y [Fecha de fin de mes] en lugar de [Fecha de envío] 
         
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN

Opción 3: Contar días laborables exceptuando vacaciones

En este ejemplo se usa el conjunto de datos de muestra Superstore para encontrar el número de días laborables entre la fecha del pedido y la fecha de envío de cada pedido.

Paso 1: configurar los datos
  1. Añada una tabla a la fuente de datos original que contiene una lista de los días de vacaciones. En este ejemplo, el nombre de esa tabla es "Vacaciones"
  2. Abra la pestaña Fuente de datos en Tableau Desktop
  3. Añada la tabla "Vacaciones" al área del lienzo
  4. En el cuadro de diálogo Unir, haga lo siguiente:
    1. Seleccione Restantes
    2. En Fuente de datos, seleccione Fecha del pedido
    3. En Vacaciones, seleccione Fecha de vacaciones
    4. Haga clic en el signo de igualdad y seleccione <=
    5. En Fuente de datos, haga clic en Añadir nueva cláusula de unión y seleccione Fecha de envío
    6. En Vacaciones, seleccione Fecha de vacaciones
    7. Haga clic en el signo de igualdad y seleccione >=
 
Nota: [Fecha del pedido] y [Fecha de envío] deben sustituirse por las fechas de inicio y fin reales respectivamente. Si las fechas de inicio y fin son campos calculados, estos cálculos pueden recrearse en cálculos de unión. Si no se puede añadir una tabla a la fuente de datos original con fechas de vacaciones, cree una unión entre bases de datos a una tabla externa que contenga fechas de vacaciones. Esta operación requiere actualizar a Tableau Desktop 10.5 o posterior para utilizar las desigualdades en cláusulas de unión en la funcionalidad de uniones entre bases de datos.
 
Paso 2: crear los cálculos
  1. Vaya a una hoja de trabajo
  2. Siga los pasos 1-1 a 1-3 en las instrucciones de la opción 1 para crear los cálculos de [Fecha del pedido (movido a un día laborable)] y [Fecha de envío (movido a un día laborable)]
  3. Cree un campo calculado con un nombre como "Número de días laborables desde el pedido al envío" con un cálculo similar al siguiente:

    MIN(
    DATEDIFF('day', [Fecha del pedido (movido a un día laborable)], [Fecha de envío (movido a un día laborable)])
    + 1
    - 2 * DATEDIFF('week', [Fecha del pedido (movido a un día laborable)], [Fecha de envío (movido a un día laborable)])
    ) - COUNTD([Fecha de vacaciones])

Paso 3: crear la vista
  1. Arrastre [ID de pedido] al estante Filas
  2. Opcional: arrastre [Fecha de pedido] y [Fecha de envío] al estante Filas
  3. Arrastre [Número de días laborables desde el pedido al envío (excepto vacaciones)] a Texto en la tarjeta Marcas
¿Fue de ayuda este artículo para resolver el problema?