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

Cálculo de una duración con filtros para ciertos valores utilizando solo el más antiguo

Hola a todos

gracias a todos por ayudarse unos a otros, ya aprendí mucho leyendo algunos posts. Ahora choco contra una pared con un problema y espero que alguien pueda señalarme en la dirección correcta.

Quiero calcular una duración entre dos fechas de ciertas acciones. El problema es que mi fuente combina varias acciones y las acciones se pueden repetir, pero solo quiero calcular la duración desde la primera acción. Como antecedentes: Informamos el contenido a ciertos jugadores y también enviamos recordatorios, el sistema recopila todas las fechas de cada mensaje. Para calcular cuánto tiempo estuvo abierto un caso, calculamos la fecha de finalización menos la fecha de la primera acción.

La tabla que tengo se ve algo así:

ID de artículoid de acciónfecha de acciónartículo terminadonombre de la acción
8245405.02.2019 10:42:0020.02.2019 15:13ISP
8224501.02.2019 11:59:0020.02.2019 15:13Servicio
824008.01.2019 16:30:4520.02.2019 15:13ISP
100103.01.2019 10:41:5211.01.2019 11:01ICCAM
1002907.01.2019 15:55:5311.01.2019 11:01ISP

Por lo tanto, me gustaría calcular el tiempo promedio para la acción del ISP, utilizando el más antiguo en la fecha de acción y restando el tiempo terminado. En este ejemplo calcularía la duración de la acción ID 40 y 29 y crearía un promedio.

Puedo pensar en crear de alguna manera una nueva pestaña que solo me da la primera fecha para la acción del ISP o calcularla con una fila de filtros "si" que me da la duración en cada línea que luego puedo filtrar más tarde. ¿Alguien tiene alguna idea y está claro el tema o necesita algo más para ayudar?

Muchas gracias de antemano"

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@purlaub ,

De acuerdo con su descripción, desea obtener la duración promedio entre la primera fecha de acción cuando el nombre de la acción = "ISP" y la fecha y hora terminada de los elementos, ¿verdad?

Si es así, puede usar la siguiente fórmula para obtener todos los segundos entre dos tiempos:

Duration(seconds) = 
var _first=MINX(FILTER(ALL('Table'),[action name]="ISP" && [item id]=MAX('Table'[item id])),[action date])

RETURN (MAX('Table'[item finished])-_first)*60*60*24

Luego, para obtener el promedio:

Average = 
var _t=SUMMARIZE('Table','Table'[item id],"Duration",[Duration(seconds)])
return AVERAGEX(_t,[Duration])

Salida:

Eyelyn9_0-1647913020754.png

Saludos
Eyelyn Qin
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@purlaub ,

De acuerdo con su descripción, desea obtener la duración promedio entre la primera fecha de acción cuando el nombre de la acción = "ISP" y la fecha y hora terminada de los elementos, ¿verdad?

Si es así, puede usar la siguiente fórmula para obtener todos los segundos entre dos tiempos:

Duration(seconds) = 
var _first=MINX(FILTER(ALL('Table'),[action name]="ISP" && [item id]=MAX('Table'[item id])),[action date])

RETURN (MAX('Table'[item finished])-_first)*60*60*24

Luego, para obtener el promedio:

Average = 
var _t=SUMMARIZE('Table','Table'[item id],"Duration",[Duration(seconds)])
return AVERAGEX(_t,[Duration])

Salida:

Eyelyn9_0-1647913020754.png

Saludos
Eyelyn Qin
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Hola @Eyelyn9

Muchas gracias. Lo probé y al principio no funcionó, o me dio otros números que el mío pero que encontré un filtro más que tenía funcionando y esto me da los mismos números que mi complicada solución, mientras que la tuya es bastante bonita y fácil de implementar y no necesita una nueva columna.

¡Así que muchas gracias por su ayuda!

Syndicate_Admin
Administrator
Administrator

Así que lo resolví, pero no de una manera bonita.

Para los interesados, dupliqué la tabla e hice un "grupo por" item_id y como función un min en la fecha de acción. Luego creó una relación con otras tablas e "importó" la información a través de la función relacionada. Ahora filtré a través de ISP de acción y promedio en el nuevo campo. Creo que eso me da los datos que necesito. Me hubiera encantado que se resolviera dentro de la misma tabla o con una función.

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.