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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Información sobre herramientas de Power BI con argumento

Hola a todos,

Me gustaría crear agregar una ventana emergente en la parte superior de una tabla para mostrar una curva de progreso del plan real vs para dar la alarma si me retraso con algunas tareas. El problema que tengo es que no sé cómo pasar un argumento (tarea de retención) a la información sobre herramientas que actualmente está codificada para la tarea "T1&.

¿Alguna idea?

stchln_0-1669046960234.png

Tabla : Datos de entrada

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCjFU0lEyMNQ3NNQ3MjAygnKMYBxDAwMgaWygFKsDVAsWMUVSa2SMpNYIrNYEotQYZJIFslJLJI6hKVgp0NhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [task = _t, start = _t, end = _t, planned = _t, actual = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"task", type text}, {"start", type date}, {"end", type date}, {"planned", Int64.Type}, {"actual", Int64.Type}})
in
    #"Changed Type"

YX : tabla creada

YX = 
// S Curve is business functions
// https://businessfunctions.com/articles/The%20Origins%20of%20the%20S%20Curve%20in%20Business%20Functions.pdf
Var _T = "T1"
Var _s = LOOKUPVALUE('Table'[start],'Table'[task],_T,0)
Var _e = LOOKUPVALUE('Table'[end],'Table'[task],_T,0)
Var _a = LOOKUPVALUE('Table'[actual],'Table'[task],_T,0)
Var _p = LOOKUPVALUE('Table'[planned],'Table'[task],_T,0)
Var _s2e = DATEDIFF(_s,_e,DAY)
Var _s2c = DATEDIFF(_s,TODAY(),DAY)
RETURN
GENERATE(
        GENERATESERIES(0,_s2e,1),
        VAR _scurve = IF ([Value]<0,0,IF([Value]>_s2e,1,_p/2*(1-COS(PI()*[Value]/_s2e))))
        VAR _current = IF ([Value]<0,0,IF([Value]>_s2c,BLANK(),(_a/_s2c)*[Value]))
        RETURN ROW("s-curve",_scurve,"actual",_current)
)

¡Gracias por tu ayuda!

1 ACCEPTED SOLUTION

Hola

uno de mis colegas, gracias a Jacques, podría ayudarme a resolver mi problema. Me aconsejó que fuera con las mediciones, como me explicó, la información sobre herramientas está recibiendo datos debajo del cursor en el visual "padre".

Entonces la solución para mi caso es la siguiente

1. Creación de tablas

Dates = GENERATESERIES(MIN('Table'[start]), MAX('Table'[end]))

Medida real

actual = 
VAR _T = SELECTEDVALUE('Table'[task])
VAR d = SELECTEDVALUE(Dates[Day])
Var _s = LOOKUPVALUE('Table'[start],'Table'[task],_T,0)
Var _e = LOOKUPVALUE('Table'[end],'Table'[task],_T,0)
Var _a = LOOKUPVALUE('Table'[actual],'Table'[task],_T,0)
RETURN IF(d<_s, BLANK(), IF(d>TODAY(), BLANK(), _a*(DATEDIFF(d, _s, DAY)/DATEDIFF(_e, _s, DAY))))

Medida de curva en S

s-curve = 
VAR _T = SELECTEDVALUE('Table'[task])
VAR d = SELECTEDVALUE(Dates[Day])
Var _s = LOOKUPVALUE('Table'[start],'Table'[task],_T,0)
Var _e = LOOKUPVALUE('Table'[end],'Table'[task],_T,0)
Var _a = LOOKUPVALUE('Table'[actual],'Table'[task],_T,0)
Var _p = LOOKUPVALUE('Table'[planned],'Table'[task],_T,0)
Var _s2e = DATEDIFF(_s,_e,DAY)
Var _s2c = DATEDIFF(_s,TODAY(),DAY)
RETURN IF(d<_s, BLANK(), IF(d>_e, BLANK(), _p*(1-COS(PI()*(DATEDIFF(d, _s, DAY)/DATEDIFF(_e, _s, DAY))))))

Esto está resolviendo mi problema.

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@stchln ,

Para comprender mejor sus demandas y dar la solución correcta, ¿podría compartir conmigo algunas capturas de pantalla de sus datos después de ocultar información confidencial y decirme cuál es su resultado esperado?

Gracias por sus esfuerzos y tiempo de anticipación.

Saludos

Yadong Fang

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola

uno de mis colegas, gracias a Jacques, podría ayudarme a resolver mi problema. Me aconsejó que fuera con las mediciones, como me explicó, la información sobre herramientas está recibiendo datos debajo del cursor en el visual "padre".

Entonces la solución para mi caso es la siguiente

1. Creación de tablas

Dates = GENERATESERIES(MIN('Table'[start]), MAX('Table'[end]))

Medida real

actual = 
VAR _T = SELECTEDVALUE('Table'[task])
VAR d = SELECTEDVALUE(Dates[Day])
Var _s = LOOKUPVALUE('Table'[start],'Table'[task],_T,0)
Var _e = LOOKUPVALUE('Table'[end],'Table'[task],_T,0)
Var _a = LOOKUPVALUE('Table'[actual],'Table'[task],_T,0)
RETURN IF(d<_s, BLANK(), IF(d>TODAY(), BLANK(), _a*(DATEDIFF(d, _s, DAY)/DATEDIFF(_e, _s, DAY))))

Medida de curva en S

s-curve = 
VAR _T = SELECTEDVALUE('Table'[task])
VAR d = SELECTEDVALUE(Dates[Day])
Var _s = LOOKUPVALUE('Table'[start],'Table'[task],_T,0)
Var _e = LOOKUPVALUE('Table'[end],'Table'[task],_T,0)
Var _a = LOOKUPVALUE('Table'[actual],'Table'[task],_T,0)
Var _p = LOOKUPVALUE('Table'[planned],'Table'[task],_T,0)
Var _s2e = DATEDIFF(_s,_e,DAY)
Var _s2c = DATEDIFF(_s,TODAY(),DAY)
RETURN IF(d<_s, BLANK(), IF(d>_e, BLANK(), _p*(1-COS(PI()*(DATEDIFF(d, _s, DAY)/DATEDIFF(_e, _s, DAY))))))

Esto está resolviendo mi problema.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Feb2025 Sticker Challenge

Join our Community Sticker Challenge 2025

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

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

Top Solution Authors