Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hola, ¿alguien podría ayudarme este DAX?
| Fecha | Horas | Uso | Ocupación |
| 27-feb | 2 | 5 | 1 |
| 27-feb | 4 | 7 | 2 |
| 27-feb | 7 | 8 | 3 |
| 27-feb | 3 | 3 | 1 |
| 27-feb | 9 | 2 | 1 |
| 27-feb | 5 | 4 | 2 |
| 27-feb | 7 | 1 | 6 |
| 27-feb | 3 | 6 | 5 |
| 27-feb | 8 | 1 | 3 |
| 27-feb | 10 | 3 | 2 |
| 26-feb | 12 | 4 | 1 |
| 26-feb | 14 | 6 | 1 |
| 26-feb | 6 | 1 | 4 |
| 26-feb | 8 | 1 | 6 |
| 26-feb | 10 | 2 | 4 |
| 26-feb | 1 | 4 | 2 |
| 26-feb | 3 | 3 | 1 |
| 26-feb | 13 | 7 | 3 |
Basándome en estos datos, necesito escribir un DAX para seleccionar las 4 veces más altas para cada día cuando el uso + ocupación es alto. ¿Alguien podría ayudar?
Solved! Go to Solution.
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.
En ella @Learner_SG ,
¿Te refieres a mostrar los 4 tiempos más altos en los últimos 7 días? Si este es el caso, aquí está mi solución.
1.Cree una tabla de fechas.
Date = CALENDAR(DATE(2022,1,1),TODAY())
2.Haga una relación entre las dos tablas, tenga en cuenta que la fecha analizada debe ser Tipo de fecha.
3.Coloque la columna de fecha en una segmentación de datos, seleccione Fecha relativa>Última 7 días.
4.In el filtro visual, coloque consumo de agua wc en el cuadro debajo de "Por valor" y seleccione Top 4.
Siempre obtendrá los 4 valores principales en los últimos 7 días.
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.
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.
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?
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
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?
En ella @Learner_SG ,
Si necesita seleccionar 2 días, puede modificar la parte de fecha en la fórmula de esta manera:
'Sheet4'[Parsed_Date] >= TODAY () - 7&&'Sheet4'[Parsed_Date] <= TODAY () - 6
Saludos
Equipo de apoyo a la comunidad _ kalyj
hola @v-kalyj-msft , gracias por la ayuda. Quisiera pedir un favor más que había destacado ayer. Mi medida de rango parece no estar funcionando. Revisé las fechas que parecen ser correctas. a continuación se muestra la captura de pantalla. con todos los rangos que muestran 1.is posible que encuentre cuál podría ser el error de un vistazo?
En ella @Learner_SG ,
En su fórmula, para la siguiente condición, no habrá fecha, ya que ninguna fecha será tanto 2022/3/9 como 2022/3/10.
Modificarlo a
'measurement'[Parsed_Date]>=TODAY()-9 && 'measurement'[Parsed_Date]<=TODAY()-8
Saludos
Equipo de apoyo a la comunidad _ kalyj
@v-kalyj-msft gracias por la respuesta.podría resolver ese problema. Espero que estas sean mis últimas 2 preguntas sobre este tema.
Pregunta 1. Ahora lo que sucede es que el ranking no está en el orden correcto. A continuación se muestra la captura de pantalla sin configurar el filtro de rango.cuando verifico los datos, el rango no debe estar en este orden. cualquier pensamiento sobre este asunto.
2. Lo que necesito es que necesito tener los 4 más altos de los dos días. ahora el cálculo funciona de esta manera, selecciona todo el conjunto para los 2 días y clasifica it.is posible clasificarlos por separado para cada día también y seleccionar los 4 más altos de los 2 días
También adjunto los datos de tiempo y consumo
| Hora | sum_wc_consumption |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 13:00 | 49.8064 |
| 14:00 | 66.5736 |
| 15:00 | 85.4132 |
| 11:00 | 10.79 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 8:00 | |
| 11:00 | 10.79 |
| 13:00 | 49.8064 |
| 14:00 | 66.5736 |
| 15:00 | 85.4132 |
| 13:00 | 49.8064 |
| 15:00 | 85.4132 |
| 19:00 | 9.96 |
| 21:00 | 9.72 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 11:00 | 10.79 |
| 11:00 | 10.79 |
| 9:00 | 5.61 |
| 11:00 | 10.79 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 13:00 | 49.8064 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 14:00 | 66.5736 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
| 15:00 | 85.4132 |
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?
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.
Hola
¿Puedes probar a continuación medir y usarlo como filtro visual, por favor?
Hola @coskuersanli , todavía no puedo obtener la solución. En realidad, había compartido los datos para otra consulta con usted. Si tienes tiempo, podrías guiarme con el DAX.
https://drive.google.com/file/d/1rgIn7gN7Kuux8trVMtPIj8qxxulUVYLL/view?usp=sharing.
En ella @Learner_SG ,
Las fechas y horas son únicas en el archivo de muestra. Puedo ayudarte si me envías algunos datos como en tu primer post 🙂
Hola @coskuersanli , Debido a que los datos se capturan en tiempo real, la diferencia entre los tiempos es muy cercana. He adjuntado otro archivo con más datos.
https://drive.google.com/file/d/1O8ohw7KfZ6fealUfS0iyeDd4SLnsSTBO/view?usp=sharing.
lo que necesito para llegar, se basa en los datos de consumo de agua de WC que necesito obtener el más alto 4 veces (las horas) en cada día y luego necesito mostrarlo en una tabla. Aprecia el help.tks.
En ella @Learner_SG ,
Lo he intentado a continuación uno. Pero necesitamos cambiar el tipo de datos del consumo de agua wc al número. ¿Puede cambiar el tipo de datos y compartirlos conmigo si no funcionan, por favor?
rango =
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!