Días laborables dentro del mes menos el feriado según el país

Un usuario Pregunto ✅

jcatindoy

HOLA A TODOS,

Estoy tratando de obtener los días hábiles en un mes para varios países usando las vacaciones de cada país, pero soy muy malo en la condición de vacaciones de varios países. 🙂 Por favor ayuda. Gracias por adelantado.

Tabla con festivos de varios paísesTabla con festivos de varios países

Tratando de lograr las tres columnasTratando de lograr las tres columnas

He subido las tablas aquí.

https://drive.google.com/open?id=1fQlptidinFXxK8T-56Rq3QR8guQuQOu4

Siguiente paso: creo que tengo una idea de cómo dar el siguiente paso a continuación, pero si alguien pudiera ayudarme a ahorrar algo de tiempo, sería realmente genial. 🙂

Luego usaré la columna de días laborables reales para calcular la productividad de cada país y cada proveedor dividiendo el total de actividades cerradas por el número de empleados y luego por los días laborables de ese mes.

Tabla de productividadTabla de productividad

danextian

Hola @jcatindoy,

Para obtener los días laborables en un mes (días laborables – días festivos entre semana), debe

  • cree una tabla de calendario que contenga fechas desde el inicio del mes de la fecha más temprana hasta el final del mes de la última fecha en su tabla de hechos.
  • identificar cuáles de las fechas generadas son días de semana

Ingrese la fórmula DAX a continuación como una tabla calculada:

Calendar =
VAR StartDate =
    DATE ( YEAR ( MIN ( 'Productivity Table'[DATE] ) ), MONTH ( MIN ( 'Productivity Table'[DATE] ) ), 1 ) //start of month of the earliest month
VAR EndDate =
    EOMONTH ( MAX ( 'Productivity Table'[DATE] ), 0 ) //end of month of the latest momth
VAR BaseTable =
    CALENDAR ( StartDate, EndDate )
RETURN
    SELECTCOLUMNS (
        BaseTable,
        "Date", [Date],
        "Day Name", FORMAT ( [Date], "ddd" ),
        "Is Weekday?", IF (
            FORMAT ( [Date], "ddd" ) = "Sat"
                || FORMAT ( [Date], "ddd" ) = "Sun",
            0,
            1
        )
    )

Luego, en su tabla de hechos, cree una columna calculada para calcular los días laborables menos los días festivos entre semana.

Count of Workdays = 
VAR StartOfMonth_ =
    STARTOFMONTH ( 'Productivity Table'[DATE] )
VAR EndOfMonth_ =
    EOMONTH ( 'Productivity Table'[DATE], 0 )
VAR Workdays =
    CALCULATE (
        SUM ( Calendar[Is Weekday?] ),
        DATESBETWEEN ( 'Calendar'[Date], StartOfMonth_, EndOfMonth_ )
    )
VAR WeekdayHolidays =
    CALCULATE (
        SUM ( 'Holiday Table'[Is Weekday?] ),
        DATESBETWEEN ( 'Holiday Table'[Date], StartOfMonth_, EndOfMonth_ ),
        'Holiday Table'[Country] = EARLIER ( 'Productivity Table'[Country] )
    ) 
RETURN
    Workdays - WeekdayHolidays

Es el mismo concepto que en su publicación anterior, excepto que, en este escenario, primero se deben determinar las fechas de inicio y finalización.

Owen Auger

Hola @jcatindoy

Aquí hay algunas sugerencias: eche un vistazo y vea si esto realmente tiene sentido, ya que hice algunas suposiciones al configurar esto. 🙂

Ejemplo de pbix aquí.

  1. Para el cálculo de días laborables reales en un mes (o cualquier período de tiempo), le sugiero que cree una tabla de calendario (con día/mes, etc.), junto con una tabla de dimensiones de país. Luego, Holidays está relacionado con Calendar & Country.
  2. Si también colocamos una columna Día de la semana 0/1 en el Calendario, puede crear las siguientes medidas relacionadas con el Día laboral, que tienen sentido siempre que esté filtrado en un país en particular:
    Weekdays = 
    SUM ( 'Calendar'[Weekday] )
    
    Weekday Holidays = 
    CALCULATE ( 
        [Weekdays],
        CROSSFILTER ( 'Calendar'[Date], Holidays[Date], Both )
    )
    
    Actual Workdays = 
    CALCULATE (
        [Weekdays],
        EXCEPT ( VALUES ( 'Calendar'[Date] ), VALUES ( Holidays[Date] ) )
    )
    
    // Alternative:
    Actual Workdays V2 = 
    [Weekdays] - [Weekday Holidays]
  3. Trayendo sus otras tablas, sugeriría que el modelo de datos general tenga tablas de dimensiones para Calendario, País y Proveedor, con las tablas de «hechos» que son Vacaciones, Datos sin procesar y Productividad. Esto es con lo que terminé. RawData y Productividad están relacionados con Calendario/País/Proveedor.imagen.png

  4. Con el modelo configurado de esta manera, creo que tiene los componentes básicos para su medida de productividad. Como prueba, definí las medidas Headcount Sum y Close Counter Sum (supongo que así es como las definiría) y las puse en una tabla con días laborables reales por país/proveedor/mes:
    imagen.png

Espero que esto ayude 🙂

Saludos,

Owen

jcatindoy

Protuberancia.

Por favor ayuda. ¡Gracias!

jcatindoy

En respuesta a jcatindoy

Protuberancia. Por favor ayuda. Gracias

danextian

En respuesta a jcatindoy

Estoy viendo lo que puedo hacer, pero no estoy en casa, así que alguien más probablemente le haya dado una solución antes que yo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *