Forum Discussion
Power BI DAX
- 4 years ago
En ella @Learner_SG ,
Entiendo. Aquí está mi solución.
1.Cree una medida de comprobación.
Check = IF(MAX('Sheet4'[Parsed_Date])=TODAY()-7,1)Coloque la medida en el filtro visual y deje que el valor sea 1.
2. Crea una medida de rango.
Rank = RANKX ( FILTER ( ALL ( 'Sheet4' ), 'Sheet4'[Parsed_Date] = TODAY () - 7 ), CALCULATE ( SUM ( 'Sheet4'[WC Water Consumption(mL)] ) ), , DESC, DENSE )Coloque la medida en el filtro visual y deje que el valor < = 4, obtenga el resultado correcto.
Adjunto mi muestra a continuación como referencia.
Saludos
Equipo de apoyo a la comunidad _ kalyjSi esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Hola @v-kalyj-msft , gracias por la explicación detallada y la solución. De hecho mi requisito es que , necesito mostrar en la tabla , datos anteriores del 7º día. eso significa que, si muestro el tablero hoy (viernes), debería mostrarme la hora más alta de los 4 del viernes pasado cuando el uso + ocupación es alta y cambiará cada día. Espero que esté claro ahora. Lo siento, si mi redacción anterior de la oración causó confusión. ¿Podría guiarme en esto?
En ella @Learner_SG ,
Entiendo. Aquí está mi solución.
1.Cree una medida de comprobación.
Check = IF(MAX('Sheet4'[Parsed_Date])=TODAY()-7,1)
Coloque la medida en el filtro visual y deje que el valor sea 1.
2. Crea una medida de rango.
Rank =
RANKX (
FILTER ( ALL ( 'Sheet4' ), 'Sheet4'[Parsed_Date] = TODAY () - 7 ),
CALCULATE ( SUM ( 'Sheet4'[WC Water Consumption(mL)] ) ),
,
DESC,
DENSE
)
Coloque la medida en el filtro visual y deje que el valor < = 4, obtenga el resultado correcto.
Adjunto mi muestra a continuación como referencia.
Saludos
Equipo de apoyo a la comunidad _ kalyj
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
- Syndicate_Admin4 years ago
Administrator
@v-kalyj-msft , Muchas gracias. Hice una comprobación rápida, funciona,
- Syndicate_Admin4 years ago
Administrator
seleccionado comprobar 1 filtro como 1.
la función Rango que modifiqué para seleccionar los 4 más altos de cada día me da una respuesta incorrecta. ¿Podría dar una sugerencia para hacerlo bien?
y después de rank_measure filtrado con <=4 me da la siguiente respuesta.
con estos 2 problemas resueltos, se liquidaría. Gracias por la ayuda.
- Syndicate_Admin4 years ago
Administrator
Hola @v-kalyj-msft , en continuación a esta consulta, si necesito modificar para seleccionar los 4 tiempos más altos pero necesito distribuirlo uniformemente entre las 7AM y las 10PM, cualquier sugerencia sobre cómo modificar la consulta. La idea en mi mente es dividir en 4 sesiones de 7 a 10 a.m. a 11 a.m. de 3 a 6 p.m. de 7 a 10 p.m. y seleccionar la más alta de cada una. Pero el problema es que si el más alto es a las 10 AM para la 1ª sesión, entonces no debe seleccionar el horario de la 2ª sesión como 11 am, ya que estaría demasiado cerca. ¿Podría aconsejar?
- Syndicate_Admin4 years ago
Administrator
Hola @v-kalyj-msft , podría despejar una duda que pasó desapercibida en ese momento. La función de rango no parece funcionar bien. Muestra todos los datos de la tabla y todos ellos tienen rango1. No pude resolverlo. podría ayudar?
- Syndicate_Admin4 years ago
Administrator
En ella @Learner_SG ,
Al igual que en la fórmula, TODAY()-7 es igual a 3/10/2022, que no tiene datos en su muestra, por lo que todo el rango devuelve 1. En lo que respecta a sus capturas de pantalla, modifique TODAY()-7 a TODAY()-20, funcionará.
Saludos
Equipo de apoyo a la comunidad _ kalyj- Syndicate_Admin4 years ago
Administrator
ok @v-kalyj-msft , comprobé el archivo de muestra que había enviado, funciona. pero no para mi archivo original. Traté de mirar la sintaxis y cualquier otra cosa que pudiera salir mal.
Además, solo una duda más para preguntar, si necesito seleccionar 2 días, es decir, día -7 y día-6, ¿cómo debo modificar el dax?