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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

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
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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