Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Anonymous
Not applicable

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.

Anonymous
Not applicable

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

Anonymous
Not applicable

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
July 2024 Power BI Update

Power BI Monthly Update - July 2024

Check out the July 2024 Power BI update to learn about new features.

PBI_Carousel_NL_June

Fabric Community Update - June 2024

Get the latest Fabric updates from Build 2024, key Skills Challenge voucher deadlines, top blogs, forum posts, and product ideas.

Top Solution Authors