DATEDIFF Días laborables

Un usuario Pregunto ✅

Benjamín_500

Oigan todos,

Estoy luchando sobre cómo abordar un problema,

Quiero contar los días entre 2 fechas, pero solo contar los días laborables.

Mi fórmula actual es: DATEDIFF (‘Informe'[DeliveryDate],Hoy en dia)

Lo que funciona bien, pero obviamente esto contará los fines de semana, ¿alguien tiene una idea de cómo abordaría esto?

Muchas gracias.

Ben

Hola @ Benjamin_500,

Primero, debe crear una tabla de días festivos que incluya todos los formularios de días festivos Fecha de inicio de entrega hasta Hoy. Luego, cree una relación entre la tabla navideña y su tabla ‘Repot’.

Intento reproducir su escenario usando la fecha de 2017/1/1 a 2017/3/31.

Busque los días festivos de 2017, utilizo «Lista de días festivos federales de EE. UU. En 2017» y la escribo en la tabla de Power BI de la siguiente manera.

2.PNG

Cree una relación entre la tabla de vacaciones y la tabla de fechas.

1.PNG

Use la función DÍA DE LA SEMANA para obtener días de la semana, use la función RELACIONADA para obtener días festivos. Utilice la función if para decidir si el día es día laborable.

WeekDay = WEEKDAY(DateTable[Date])

Holiday = RELATED(Holiday[Holiday])

If work day = IF(OR(DateTable[WeekDay]=1,DateTable[WeekDay]=7),0,IF(ISBLANK(DateTable[Holiday]),1,0))

3.png

El 1 representa el día es día laborable.

Finalmente, cree una medida para calcular el número de días festivos. Y cree una tarjeta visual para mostrar el resultado.

Total work days = CALCULATE(COUNT(DateTable[Date]),FILTER(DateTable,DateTable[If work day]=1))

4.PNG

Si tiene otros problemas, hágamelo saber.

Atentamente,
Angelia

Benjamín_500

Gracias a todos,

Supongo que estaba buscando una solución más automatizada, me pareció extraño que PowerBi no tenga una función de calendario incorporada. Dado que Outlook es un calendario actualizado de MS a nivel regional.

Supongo que viniendo de Tableau y otros similares, esperaba que fuera una funcionalidad incluida. Entiendo que las vacaciones pueden ser más difíciles de hacer, pero hubiera pensado que los días de semana eran más rectos.

Seguiré investigando y si encuentro algo útil, lo publicaré aquí.

Gracias a todos,

Ben

En respuesta a Benjamín_500

Hola @ Benjamin_500 ,

>> Me pareció extraño que PowerBi no tenga una función de calendario incorporada.

Hay una función de calendario en PowerBI, puede hacer clic en Nueva tabla en Modelado en la página de inicio, crear una tabla de fechas usando la función de calendario.

Atentamente,
Angelia

Benjamín_500

En respuesta a v-huizhn-msft

@ v-huizhn-msft Hola Angela,

Gracias por eso, todavía no sabía eso, solo he estado trabajando con PBi durante 2 semanas, así que todavía estoy encontrando mis pies.

Supongo que esa es la mejor opción para mí, pero me preocupan los conjuntos de datos a largo plazo.

Mi equipo crea informes y paneles para el resto de la empresa. Me preocupa que si estos no se completan automáticamente cada año, veré una gran cantidad de solicitudes para solucionar problemas de fechas.

Tendré que pensar cómo abordar este largo plazo, pero por ahora esto debería satisfacer mis necesidades.

Gracias de nuevo,

Ben

En respuesta a Benjamín_500

Hola @ Benjamin_500,

¿Resuelve su problema? Marque la respuesta como respuesta si le resulta útil, lo que ayudará a más personas a encontrar una solución. Gracias por entender.

Atentamente,
Angelia

Hola @ Benjamin_500,

Primero, debe crear una tabla de días festivos que incluya todos los formularios de días festivos Fecha de inicio de entrega hasta Hoy. Luego, cree una relación entre la tabla navideña y su tabla ‘Repot’.

Intento reproducir su escenario usando la fecha de 2017/1/1 a 2017/3/31.

Busque los días festivos de 2017, utilizo «Lista de días festivos federales de EE. UU. En 2017» y la escribo en la tabla de Power BI de la siguiente manera.

2.PNG

Cree una relación entre la tabla de vacaciones y la tabla de fechas.

1.PNG

Use la función DÍA DE LA SEMANA para obtener días de la semana, use la función RELACIONADA para obtener días festivos. Utilice la función if para decidir si el día es día laborable.

WeekDay = WEEKDAY(DateTable[Date])

Holiday = RELATED(Holiday[Holiday])

If work day = IF(OR(DateTable[WeekDay]=1,DateTable[WeekDay]=7),0,IF(ISBLANK(DateTable[Holiday]),1,0))

3.png

El 1 representa el día es día laborable.

Finalmente, cree una medida para calcular el número de días festivos. Y cree una tarjeta visual para mostrar el resultado.

Total work days = CALCULATE(COUNT(DateTable[Date]),FILTER(DateTable,DateTable[If work day]=1))

4.PNG

Si tiene otros problemas, hágamelo saber.

Atentamente,
Angelia

che0912crw

En respuesta a v-huizhn-msft

Excelente explicación, tengo dos preguntas,

1. ¿Cómo se hace en el caso de tener vacaciones de varios países?

Pensando en una empresa multinacional. Al tener varios países, ya no podríamos hacer la relación 1: 1 entre la tabla de fecha y la tabla de días festivos porque las fechas se repetirían cuando hay diferentes días festivos en el mismo día. Por lo tanto, la función RELACIONADA ya no se pudo utilizar.

2. ¿Y cómo sumar las vacaciones de cada empleado (que vive en diferentes países)?

¡Gracias por adelantado!

Anónimo

En respuesta a v-huizhn-msft


@ v-huizhn-msft escribió:

Hola @ Benjamin_500,

Primero debe crear una tabla de días festivos que incluya todos los formularios de días festivos Fecha de inicio de entrega hasta Hoy. Luego, cree una relación entre la tabla navideña y su tabla ‘Repot’.

Intento reproducir su escenario usando la fecha de 2017/1/1 a 2017/3/31.

Busque los días festivos de 2017, utilizo «Lista de días festivos federales de EE. UU. En 2017» y la escribo en la tabla de Power BI de la siguiente manera.

2.PNG

Cree una relación entre la tabla de vacaciones y la tabla de fechas.

1.PNG

Use la función DÍA DE LA SEMANA para obtener días de la semana, use la función RELACIONADA para obtener días festivos. Utilice la función if para decidir si el día es día laborable.

WeekDay = WEEKDAY(DateTable[Date])

Holiday = RELATED(Holiday[Holiday])

If work day = IF(OR(DateTable[WeekDay]=1,DateTable[WeekDay]=7),0,IF(ISBLANK(DateTable[Holiday]),1,0))

3.png

El 1 representa el día es día laborable.

Finalmente, cree una medida para calcular el número de días festivos. Y cree una tarjeta visual para mostrar el resultado.

Total work days = CALCULATE(COUNT(DateTable[Date]),FILTER(DateTable,DateTable[If work day]=1))

4.PNG

Si tiene otros problemas, hágamelo saber.

Atentamente,
Angelia


Hola @ v-huizhn-msft Angelia,

Tengo el mismo problema, su solución es excelente, sin embargo, esto dará el resultado total durante un año. cómo obtener días laborales por mes. es decir

20 de enero

19 de febrero

También el 21 de marzo. Estoy un poco luchando con el código dax. Gracias de nuevo. ¡Sigan con el buen trabajo!

Bengisby

En respuesta a v-huizhn-msft

Hola @ v-huizhn-msft, esta es una gran solución y estoy cerca de resolver mi problema, pero ¿cómo puedo insertar el resultado de la medida como un valor en la nueva columna? Necesito el valor de los días hábiles para CADA FILA de datos , no como una única medida resumida. ¿Alguna idea?

clubspec

En respuesta a Bengisby

Hola,

Yo también me quedé en este paso. ¿Cómo utilizo este resultado de medida para calcular la columna?

Gracias por su ayuda de antemano.

hmedinaa

En respuesta a v-huizhn-msft

No puedo ver dónde está el cálculo para encontrar los días de las semanas con el escenario usando la fecha de 2017/1/1 a 2017/3/31.

prakashacharya

En respuesta a v-huizhn-msft

¿Cómo puedo filtrar para mostrar los días laborables solo para ese mes?

Archie1

En respuesta a prakashacharya

Hola @prakashacharya y @hmedinaa

Por favor, encuentre mi alma a continuación para encontrar no. de días laborables excepto festivos y fines de semana.

WorkingDays_FiscalMTH = CALCULATE ((sum (‘Calendario'[.IsWorkingDay]) +1), ALLEXCEPT (‘Calendario’, ‘Calendario'[fiscalYear],’Calendario'[fiscalQuarter],’Calendario'[fiscalMonth]))

O

Usar

WorkingDays_MTH = CALCULATE ((sum (‘Calendario'[.IsWorkingDay]) +1), ALLEXCEPT (‘Calendario’, ‘Calendario'[Year],’Calendario'[Quarter],’Calendario'[Month]))

Nota: Suponiendo que ya tenía una tabla de calendario con año fiscal, trimestre fiscal y mes fiscal.

Espero esto ayuda !!

Salud,

Archie

Anónimo

En respuesta a Archie1

Buenos dias,

He seguido estas instrucciones para calcular los días laborables. De hecho, tengo una tabla con los sábados, domingos y festivos. Pero no obtengo lo que quiero. ¿Usted me podría ayudar?

Además, tengo una tabla como esta:

IDENTIFICACIÓN Fecha de inicio Fecha final DATEDIFF DATEDIFF1
123 01/01/2018 02/01/2018 1 ?
124 01/05/2018 01/10/2018 5 ?
125 15/01/2018 01/02/2018 17 ?
126 18/01/2018 20/01/2018 2 ?

Obtuve un DATEDIFF entre fechas pero quiero los descuentos DATEDIFF los sábados, domingos y festivos. Pensé en calcular cuántos sábados, domingos y feriados hay entre la fecha de inicio y la fecha final y luego dejarlo en la columna DATEDIFF. Pero no sé cómo debería decírselo a PowerBI.

Saludos

Archie1

En respuesta a prakashacharya

Hola @prakashacharya,

No estoy seguro de si ha recibido su respuesta o no.

Aquí está la respuesta,

Si está planeando obtener un no total. de días, entonces debe usar COUNTROWS o la función SUM en su campo principal.

por ejemplo: Nofworkingdays_Month = CALCULATE (COUNTROWS (‘mes’), Dimtable[if working day] = 1)

donde, Mes = DATESINPERIOD (‘Calendario'[Date],[ThisMonth],1 MES)

Este mes = FECHA (AÑO ([Today]), MES([Today]), 1)

Hoy = FECHA (AÑO (Ahora ()), MES (AHORA ()), DÍA (AHORA ()))

Para obtener más detalles, consulte este enlace: https: //blog.andredevelopment.com/post/power-bi-desktop-fiscal-comparison-part-1-setting-up-for-the -…

Saludos, Archie

Benjamín_500

En respuesta a v-huizhn-msft

Hola @ v-huizhn-msft (Angelia)

Gracias por esto, sin embargo, esta es una solución incómoda, se basa en que la tabla se actualice cada año y se complete con precisión durante todo un año para empezar.

Si bien podríamos hacer una tabla central de «Vacaciones» para que todos los usuarios también la vinculen, es el tipo de cosas que siempre se quedan atrás debido a su baja prioridad frente a otras tareas.

Supongo que, viniendo de Tableau, donde simplemente hizo clic en «Días de la semana» y funcionó todo para usted, estaba buscando algo parecido.

Gracias por la idea, la tendré en cuenta si no encuentro una solución mejor.

Saludos cordiales,

Ben

Perro

Hola @ Benjamin_500

Si está buscando algo dentro de DAX, el siguiente enfoque es el mejor que he visto hasta ahora.

https://powerpivotpro.com/2012/11/networkdays-equivalent-in-powerpivot/

en esencia, pasa por la creación de una columna calculada de «IsWorkDay» con un 1 o 0 como resultado, luego suma esta columna usando el filtro de fechas. es un enfoque simple y agradable.

Andy_40

En respuesta a Perro

Hola,

El problema es que esta solución no funcionará si desea ver la diferencia entre dos marcas de tiempo y desea excluir los días hábiles entre ellas.

Una solución probable como solución temporal es simplemente tomar

  1. La diferencia entre dos fechas usando Datediff y
  2. Restar esto creando otro calendario que pueda proporcionar el número de días festivos entre las fechas.

Creo que PowerBI debería crear Networkdays como Excel 365 para hacer la vida más fácil a los usuarios.

Gracias

Anand

CoreyP

En respuesta a Andy_40

Si desea contar el número de días laborables entre dos fechas … simplemente SUMA la columna «Es día laborable» de su tabla de fechas entre las fechas que desee.

Ex)

Fecha | Es Workday

1/1/19 0

1/2/19 1

1/3/19 1

1/4/19 1

5/1/19 1

6/1/19 1

7/1/19 0

Nilsoo

Quizás esto ayude:

https: //support.office.com/en-us/article/NETWORKDAYS-function-48e717bf-a7a3-495f-969e-5005e3eb18e7? u …

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *