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
PimE
Frequent Visitor

Filtrar días laborables y festivos en una fórmula DAX entre dos fechas

Hola a todos,

Actualmente estoy trabajando en un tablero para una empresa en la industria de la fibra oscura.

El objetivo es administrar y mejorar el tiempo de entrega de los proyectos proporcionando a los líderes del proyecto un panel de Power BI.

Un proyecto tiene 15 pasos de principio a fin. Una vez completado un paso, el líder del proyecto rellena la fecha en la administración del proyecto (Microsoft Dynamics 365). Estos son los datos que uso en Power BI.

Actualmente estoy usando DAX para calcular la diferencia entre:

  1. Fecha del paso X y la fecha actual; O
  2. Fecha del paso X y Stap Y
Ejemplo 1
Días transcurridos sin RfU enviados ?
DATEDIFF(
SELECTEDVALUE('Importar CRM'[Técnicamente listo] ),
HOY(),
Día
)

Ejemplo 2

Días transcurridos por el plazo de entrega
DATEDIFF(
SELECTEDVALUE('Importar CRM'[Listo para proyecto] ),
SELECTEDVALUE('Importar CRM'[iniciar proyecto] ),
Día
)

Lo que quiero lograr

¿Es posible agregar un filtro a la fórmula DAX para calcular solo los días laborables y excluir días festivos? Ya tengo 'The Extended Date Table' de Enterprise DNA y una tabla de vacaciones añadida a mi archivo PowerBI. Pensé que podría usar esto como filtro: 'es día de trabajo SI' y 'es no festivo'

¿O mi fórmula actual es solamente y SIEMPRE va a calcular la diferencia en días entre la fecha X y Y?

Si necesita más información, por favor hágamelo saber.

5 REPLIES 5
v-xicai
Community Support
Community Support

Hola @PimE ,

¿Tienen sentido las sugerencias de los ingenieros? Si es así, marque amablemente la respuesta adecuada como una solución para ayudar a otros que tienen el problema similar y cerrar el caso. Si no, avísame y trataré de ayudarte más.

Saludos

Amy

v-xicai
Community Support
Community Support

Hola @PimE ,

Puede crear primero la tabla de calendario y, a continuación, crear relaciones entre la tabla de calendario, la tabla de datos y el campo Tabla de vacaciones en la fecha, mantener la dirección del filtro cruzado como ambos.

Table: 
DateDim = CALENDAR(MIN(Data[DATE]),MAX(Data[DATE]))

En segundo lugar, cree una columna en la tabla de datos como DAX a continuación.

Column: 

IsWorkDay = IF (WEEKDAY(MAX(DateDim[Date]),2)<=5 && COUNTX(RELATEDTABLE(Holiday),1)<1,1,0)

Para calcular los días laborables excluir días festivos, puede consultar mi respuesta en este casosimilar, y descargar el archivo pbix desde aquí.

Saludos

Amy

Equipo de apoyo a la comunidad _ Amy

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

PimE
Frequent Visitor

Por favor acepte mis disculpas por la respuesta retrasada.

Gracias por proporcionarme una solución diferente a mi problema.

Lo intenté (con la ayuda del archivo pbix proporcionado) pero no tenía éxito. Me temo que esta no es la solución que estoy buscando.

Permítanme darles un poco más de información proporcionando una captura de pantalla del panel.

https://snipboard.io/VjDa67.jpg

(el tablero se ha anonimizado)

R: la fecha de confirmación del pedido por parte del cliente del proyecto W1671

B: la fecha de 'bestek verzonden' del proyecto W1671. Este paso no se ha completado.

C: dado que B aún no se ha rellenado, quiero que Power BI calcule la diferencia en los días laborables entre la fecha A y la fecha actual del proyecto W1671

AllisonKennedy
Super User
Super User

Puede hacer un FILTER en la tabla Date, luego SUMX la columna IsWorkingDay si es 0 y 1, o usar una instrucción if si no.

WorkingDaysTM
VAR lastdate á MAX(DimDate[Fecha])
devolución
SUMX(FILTER(ALL(DimDate), DimDate[Date] <-lastdate), DimDate[IsWorkingDay])

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

Gracias por tu rápida respuesta Allison.

Esta es la segunda vez que escribo esta respuesta, por alguna razón la anterior no publicó el lunes....


@AllisonKennedy escribió:
Puede hacer un FILTER en la tabla Date, luego SUMX la columna IsWorkingDay si es 0 y 1, o usar una instrucción if si no.

Agregué el filtro IsWorkingDay a la tabla y filtré en 'True'. Esto no cambió la cantidad de días.


@AllisonKennedy escribió:
WorkingDaysTM
VAR lastdate á MAX(DimDate[Fecha])
devolución
SUMX(FILTER(ALL(DimDate), DimDate[Date] <-lastdate), DimDate[IsWorkingDay])

Me temo que no puedo seguir tu sugerencia. ¿Esta fórmula es parte de su primera solución? ¿O es una nueva forma de calcular la diferencia entre la fecha X y la Y? ¿Y tengo que cambiar la fórmula (para que funcione con mis datos)?

Para ser honesto con usted, esperaba una solución que solo agregara un filtro a mi fórmula DAX. Espero que esto te ayude a 🙂

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.