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.
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ítulo | Fecha | Horas | L Valor |
Socio | 10-Nov-19 | 0.5 | 0.00 |
Asociado | 12-Nov-19 | 1.2 | 2.40 |
Socio | 12-Nov-19 | 2 | 0.48 |
Socio | 12-Nov-19 | 0.8 | 0.36 |
Socio | 13-Nov-19 | 1 | 0.28 |
Asociado | 14-Nov-19 | 3 | 1.80 |
Asociado | 15-Nov-19 | 3.5 | 1.09 |
Socio | 15-Nov-19 | 1 | 0.45 |
Solved! Go to Solution.
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:
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.
Proud to be a Datanaut!
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.
Proud to be a Datanaut!
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.
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:
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.
Proud to be a Datanaut!
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.
Proud to be a Datanaut!
Este es el gran. ¡Muchas gracias!
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |