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

Obtenga la diferencia entre 2 fechas excluyendo los fines de semana. Modo de almacenamiento: Consulta directa

Hola

Estoy tratando de calcular la diferencia de días entre 2 fechas: 'SubmittedDate' y 'LastModifiedDate' excluyendo los fines de semana.

jgarcin8_0-1643243363124.png

Tengo 2 tablas sql aquí:

*Tabla 'Query1' en la que tengo los campos "'SubmittedDate' y 'LastModifiedDate'

jgarcin8_1-1643243463685.png

*Tabla 'Query2' que es una tabla de Calendario y tengo una columna ('IsWeekday') para identificar sábados y domingos.

jgarcin8_2-1643243564802.png

jgarcin8_3-1643243637459.png

Sábados y domingos = 'Falso'

Lunes a Viernes='Verdadero'

¿Cómo puedo combinar estas 2 tablas para obtener el diff en días? Mis tablas están en modo de almacenamiento: DirectQuery, por lo que tengo problemas con las funciones "calcular" o "contar".

Realmente aprecio que ayudes a @amitchandak

¡Muchas gracias!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Pruebe esto y vea si funciona (como columna)

Working Days Calc = 
DateDiff ('Query1'[SubmittedDate], 'Query1'[LastModifiedDate], Day) -
(
   CALCULATE (
          countrows('Query2'),
          'Query2'[IsWeekDay] = FALSE(),
          DatesBetween('Query2'[Date], 'Query1'[SubmittedDate], 'Query1'[LastModifiedDate] - 1)
   )
)

De otra manera (simplificado)

Working Days Calc = 
   CALCULATE (
          COUNTROWS('Query2'),
          DatesBetween('Query2'[Date], 'Query1'[SubmittedDate], 'Query1'[LastModifiedDate] - 1), 
          'Query2'[IsWeekDay] = FALSE(),
          All('Query2')
  )

Lo único que puede necesitar considerar en función de su requisito es hacer "-1", para incluir el día final o no, depende de sus requisitos.

View solution in original post

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

Hola

¡Cambié el Dashboard a "Modo de importación" y la fórmula funciona! 😁 ¡Muchas gracias!

Syndicate_Admin
Administrator
Administrator

Pruebe esto y vea si funciona (como columna)

Working Days Calc = 
DateDiff ('Query1'[SubmittedDate], 'Query1'[LastModifiedDate], Day) -
(
   CALCULATE (
          countrows('Query2'),
          'Query2'[IsWeekDay] = FALSE(),
          DatesBetween('Query2'[Date], 'Query1'[SubmittedDate], 'Query1'[LastModifiedDate] - 1)
   )
)

De otra manera (simplificado)

Working Days Calc = 
   CALCULATE (
          COUNTROWS('Query2'),
          DatesBetween('Query2'[Date], 'Query1'[SubmittedDate], 'Query1'[LastModifiedDate] - 1), 
          'Query2'[IsWeekDay] = FALSE(),
          All('Query2')
  )

Lo único que puede necesitar considerar en función de su requisito es hacer "-1", para incluir el día final o no, depende de sus requisitos.

Hola

Gracias por la rápida respuesta. Tengo el siguiente número:

jgarcin8_1-1643254431670.png

El mismo problema con ambas fórmulas 😞

a) ¿Intentaste hacerlo como Nueva Columna?

b) 'Query2'[IsWeekDay] = "Falso" ... cambiar esto.

Está diciendo que los tipos de datos son incorrectos

Si esto no funciona, comparta los tipos de datos

Hola

Sí, lo intenté como "Nueva columna".

Cambié a 'Query2'[IsWeekDay] = "Falso" ... y parece que para esa frase funciona.

Pero ahora aparece esto:

jgarcin8_0-1643255128016.png

¿Puede compartir el .pbix del archivo ... ? (eliminar la información confidencial)

Nota: Puede crear con datos de maqueta y luego compartir, por favor, lo siento difícil de diagnosticar sin el archivo pbix

Hola

¡Cambié el Dashboard a "Modo de importación" y la fórmula funciona!

¡Muchas gracias!

¡Me alegro de que haya funcionado al final!

... lo siento a veces si no tenemos código y reproducción de errores, es difícil ...

Syndicate_Admin
Administrator
Administrator

Pruebe esto y vea si funciona

DateDiff ('Query1'[SubmittedDate], 'Query1'[LastModifiedDate], Day) -
(
   CALCULATE (
          countrows('Query2'),
          'Query2'[IsWeekDay] = FALSE(),
          DatesBetween('Query2'[Date], 'Query1'[SubmittedDate], 'Query1'[LastModifiedDate])
   )
)

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.