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

Cómo calcular días laborables con diferentes regiones

Hola

SalesIDRegiónFecha de pedidoFecha de entregaDías laborables
SO1001Dubai1/7/202130/7/202122
SO1002REINO UNIDO7/7/202123/7/202113
SO1003Colombia21/7/202128/7/20216

Cómo calcular los días laborables.

1. Dubái - Excluir "Viernes y Sábado"

2. Reino Unido y Colombia - Excluir "Sábado y Domingo".

He creado una tabla de "Calendario" con la siguiente consulta.

calendar dim = CALENDAR(IF(MONTH(TODAY()) > 3, CONCATENATE(YEAR(TODAY())-1, "-04-01"), CONCATENATE(YEAR(TODAY())-2, "-04-01")), TODAY())

¿Puede ayudarnos?

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hay @venal ,

En la tabla de calendario, cree las dos columnas siguientes

Dubai - Exclude "Friday & Saturday" = 
var _week=WEEKDAY([Date],2)
return IF(_week=5||_week=6,0,1)
UK & Colombia - Exclude "Saturday & Sunday" = 
var _week=WEEKDAY([Date],2)
return IF(_week=6||_week=7,0,1)

4.png

A continuación, cree la columna calculada en la tabla principal

WorkingDays =
SWITCH (
    [Region],
    "Dubai",
        CALCULATE (
            COUNTROWS ( 'Table 2' ),
            FILTER (
                'Table 2',
                [Date] <= [DeliveryDate]
                    && [Date] >= [OrderDate]
                    && [Dubai - Exclude "Friday & Saturday"] = 1
            )
        ),
    "UK",
        CALCULATE (
            COUNTROWS ( 'Table 2' ),
            FILTER (
                'Table 2',
                [Date] <= [DeliveryDate]
                    && [Date] >= [OrderDate]
                    && [UK & Colombia - Exclude "Saturday & Sunday"] = 1
            )
        ),
    "Colombia",
        CALCULATE (
            COUNTROWS ( 'Table 2' ),
            FILTER (
                'Table 2',
                [Date] <= [DeliveryDate]
                    && [Date] >= [OrderDate]
                    && [UK & Colombia - Exclude "Saturday & Sunday"] = 1
            )
        )
)

5.png

Los días hábiles de SO1001 deben ser 21. Por favor, compruebe de nuevo.

Saludos

Esteban Tao

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

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Hola equipo,

Gracias a todos por sus sugerencias.

Una validación más debe agregar, por ejemplo, los días festivos nacionales de Dubai deben excluir y, de la misma manera, los días festivos nacionales de otras regiones también excluyen.

Encuentre los siguientes datos de muestra.

RegiónDía festivo
Dubai1/1/2021
Dubai11/5/2021
Dubai12/5/2021
Dubai13/5/2021
Dubai14/5/2021
Dubai15/5/2021
Dubai19/7/2021
Dubai20/7/2021
Dubai21/7/2021
Dubai22/7/2021
Dubai12/8/2021
Dubai18/10/2021
Dubai19/10/2021
Dubai30/11/2021
Dubai2/12/2021
REINO UNIDO1/1/2021
REINO UNIDO2/4/2021
REINO UNIDO5/4/2021
REINO UNIDO3/5/2021
REINO UNIDO31/5/2021
REINO UNIDO30/8/2021
REINO UNIDO27/12/2021
REINO UNIDO28/12/2021

Gracias de antemano.

@venal

Syndicate_Admin
Administrator
Administrator

Hay @venal ,

En la tabla de calendario, cree las dos columnas siguientes

Dubai - Exclude "Friday & Saturday" = 
var _week=WEEKDAY([Date],2)
return IF(_week=5||_week=6,0,1)
UK & Colombia - Exclude "Saturday & Sunday" = 
var _week=WEEKDAY([Date],2)
return IF(_week=6||_week=7,0,1)

4.png

A continuación, cree la columna calculada en la tabla principal

WorkingDays =
SWITCH (
    [Region],
    "Dubai",
        CALCULATE (
            COUNTROWS ( 'Table 2' ),
            FILTER (
                'Table 2',
                [Date] <= [DeliveryDate]
                    && [Date] >= [OrderDate]
                    && [Dubai - Exclude "Friday & Saturday"] = 1
            )
        ),
    "UK",
        CALCULATE (
            COUNTROWS ( 'Table 2' ),
            FILTER (
                'Table 2',
                [Date] <= [DeliveryDate]
                    && [Date] >= [OrderDate]
                    && [UK & Colombia - Exclude "Saturday & Sunday"] = 1
            )
        ),
    "Colombia",
        CALCULATE (
            COUNTROWS ( 'Table 2' ),
            FILTER (
                'Table 2',
                [Date] <= [DeliveryDate]
                    && [Date] >= [OrderDate]
                    && [UK & Colombia - Exclude "Saturday & Sunday"] = 1
            )
        )
)

5.png

Los días hábiles de SO1001 deben ser 21. Por favor, compruebe de nuevo.

Saludos

Esteban Tao

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

Hay @venal ,

Puede crear una columna con el siguiente código:

Workdays =
IF (
    working_days[Region] IN { "UK", "Colombia" },
    COUNTROWS (
        FILTER (
            ADDCOLUMNS (
                CALENDAR ( working_days[OrderDate], working_days[DeliveryDate] ),
                "Day of Week", WEEKDAY ( [Date], 2 )
            ),
            [Day of Week] <> 6
                && [Day of Week] <> 7
        )
    ),
    IF (
        working_days[Region] IN { "Dubai" },
        COUNTROWS (
            FILTER (
                ADDCOLUMNS (
                    CALENDAR ( working_days[OrderDate], working_days[DeliveryDate] ),
                    "Day of Week", WEEKDAY ( [Date], 2 )
                ),
                [Day of Week] <> 5
                    && [Day of Week] <> 6
            )
        )
    )
)

Gracias

Samarth

Syndicate_Admin
Administrator
Administrator

@venal , una nueva columna como

BusinessDay =
var _1 = COUNTROWS(FILTER(ADDCOLUMNS(CALENDAR(Table[Start Date],Table[End Date]),"WorkDay", if(WEEKDAY([Date],2) <6,1,0)),[WorkDay] =1))
var _2 = COUNTROWS(FILTER(ADDCOLUMNS(CALENDAR(Table[Start Date],Table[End Date]),"WorkDay", if( not WEEKDAY([Date],2) in {5,6} ,1,0)),[WorkDay] =1))
devolución
if([Región] en {"Dubái"} , _2, _1)

Hola equipo,

Gracias a todos por sus sugerencias.

Una validación más debe agregar, por ejemplo, los días festivos nacionales de Dubai deben excluir y, de la misma manera, los días festivos nacionales de otras regiones también excluyen.

Encuentre los siguientes datos de muestra.

RegiónDía festivo
Dubai1/1/2021
Dubai11/5/2021
Dubai12/5/2021
Dubai13/5/2021
Dubai14/5/2021
Dubai15/5/2021
Dubai19/7/2021
Dubai20/7/2021
Dubai21/7/2021
Dubai22/7/2021
Dubai12/8/2021
Dubai18/10/2021
Dubai19/10/2021
Dubai30/11/2021
Dubai2/12/2021
REINO UNIDO1/1/2021
REINO UNIDO2/4/2021
REINO UNIDO5/4/2021
REINO UNIDO3/5/2021
REINO UNIDO31/5/2021
REINO UNIDO30/8/2021
REINO UNIDO27/12/2021
REINO UNIDO28/12/2021

Gracias de antemano.

@venal

Hay @amitchandak

Gracias por la respuesta.

Si uso la medida anterior en la tabla "Atenuación del calendario", no puedo usar la tabla para otras regiones.

Debido a que excluye Dubai, el resto de todas las regiones son "sábados y domingos" semana santa.

Por lo tanto, es necesario excluir "sábado y domingo" - Reino Unido, Colombia (según los datos anteriores)

"Viernes y sábado" - Dubái

Por favor, compruebe la información anterior y sugiera.

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.