cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
sz
Frequent Visitor

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

View solution in original post

amitchandak
Super User IV
Super User IV

@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



Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

NikhilKumar
Super User II
Super User II

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

Espero que ayude.


Nikhil
Hit the Thumbs-up button if you find this informative!!
Did I answer your question? Mark my post as a solution!


Proud to be a Super User!

Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

April Update

Check it Out!

Click here to read more about the April 2021 Updates!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.

secondImage

Experience what’s next for Power BI

See the latest Power BI innovations, updates, and demos from the Microsoft Business Applications Launch Event.

Top Kudoed Authors