cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Problema de lógica de WorkingDays

Estimados todos,

Mi requisito es calcular los WorkingDays entre dos fechas excluyendo los fines de semana.

fecha de iniciofecha de finalizaciónDías laborables
4/6/20204/7/20202
5/21/2020 0
5/21/20205/21/20201
5/21/20205/29/20207

la expresión debajo está dando error,"La fecha de inicio o la fecha de finalización en la función Calendario no puede ser valor en blanco".

Días laborables =
VAR YourDate = if(Table[enddate]= BLANK(),BLANK(),Table[enddate])
DEVOLUCIÓN
CUENTAS (
FILTRO (
ADDCOLUMNS ( CALENDARIO ( Tabla[fecha de inicio], YourDate ), "Día de la semana", WEEKDAY ( [Fecha], 2) ),
[Día de la semana] 1 de <>
&& [Día de la semana] 7 <>
)
)


Por favor, guíame.

Suras

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Allí, @suren947;

Puede modificar el dax de la siguiente manera:

WorkingDays = 
VAR YourDate =
    IF ( [enddate] = BLANK (), [startdate], [enddate] )
var _count=
    COUNTROWS (
        FILTER (
            ADDCOLUMNS (
                CALENDAR ( [startdate], YourDate ),
                "Day of Week", WEEKDAY ( [Date], 1 )),
            [Day of Week] <> 1&& [Day of Week] <> 7) )
return IF([enddate]=BLANK(),0,_count)

El resultado final se muestra a continuación:

vyalanwumsft_0-1632459029192.png

Saludos
Apoyo a la comunidad Team_ Yalan Wu
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

Allí, @suren947;

Puede modificar el dax de la siguiente manera:

WorkingDays = 
VAR YourDate =
    IF ( [enddate] = BLANK (), [startdate], [enddate] )
var _count=
    COUNTROWS (
        FILTER (
            ADDCOLUMNS (
                CALENDAR ( [startdate], YourDate ),
                "Day of Week", WEEKDAY ( [Date], 1 )),
            [Day of Week] <> 1&& [Day of Week] <> 7) )
return IF([enddate]=BLANK(),0,_count)

El resultado final se muestra a continuación:

vyalanwumsft_0-1632459029192.png

Saludos
Apoyo a la comunidad Team_ Yalan Wu
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

Syndicate_Admin
Administrator
Administrator

Pruebe esta expresión de columna en su lugar. Reemplace WD por el nombre real de la tabla.

WDays =
VAR enddate =
IF ( ISBLANK ( WD[enddate] ), TODAY (), WD[enddate] )
Resultado VAR =
CUENTAS (
FILTRO (
CALENDARIO ( WD[startdate], enddate ),
WEEKDAY ( [Date] ) IN { 1, 2, 3, 4, 5 }
)
)
DEVOLUCIÓN
IF ( ISBLANK ( WD[enddate] ), 0, resultado )

Palmadita

Gracias Pat. tu expresión funciona pero no se espera

cuando hay fechas futuras en startdate, es decir, startdate mayor que enddate (startdate>enddate) ex:(9/10/2021 > 9/8/2021).

Si hay fechas futuras en startdate, haga que startdate esté en blanco y también para cualquier espacio en blanco en startdate o enddate los reemplazamos con blanks/0 pero no con Today()

Por favor, sugiera

Cualquier sugerencias por favor

Hay @suren947

Intente agregar otra condición a @mahoneypat medida, si desea mostrar 0, cuando la fecha de inicio es más rallada que la fecha de finalización o uno de esos elementos de fecha está en blanco:

WDays =
DÓNDE fecha de finalización =
SI ( ISBLANK ( WD[fecha de finalización] ), HOY (), WD[enddate] )
DÓNDE resultado =
CUENTAS (
FILTRO (
CALENDARIO ( WD[fecha de inicio], fecha de finalización ),
DÍA LABORABLE ( [Fecha] ) EN { 1, 2, 3, 4, 5 }
)
)
DEVOLUCIÓN
SI ( WD[startdate]>WD[enddate]||ISBLANK ( WD[fecha de finalización] )|| ISBLANK ( WD[startdate] ), 0, resultado )

Si este post Ayuda, por favor considere aceptarél como la soluciónpara ayudar a los otros miembros a encontrarlo más rápidamente.

Aprecia tus felicitaciones✌️!!

Thank you Vahid para su respuesta pero the expresión es shdeber debajo del mensaje. Por favor help

"La fecha de inicio en la función Calendario no puede ser posterior a la fecha de finalización".

Hay @suren947

Pruebe esta expresión de columna y reemplace WD con el nombre de la tabla real.

WDays =
IF (
    WD[startdate] > WD[enddate]
        || ISBLANK ( WD[enddate] )
        || ISBLANK ( WD[startdate] ),
    0,
    COUNTROWS (
        FILTER (
            CALENDAR ( WD[startdate], WD[enddate] ),
            WEEKDAY ( [Date] ) IN { 1, 2, 3, 4, 5 }
        )
    )
)

Si este post Ayuda, por favor considere aceptarél como la soluciónpara ayudar a los otros miembros a encontrarlo más rápidamente.

Aprecia tus felicitaciones🙏!!

Thank tú Vahid para sus respuestas. Pero no puedo obtener los valores correctos como se muestra en la columna

DÍAS DE RED(A2,B2)-1

¿Podría por favor ayudarme aquí?

fecha de iniciofecha de finalizaciónWDaysDÍAS DE RED(A2,B2)-1
4/6/20204/7/202021
5/21/2020 00
5/21/20205/21/202010
5/21/20205/29/2020426
5/21/20206/3/20202209
5/22/2020 00
5/22/20206/3/20203878
5/26/2020 00
6/18/20206/18/202060
8/18/20218/24/2021654
8/18/20218/25/2021425
8/18/20218/26/2021776
8/19/2021 00
8/19/20218/19/20213550
8/19/20218/20/2021771
8/19/20218/21/202191
8/19/20218/23/2021452
8/19/20218/25/2021254
8/20/2021 00

Helpful resources

Announcements
Power BI October Update 2021.jpg

Power BI Release

Click here to read more about the October 2021 Release!

Microsoft Ignite 768x460.png

Find your focus

Explore the latest tools,training sessions,technical expertise, networking and more.

Power BI Womens Summit 2021 768 x460.jpg

Interviews, learning sessions, allies, and more!

#PowerBIWomenSummit

Teds Dev Camp Oct. 2021 768x460.jpg

Power BI Dev Camp - October 28th, 2021

Mark your calendars and join us for our next Power BI Dev Camp!