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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Power BI DAX

Hola, ¿alguien podría ayudarme este DAX?

Fecha HorasUsoOcupación
27-feb 251
27-feb 472
27-feb 783
27-feb331
27-feb921
27-feb542
27-feb716
27-feb365
27-feb813
27-feb1032
26-feb1241
26-feb1461
26-feb614
26-feb816
26-feb1024
26-feb142
26-feb331
26-feb1373

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?

1 ACCEPTED 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.

vkalyjmsft_0-1646383666082.png

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.

vkalyjmsft_1-1646383792643.png

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.

View solution in original post

24 REPLIES 24
Syndicate_Admin
Administrator
Administrator

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.

vkalyjmsft_0-1646379751757.png

3.Coloque la columna de fecha en una segmentación de datos, seleccione Fecha relativa>Última 7 días.

vkalyjmsft_2-1646379899230.png

4.In el filtro visual, coloque consumo de agua wc en el cuadro debajo de "Por valor" y seleccione Top 4.

vkalyjmsft_4-1646380121407.png

Siempre obtendrá los 4 valores principales en los últimos 7 días.

vkalyjmsft_5-1646380175165.png

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.

vkalyjmsft_0-1646383666082.png

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.

vkalyjmsft_1-1646383792643.png

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?

Learner_SG_0-1647506755598.png

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á.

vkalyjmsft_0-1647507798315.png

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.

Learner_SG_0-1647509703202.pngLearner_SG_1-1647509745209.png

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?

Learner_SG_0-1647589087677.png

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.

vkalyjmsft_0-1647589462276.png

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

Learner_SG_1-1647593335822.png

También adjunto los datos de tiempo y consumo

Horasum_wc_consumption
13:0049.8064
13:0049.8064
13:0049.8064
14:0066.5736
14:0066.5736
14:0066.5736
15:0085.4132
15:0085.4132
15:0085.4132
13:0049.8064
14:0066.5736
15:0085.4132
11:0010.79
13:0049.8064
13:0049.8064
13:0049.8064
14:0066.5736
14:0066.5736
14:0066.5736
15:0085.4132
15:0085.4132
15:0085.4132
13:0049.8064
13:0049.8064
13:0049.8064
13:0049.8064
13:0049.8064
13:0049.8064
13:0049.8064
14:0066.5736
14:0066.5736
14:0066.5736
14:0066.5736
14:0066.5736
14:0066.5736
14:0066.5736
15:0085.4132
15:0085.4132
15:0085.4132
15:0085.4132
15:0085.4132
15:0085.4132
15:0085.4132
8:00
11:0010.79
13:0049.8064
14:0066.5736
15:0085.4132
13:0049.8064
15:0085.4132
19:009.96
21:009.72
13:0049.8064
13:0049.8064
13:0049.8064
13:0049.8064
14:0066.5736
14:0066.5736
14:0066.5736
14:0066.5736
15:0085.4132
15:0085.4132
15:0085.4132
15:0085.4132
11:0010.79
11:0010.79
9:005.61
11:0010.79
13:0049.8064
13:0049.8064
13:0049.8064
13:0049.8064
14:0066.5736
14:0066.5736
14:0066.5736
14:0066.5736
15:0085.4132
15:0085.4132
15:0085.4132
15:0085.4132

@v-kalyj-msft , Muchas gracias. Hice una comprobación rápida, funciona,

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?

@v-kalyj-msft

Learner_SG_2-1647755209256.png

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?

Learner_SG_1-1647755138770.png

y después de rank_measure filtrado con <=4 me da la siguiente respuesta.

Learner_SG_0-1647755107107.png

con estos 2 problemas resueltos, se liquidaría. Gracias por la ayuda.

Syndicate_Admin
Administrator
Administrator

Hola

¿Puedes probar a continuación medir y usarlo como filtro visual, por favor?

rango =

RANKX
(
TODOSEXCEPTO('Tabla',«Tabla»[Fecha]),
[usage_occ],
,
DESC,
Saltarse
)
coskuersanli_0-1646122872782.png

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 =


RANKX
(
TODOSEXCEPTO('Hoja1',Hoja1[Fecha]),
SUMA(Hoja1[Consumo de agua wc (ml)]),
,
DESC,
Saltarse
)

Learner_SG_0-1646192905206.png

@coskuersanli , no puede continuar con el dax dado.

En ella @Learner_SG ,

Debe poner una coma antes de DESC 🙂 (,DESC,)

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.