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
Ahmedelshark
Helper I
Helper I

Visualización de un valor en la tarjeta visual en función de la fecha elegida

Hola a todos,

Actualmente estoy trabajando en un informe con dos objetos visuales: un objeto visual de tarjeta que muestra el 'Valor L' y un sector de segmentación de intervalos de fechas Visual para seleccionar el intervalo de fechas.

Estoy tratando de obtener la tarjeta visual para mostrar el último 'Valor L' basado en el rango de fechas elegido - ver extracto de datos a continuación. Por ejemplo, si el intervalo de fechas elegido es 10 Nov (start) - 12 Nov (end), 'L Value in the card visual should be 0.36. Si el intervalo de fechas elegido es de 12 noviembre (inicio) - 15 nov (fin), 'Valor L' debe ser 0,45.

Cada vez que he intentado hacerlo, tengo la opción de mostrar la suma / promedio / min / max / count / etc. de la columna 'L Value'. Todo lo que quiero es el último 'Valor L' correspondiente para la fecha de finalización elegida.

Cualquier ayuda sería apreciada. ¡Gracias chicos!

TítuloFechaHorasL Valor
Socio10-Nov-190.50.00
Asociado12-Nov-191.22.40
Socio12-Nov-1920.48
Socio12-Nov-190.80.36
Socio13-Nov-1910.28
Asociado14-Nov-1931.80
Asociado15-Nov-193.51.09
Socio15-Nov-1910.45
2 ACCEPTED SOLUTIONS

Hola @Ahmedelshark ,

Sí, es factible, pero primero debe hacer una adición rápida en Power Query: primero debe agregar una columna de índice a la tabla.

En Power Query, vaya a Nuevo origen>Consulta en blanco y, a continuación, en Editor avanzado, pegue mi código sobre el código predeterminado. A continuación, puede seguir los pasos que tomé para completar esto.

// Paste this in into Advanced Editor
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("fc8xCoAwDAXQu2TWkKat1NELiHvpIOLgoqDi+dU4tFRx+XR45P96D12/7vO4QgGKynY5SlVfb0IrSQSh8NBs2zJM/T7ejCNTyFcymocltxLEcsm4H0LoJHWVI52UCWH3XmQi0rLKfcy2CZLfKaQ6r7N5nbEQwgk=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Title = _t, Date = _t, Hours = _t, #"L Value" = _t]),
    addIndexFromOne = Table.AddIndexColumn(Source, "Index", 1, 1, Int64.Type),
    chgAllTypes = Table.TransformColumnTypes(addIndexFromOne,{{"Title", type text}, {"Date", type date}, {"Hours", type number}, {"L Value", type number}})
in
    chgAllTypes

Debe asegurarse de agregar la columna de índice DESPUÉS de haber realizado el filtrado y la ordenación en la tabla.

A continuación, crearía una medida como esta:

_latestL = 
CALCULATE(
    MAX(AhmedesTable[L Value]),
    FILTER(
        AhmedesTable,
        AhmedesTable[Index] = MAX(AhmedesTable[Index])
    )
)

Lo que debería darle el siguiente ouput:

BA_Pete_0-1603898694790.png

Vale la pena señalar de esta salida que el objeto visual de tabla no mantiene el criterio de ordenación original a menos que utilice el campo [Index] en él y ordene en él. Si observa el ejemplo de salida, puede ver que el objeto visual muestra 0,48 como el último valor de fila, pero la medida lo calcula correctamente como 0,36. Tenga cuidado de no confundir a los usuarios finales con esto.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




View solution in original post

Hola @Ahmedelshark ,

Intente quitar el argumento ', Int64.Type' de esta línea.

*EDIT * Ignora lo anterior, más fácil si lo haces directamente en tus datos:

1) Complete cualquier transformación en sus datos en Power Query

2) Ordene los datos como le gustaría que se ordenaran para el cálculo

3) Como último paso de su consulta, seleccione la pestaña 'Agregar columna' encima de la cinta de opciones, busque el botón 'Columna de índice' y péguelo. Realmente no importa si la columna de índice comienza a partir de 0 o 1, el efecto es el mismo.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




View solution in original post

6 REPLIES 6
BA_Pete
Super User
Super User

Hola @Ahmedelshark ,

¿Tiene un campo de tiempo en su tabla?

Hace que sea un poco más complicado resolver la última entrada cuando se trabaja con varias entradas en la misma fecha.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Hola @BA_Pete ,

Gracias por responder.

No tengo un campo de tiempo. Me preguntaba si podría basarse en el orden en el que se han introducido los datos? Por lo tanto, en el extracto de datos proporcionado, el último 'valor L' para 12-Nov debe ser 0,36 (ya que es la última fila de datos para el 12 de noviembre).

Hola @Ahmedelshark ,

Sí, es factible, pero primero debe hacer una adición rápida en Power Query: primero debe agregar una columna de índice a la tabla.

En Power Query, vaya a Nuevo origen>Consulta en blanco y, a continuación, en Editor avanzado, pegue mi código sobre el código predeterminado. A continuación, puede seguir los pasos que tomé para completar esto.

// Paste this in into Advanced Editor
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("fc8xCoAwDAXQu2TWkKat1NELiHvpIOLgoqDi+dU4tFRx+XR45P96D12/7vO4QgGKynY5SlVfb0IrSQSh8NBs2zJM/T7ejCNTyFcymocltxLEcsm4H0LoJHWVI52UCWH3XmQi0rLKfcy2CZLfKaQ6r7N5nbEQwgk=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Title = _t, Date = _t, Hours = _t, #"L Value" = _t]),
    addIndexFromOne = Table.AddIndexColumn(Source, "Index", 1, 1, Int64.Type),
    chgAllTypes = Table.TransformColumnTypes(addIndexFromOne,{{"Title", type text}, {"Date", type date}, {"Hours", type number}, {"L Value", type number}})
in
    chgAllTypes

Debe asegurarse de agregar la columna de índice DESPUÉS de haber realizado el filtrado y la ordenación en la tabla.

A continuación, crearía una medida como esta:

_latestL = 
CALCULATE(
    MAX(AhmedesTable[L Value]),
    FILTER(
        AhmedesTable,
        AhmedesTable[Index] = MAX(AhmedesTable[Index])
    )
)

Lo que debería darle el siguiente ouput:

BA_Pete_0-1603898694790.png

Vale la pena señalar de esta salida que el objeto visual de tabla no mantiene el criterio de ordenación original a menos que utilice el campo [Index] en él y ordene en él. Si observa el ejemplo de salida, puede ver que el objeto visual muestra 0,48 como el último valor de fila, pero la medida lo calcula correctamente como 0,36. Tenga cuidado de no confundir a los usuarios finales con esto.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Muchas gracias @BA_Pete. Al pegar el código, obtengo el siguiente error a continuación:

Ahmedelshark_0-1603900968395.png

Hola @Ahmedelshark ,

Intente quitar el argumento ', Int64.Type' de esta línea.

*EDIT * Ignora lo anterior, más fácil si lo haces directamente en tus datos:

1) Complete cualquier transformación en sus datos en Power Query

2) Ordene los datos como le gustaría que se ordenaran para el cálculo

3) Como último paso de su consulta, seleccione la pestaña 'Agregar columna' encima de la cinta de opciones, busque el botón 'Columna de índice' y péguelo. Realmente no importa si la columna de índice comienza a partir de 0 o 1, el efecto es el mismo.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Este es el gran. ¡Muchas gracias!

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.