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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
Mous007
Helper IV
Helper IV

Duración en días (solo días laborables) para completar una tabla de tareas y fechas

Hola a todos,

Tengo el siguiente código usado para mi tabla de fechas"

Tabla de fechas ?
VAR MinYear - AÑO (MIN ( 'Resumen de extracto de la tabla de historial'[CREATION_DATE]))
VAR MaxYear - Año ( MAX ( 'Resumen extracto de la tabla de historial'[LAST_UPDATE_DATE]) )
devolución
ADDCOLUMNS (
FILTRO (
CALENDARAUTO( ),
Y ( Año ( [Fecha] ) > - Año Mínimo, AÑO ( [Fecha] ) <-MaxYear )
),
"Año calendario", año ( [Fecha] ),
"Month Name", FORMAT ( [Fecha], "MMMM" ),
"Número de mes", MES ( [Fecha] ),
"Weekday", FORMAT ( [Fecha], "ddd" ),
"Número de día de la semana", WEEKDAY( [Fecha] ),
"Period", FORMAT( [Fecha], "MMM-AAAA" ),
"Sorting column", FORMAT( [Date], "YYYYMM" ),
"Número de semana", WEEKNUM([Fecha],2),
"Semana", "W" & FORMAT( [Fecha], "WW-MMM-YY" ),
"Cuarto", "Q" & TRUNC ( ( MES ( [Fecha] ) - 1 ) / 3 ) + 1)
Y mi extracto de datos se parece a lo siguiente:
IDENTIFICADOR DE TAREACREATION_DATELAST_UPDATE_DATE
1049318/DEC/192020-01-10 14:15:34
1049318/DEC/192020-01-13 15:16:05
1049318/DEC/192020-01-14 17:48:09
1049318/DEC/192020-01-14 17:58:17
1049318/DEC/192020-01-14 17:58:21
1049418/DEC/192020-01-09 16:49:13
1051019/DEC/192019-12-19 10:17:33
1051019/DEC/192019-12-19 14:45:12
1051019/DEC/192019-12-24 10:12:56
1051019/DEC/192019-12-24 12:38:07
1051019/DEC/192019-12-30 09:57:31
1051019/DEC/192020-01-07 10:10:37
1051019/DEC/192020-01-07 13:51:37
1051019/DEC/192020-01-07 13:56:21
1051019/DEC/192020-01-07 13:56:24
1051119/DEC/192019-12-19 10:17:24
1051119/DEC/192019-12-23 19:30:12
1051119/DEC/192019-12-24 10:10:00
1051119/DEC/192019-12-24 12:36:49
1051119/DEC/192019-12-30 09:54:15
1051119/DEC/192020-01-07 10:12:46
1051119/DEC/192020-01-07 13:54:51
1051119/DEC/192020-01-07 13:56:21
1051119/DEC/192020-01-07 13:56:24
1051219/DEC/192019-12-19 10:17:11
1051219/DEC/192019-12-23 11:17:15
1051219/DEC/192019-12-23 11:43:06
1051219/DEC/192019-12-23 11:43:09
1052320/DEC/192019-12-24 12:38:43
1052320/DEC/192019-12-30 09:47:56
1052320/DEC/192020-01-07 10:15:36
1052320/DEC/192020-01-07 11:43:28
1052320/DEC/192020-01-07 11:49:11
1052320/DEC/192020-01-07 14:03:57
1052320/DEC/192020-01-07 14:26:28
1052320/DEC/192020-01-07 14:26:35
1052420/DEC/192019-12-24 12:34:57
1052420/DEC/192019-12-27 16:22:18
1052420/DEC/192019-12-27 16:43:07
1052420/DEC/192019-12-27 16:43:09
1052620/DEC/192019-12-20 16:46:10
1052620/DEC/192019-12-24 12:40:12
1052620/DEC/192019-12-27 16:25:34
1052620/DEC/192019-12-27 16:43:07
1052620/DEC/192019-12-27 16:43:10
1052620/DEC/192020-01-07 17:35:21
1052620/DEC/192020-01-08 10:25:02
1052620/DEC/192020-01-08 17:20:40
1052620/DEC/192020-01-09 09:35:58
1052620/DEC/192020-01-09 10:46:11
1052620/DEC/192020-01-09 10:52:30
1052620/DEC/192020-01-09 10:52:32
1052720/DEC/192019-12-24 12:39:08
1052720/DEC/192019-12-27 16:27:49
1052720/DEC/192019-12-27 16:43:07
1052720/DEC/192019-12-27 16:43:10
1052823/DEC/192019-12-23 17:09:39
1052924/DEC/192019-12-24 12:39:30
1052924/DEC/192019-12-27 16:32:02
1052924/DEC/192019-12-27 16:43:07
1052924/DEC/192019-12-27 16:43:10
1053027/DEC/192019-12-27 12:11:58
1053227/DEC/192020-01-07 10:19:23
1053227/DEC/192020-01-07 14:32:27
1053227/DEC/192020-01-07 16:20:30
1053227/DEC/192020-01-08 17:42:16
1053227/DEC/192020-01-08 17:46:58
1053227/DEC/192020-01-08 17:47:01
1053430/DEC/192020-01-07 10:13:44
1053430/DEC/192020-01-07 14:13:28
1053430/DEC/192020-01-07 14:26:29
1053430/DEC/192020-01-07 14:26:36
1053530/DEC/192020-01-07 10:13:24
1053530/DEC/192020-01-07 14:18:00
1053530/DEC/192020-01-07 14:26:29
1053530/DEC/192020-01-07 14:26:35
1053630/DEC/192020-01-07 10:13:06
1053630/DEC/192020-01-07 14:22:13
1053630/DEC/192020-01-07 14:26:29
1053630/DEC/192020-01-07 14:26:36
También he formateado la columna de fechas en el mismo formato y he eliminado la marca de tiempo también.
Tengo varias preguntas con respecto a la tabla de fechas:
1) is my syntax for the variable correct;
VAR MinYear - AÑO (MIN ( 'Resumen de extracto de la tabla de historial'[CREATION_DATE]))
VAR MaxYear - Año ( MAX ( 'Resumen extracto de la tabla de historial'[LAST_UPDATE_DATE]) )
En otras palabras, ¿puedo usar dos columnas de fecha diferentes para crear mi tabla de fechas? o debo utilizar el min y el max de la misma columna? para, por ejemplo, columna Fecha de creación ?
2) I have an issue with the date table as i cant get the weekdays to start on Monday ( monday equal to one) as you can see on the screen shot below. Does this affect my calcuation as i am trying to calculate the average duration time it takes to complete a task from Creation date to Last update date?
Capture.JPG

3) Por último, estoy tratando de calcular el tiempo de duración promedio en días excluyendo los fines de semana que toma una tarea para completar ( fecha de inicio - Fecha de creación y fecha de finalización - Fecha de última actualización). No tengo idea de cómo configurarmi tabla de fechas / modelo para ayudarme a lograr este cálculo y me gustaría su entrada sobre las diferentes maneras en que puedo manejar esto con.

7 REPLIES 7
v-gizhi-msft
Community Support
Community Support

Hola

Para su problema 1 y 2, pruebe esta tabla calculada:

Date table = 
ADDCOLUMNS (
CALENDARAUTO( ),
"Calendar Year", YEAR ( [Date] ),
"Month Name", FORMAT ( [Date], "MMMM" ),
"Month Number", MONTH ( [Date] ),
"Weekday", FORMAT ( [Date], "ddd" ),
"Weekday number", IF(WEEKDAY( [Date] )=1,7,WEEKDAY([Date])-1),
"Period", FORMAT( [Date], "MMM-YYYY" ),
"Sorting column", FORMAT( [Date], "YYYYMM" ),
"Week number" , WEEKNUM([Date],2),
"Week", "W" & FORMAT( [Date], "WW-MMM-YY" ),
"Quarter", "Q" & TRUNC ( ( MONTH ( [Date] ) - 1 ) / 3 ) + 1)

El resultado muestra:

5.PNG

Y estoy confundido acerca de su requisito para el problema 3, ¿podría compartir el resultado esperado como una captura de pantalla?

Esto me ayudará más.

¡Espera tu respuesta!

Saludos

Giotto

Hola @v-gizhi-msft , gracias por su respuesta. Mi tabla de citas parece correcta ahora.

Para la pregunta restante, simplemente quiero calcular la duración en días (solo días laborables) para que se complete una tarea. lo que significa calcuar la duración entre la fecha de creación y la fecha de última actualización en la tabla anterior. Mi problema es obtener el cálculo correctamente solo con días laborables (excluyendo fines de semana) para que más adelante pueda calcular el tiempo medio de procesamiento para todas las solicitudes por período específico.

Por ejemplo, el cálculo de las tres primeras solicitudes de la tabla debe ser casi similar al siguiente:

Id. de entradaFecha de creaciónFecha de última actualizaciónDuración (incluidos los fines de semana)Duración (excluidos los fines de semana)
1049318/DEC/192020-01-10 14:15:342418
1049318/DEC/192020-01-13 15:16:052719
1049318/DEC/192020-01-14 17:48:092820

Estoy más interesado en calcular la última columna: Duración sin fines de semana.

Por favor, aconseje sobre cómo debo proceder en este caso ?

Gracias de antemano

Hola

Por favor, pruebe estas dos medidas:

Duration (Including weekends) = 
DATEDIFF (
    MAX ( 'Summary Extract from History Table'[CREATION_DATE] ),
    MAX ( 'Summary Extract from History Table'[LAST_UPDATE_DATE] ),
    SECOND
) / ( 3600 * 24 )
Duration (Excluding weekends) = 
[Duration (Including weekends)]
    - CALCULATE (
        COUNT ( 'Date table'[Date] ),
        FILTER (
            'Date table',
            'Date table'[Weekday number] in {6,7}
                && 'Date table'[Date]
                    >= MAX ( 'Summary Extract from History Table'[CREATION_DATE] )
                && 'Date table'[Date]
                    <= MAX ( 'Summary Extract from History Table'[LAST_UPDATE_DATE] )
        )
    )

El resultado muestra:

10.PNG

Vea mi archivo pbix adjunto.

Saludos

Giotto

Funciona como magia @v-gizhi-msft !

Muchas gracias por su ayuda. Voy a def estar utilizando su enfoque más a menudo.

amitchandak
Super User
Super User

@Mous007 , En este archivo, compruebe cómo calculé los días laborables

https://www.dropbox.com/s/y47ah38sr157l7t/Order_delivery_date_diff.pbix?dl=0

Es posible que tenga que cambiar el cálculo del día laborable

Como

if(WEEKDAY('Date'[Date],2)>6,0,1)

Hola @amitchandak , por desgracia no puedo descargar archivos en este ordenador y sólo tienen una versión anterior de power bi.

¿Le importaría copiar el dax directamente aquí por favor?

Gracias de antemano

@Mous007 ,

Esto es por días laborables

Working Days = CALCULATE(Sum('Date'[Working day]),VALUES('Order Dim'[Order No]),filter(all('Date'),'Date'[Date]>=[Min Order Date OD] && 'Date'[Date] <=[Max Deilvery OD]))

El descanso se da aquí

https://community.powerbi.com/t5/Community-Blog/Decoding-Direct-Query-in-Power-BI-Part-2-Date-Differ...

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Top Solution Authors