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.
Hola
SalesID | Región | Fecha de pedido | Fecha de entrega | Días laborables |
SO1001 | Dubai | 1/7/2021 | 30/7/2021 | 22 |
SO1002 | REINO UNIDO | 7/7/2021 | 23/7/2021 | 13 |
SO1003 | Colombia | 21/7/2021 | 28/7/2021 | 6 |
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?
Solved! Go to Solution.
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)
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
)
)
)
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.
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ón | Día festivo |
Dubai | 1/1/2021 |
Dubai | 11/5/2021 |
Dubai | 12/5/2021 |
Dubai | 13/5/2021 |
Dubai | 14/5/2021 |
Dubai | 15/5/2021 |
Dubai | 19/7/2021 |
Dubai | 20/7/2021 |
Dubai | 21/7/2021 |
Dubai | 22/7/2021 |
Dubai | 12/8/2021 |
Dubai | 18/10/2021 |
Dubai | 19/10/2021 |
Dubai | 30/11/2021 |
Dubai | 2/12/2021 |
REINO UNIDO | 1/1/2021 |
REINO UNIDO | 2/4/2021 |
REINO UNIDO | 5/4/2021 |
REINO UNIDO | 3/5/2021 |
REINO UNIDO | 31/5/2021 |
REINO UNIDO | 30/8/2021 |
REINO UNIDO | 27/12/2021 |
REINO UNIDO | 28/12/2021 |
Gracias de antemano.
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)
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
)
)
)
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.
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
@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ón | Día festivo |
Dubai | 1/1/2021 |
Dubai | 11/5/2021 |
Dubai | 12/5/2021 |
Dubai | 13/5/2021 |
Dubai | 14/5/2021 |
Dubai | 15/5/2021 |
Dubai | 19/7/2021 |
Dubai | 20/7/2021 |
Dubai | 21/7/2021 |
Dubai | 22/7/2021 |
Dubai | 12/8/2021 |
Dubai | 18/10/2021 |
Dubai | 19/10/2021 |
Dubai | 30/11/2021 |
Dubai | 2/12/2021 |
REINO UNIDO | 1/1/2021 |
REINO UNIDO | 2/4/2021 |
REINO UNIDO | 5/4/2021 |
REINO UNIDO | 3/5/2021 |
REINO UNIDO | 31/5/2021 |
REINO UNIDO | 30/8/2021 |
REINO UNIDO | 27/12/2021 |
REINO UNIDO | 28/12/2021 |
Gracias de antemano.
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.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.