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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

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
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors