Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

Diferencia entre fechas teniendo en cuenta solo los días laborables

Estoy teniendo un pequeño desafío contando el número correcto de días entre dos fechas.

Si utilizo la función DateDiff no tiene en cuenta el hecho de que hay días de fin de semana en el calendario.

Si uso la función Datesbetween para contar las filas de la tabla Date filtrando los días de fin de semana, solo funciona bien si la fecha de inicio es menor que la fecha de finalización.

Tengo una situación en la que la fecha de inicio puede ser posterior a la fecha supuestamente final (datos incorrectos, supongo).

¿Hay un trabajo para contar el número de días entre dos fechas (positivas o negativas) Y contar solo los días de la semana?

1 ACCEPTED SOLUTION
v-easonf-msft
Community Support
Community Support

Hola, @sz

Debe crear una columna calculada Is_WorkDay 1 o 0 para indicar si se trata de un día laborable o no en la tabla de calendario.

Is_workday = IF( NOT WEEKDAY('Calendar'[Date],2)   in {6,7},1,0) 

Para evitar la situación en la que la fecha de inicio es mayor que la fecha de finalización, puede crear una columna calculada como se muestra a continuación en la tabla de hechos (aquí establecemos dos variables "max1" y "min1" para obtener la fecha en la tabla)

_Workdays = 
VAR max1 =
    MAX ( 'Table'[StartDate], 'Table'[EndDate] )
VAR min1 =
    MIN ( 'Table'[StartDate], 'Table'[EndDate] )
RETURN
    CALCULATE (
        SUM ( 'Calendar'[Is_workday] ),
        ALL ( 'Calendar' ),
        DATESBETWEEN ( 'Calendar'[Date], min1, max1 )
    )

39.png

Saludos
Equipo de soporte de la comunidad _ Eason

View solution in original post

3 REPLIES 3
v-easonf-msft
Community Support
Community Support

Hola, @sz

Debe crear una columna calculada Is_WorkDay 1 o 0 para indicar si se trata de un día laborable o no en la tabla de calendario.

Is_workday = IF( NOT WEEKDAY('Calendar'[Date],2)   in {6,7},1,0) 

Para evitar la situación en la que la fecha de inicio es mayor que la fecha de finalización, puede crear una columna calculada como se muestra a continuación en la tabla de hechos (aquí establecemos dos variables "max1" y "min1" para obtener la fecha en la tabla)

_Workdays = 
VAR max1 =
    MAX ( 'Table'[StartDate], 'Table'[EndDate] )
VAR min1 =
    MIN ( 'Table'[StartDate], 'Table'[EndDate] )
RETURN
    CALCULATE (
        SUM ( 'Calendar'[Is_workday] ),
        ALL ( 'Calendar' ),
        DATESBETWEEN ( 'Calendar'[Date], min1, max1 )
    )

39.png

Saludos
Equipo de soporte de la comunidad _ Eason

amitchandak
Super User
Super User

@sz , Compruebe la segunda página de diferencia de día de trabajo

https://www.dropbox.com/s/y47ah38sr157l7t/Order_delivery_date_diff.pbix?dl=0

Anonymous
Not applicable

@sz Por favor, eche un vistazo a este https://www.sqlbi.com/articles/counting-working-days-in-dax/

Espero que ayude.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors