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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Aumentar la eficiencia de la medición

Hola
Tengo un conjunto de datos de consulta directa de aproximadamente 3000 filas. Una de las filas contiene un valor int de segundos.
En PBI he hecho una medida que es simplemente MAX(table[DurationInSecs]), pero lo he configurado para que sea un formato dinámico y en el formato he hecho esto:

Fueron _vSecs = SELECTEDMEASURE()
Fueron _vMins = INT(DIVIDIR(_vSecs, 60, 0))
Fueron _vRemainingSecs = INT(MANERA(_vSecs, 60))
Fueron _vHours = INT(DIVIDIR(_vMins, 60,0))
Fueron _vRemainingMins = INT(MANERA(_vMins, 60))
Fueron _vDays = INT(DIVIDIR(_vHours, 24, 0))
Fueron _vRemainingHours = INT(MANERA(_vHours, 24))

Fueron _d = SUSTITUTO(_vDays, "0", "\0")
Fueron _h = SUSTITUTO(_vRemainingHours, "0", "\0")
Fueron _m = SUSTITUTO(_vRemainingMins, "0", "\0")
Fueron _s = SUSTITUTO(_vRemainingSecs, "0", "\0")

Fueron _d_h_m_s = _d & "d" & _h & "h" & _m & "m, " & _s & "s"
Fueron _h_m_s = _h & "h" & _m & "m" & _s & "s"
Fueron _m_s = _m & "m" & _s & "s"
Fueron __s = _s & "s"

DEVOLUCIÓN
INTERRUPTOR(VERDADERO(),
_vSecs >= 86400, _d_h_m_s,
_vSecs >= 3600, _h_m_s,
_vSecs >= 60, _m_s,
_s)

Estrictamente hablando, esto funciona bien y produce el resultado deseado, pero es bastante lento.
Así que estoy buscando algún consejo para aumentar la eficiencia.

¿Alguna aportación, alguien?

Saludos
Mads
1 ACCEPTED SOLUTION

Sin embargo, su sugerencia me dio un código mejor/más eficiente para la declaración RETURN.
Cambié mi DAX a lo siguiente y los resultados son buenos y la velocidad es mucho mejor.

Muchas gracias 🙂

Fueron _vSecs = SELECTEDMEASURE()
Fueron _vMins = INT(DIVIDIR(_vSecs, 60, 0))
Fueron _vRemainingSecs = INT(MANERA(_vSecs, 60))
Fueron _vHours = INT(DIVIDIR(_vMins, 60,0))
Fueron _vRemainingMins = INT(MANERA(_vMins, 60))
Fueron _vDays = INT(DIVIDIR(_vHours, 24, 0))
Fueron _vRemainingHours = INT(MANERA(_vHours, 24))

Fueron _d = SUSTITUTO(_vDays, "0", "\0")
Fueron _h = SUSTITUTO(_vRemainingHours, "0", "\0")
Fueron _m = SUSTITUTO(_vRemainingMins, "0", "\0")
Fueron _s = SUSTITUTO(_vRemainingSecs, "0", "\0")

DEVOLUCIÓN
SI ( _vSecs >= 86400, _d & "d" )
& SI ( _vSecs >= 3600, _h & "h" )
& SI ( _vSecs >= 60, _m & "m" ) & _s & "s"



Saludos
Mads

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Hola @MadBern85 ,

Puede intentar usar las siguientes expresiones si ayuda:

format = 
VAR _vTS = SELECTEDMEASURE()
VAR _vDays =
    INT ( DIVIDE ( _vTS, 86400, 0 ) )
VAR _vHours =
    INT ( DIVIDE ( _vTS - _vDays * 86400, 3600, 0 ) )
VAR _vMins =
    INT ( DIVIDE ( _vTS - _vDays * 86400 - _vHours * 3600, 60 ) )
VAR _vSecs = _vTS - _vDays * 86400 - _vHours * 3600 - _vMins * 60
RETURN
    IF ( _vTS > 86400, _vDays & "d " )
        & IF ( _vTS > 3600, _vHours & "h " )
        & IF ( _vTS > 60, _vMins & "m " ) & _vSecs & "s"

1.png

Saludos

Xiaoxin Sheng

Hola

Gracias por la sugerencia, esto se acerca bastante a algo que ya he probado y la velocidad ha mejorado mucho, pero produce algunos errores. Lo cual no he podido corregir.

MadBern85_0-1713939600965.png

Saludos
Mads

Sin embargo, su sugerencia me dio un código mejor/más eficiente para la declaración RETURN.
Cambié mi DAX a lo siguiente y los resultados son buenos y la velocidad es mucho mejor.

Muchas gracias 🙂

Fueron _vSecs = SELECTEDMEASURE()
Fueron _vMins = INT(DIVIDIR(_vSecs, 60, 0))
Fueron _vRemainingSecs = INT(MANERA(_vSecs, 60))
Fueron _vHours = INT(DIVIDIR(_vMins, 60,0))
Fueron _vRemainingMins = INT(MANERA(_vMins, 60))
Fueron _vDays = INT(DIVIDIR(_vHours, 24, 0))
Fueron _vRemainingHours = INT(MANERA(_vHours, 24))

Fueron _d = SUSTITUTO(_vDays, "0", "\0")
Fueron _h = SUSTITUTO(_vRemainingHours, "0", "\0")
Fueron _m = SUSTITUTO(_vRemainingMins, "0", "\0")
Fueron _s = SUSTITUTO(_vRemainingSecs, "0", "\0")

DEVOLUCIÓN
SI ( _vSecs >= 86400, _d & "d" )
& SI ( _vSecs >= 3600, _h & "h" )
& SI ( _vSecs >= 60, _m & "m" ) & _s & "s"



Saludos
Mads

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Fabric Monthly Update - May 2024

Check out the May 2024 Fabric update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

Top Solution Authors