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
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.

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
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