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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Anonymous
Not applicable

Problema con el rango

Hola

Soy principiante en power bi, necesito su ayuda para calcular una clasificación sobre los años en mi informe.

En mi informe, tengo un filtro para la selección del año:

filter_year.png

Se basa en la tabla 'Numero_year'[Año].

Me gustaría tener el rango de los diferentes años disponibles en la tabla, basado en mi selección en este filtro.

Por lo tanto, si selecciono 2020, quiero tener

2020 ? 1

2019 ? 2

2018 ? 3

2017 ? 4

Si selecciono 2018, quiero tener :

2018 ? 1

2017 ? 2

He probado esta fórmula, pero no parece ser la buena porque supongo que sólo un año se puede seleccionar a la vez:

Annee_rank á rankx(ALLSELECTED('Numero_year'[Year]),CALCULATE(max('Numero_year'[Year]))
Sólo recupero un año (el seleccionado) con el rango 1 por el momento 😞
¿Puede ayudarme a fijar esta fórmula para obtener el resultado esperado por favor?
Muchas gracias por tu ayuda, AnSo
8 REPLIES 8
v-yingjl
Community Support
Community Support

Hola @anneso108 ,

Puede probar estas medidas:

1. Cree una tabla de años seprate y coloque la columna en la segmentación de datos:

Table = DISTINCT(Numero_year[Year])

2. Cree una medida de clasificación en la tabla de hechos:

Rank =
IF (
    ISFILTERED ( 'Table'[Year] ),
    IF (
        HASONEVALUE ( 'Table'[Year] ),
        IF (
            SELECTEDVALUE ( Numero_year[Year] ) <= SELECTEDVALUE ( 'Table'[Year] ),
            RANKX (
                FILTER (
                    ALLSELECTED ( Numero_year ),
                    Numero_year[Year] <= SELECTEDVALUE ( 'Table'[Year] )
                ),
                CALCULATE ( SUM ( Numero_year[Year] ) )
            )
        )
    ),
    RANKX ( ALLSELECTED ( Numero_year ), CALCULATE ( SUM ( Numero_year[Year] ) ) )
)

Obtendrá el resultado esperado:

rank1.pngrank2.png

Se adjunta un archivo de ejemplo que espera ayudarle, por favor compruébelo y pruébelo: Problema con rank.pbix

Best Looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

Hola YingJie Li,

Su respuesta se ajusta a lo que espero, pero por desgracia, no soy capaz de reproducirlo en mi informe, no sé si mi cubo SSAS no está correctamente vinculado entre tablas o si mi fórmula está equivocada...

He intentado abrir su pbix pero no puedo abrirlo en mi máquina, mensaje de error :

anneso108_0-1593595532845.png

Esto es lo que intenté.

He creado una nueva tabla calculada, denominada Tabla para obtener los años distintos de mi fact_table "SecuriteAuTravail" :

anneso108_1-1593595585299.png

He vinculado esta nueva tabla 'Tabla' a mi tabla de hechos "SecuriteAuTravail" en el campo De Ana:

anneso108_2-1593595719912.png

Y luego en mi informe, puse un filtro en 'Table'[Annee], y una tabla para mostrar el rango con mi medida y 'SecuriteAuWork'[Annee] como un segundo campo:

2020-07-01_11-32-52.png

Aquí está la fórmula que puse en mi medida, obviamente cometí un error dentro de la fórmula que diría, pero puedo averiguarlo...

Rank_annees_selected_table DE LA CLAVE DE LA CIUDAD (
ISFILTERED ('Table'[Annee]),
SI (
HASONEVALUE ('Table'[Annee]),
SI (
SELECTEDVALUE (SecuriteAuWork[Annee] ) SELECTEDVALUE ('Table'[Annee]),
RANKX (
FILTRO (
ALLSELECTED (SecuriteAuTravail ),
SecurityAuWork[Annee] - SELECTEDVALUE ('Table'[Annee] )
),
CALCULATE ( SUM ( SecuriteAuTravail[Annee] ) )
)
)
),
RANKX ( ALLSELECTED ( SecuriteAuTravail ), CALCULATE ( SUM ( SecuriteAuTravail[Annee] ) ) ) ) ) )
)

Hoy mi filtro real está en "Calendrier[year] en mi informe. No se utiliza en absoluto más en la nueva solución, supongo que algo está mal allí...

¿Alguna idea para arreglar esto?

Muchas gracias, AnneSophie

amitchandak
Super User
Super User

@anneso108 , Pruebe una medida como esta

Measure =
var _max = maxx(allselected(Year),Year[Year])
return
calculate(max(Year[Year])-_max +1,filter(All(Year),Year[Year]<=_max))

Prefiere una tabla de fechas separada

Anonymous
Not applicable

Hola amitchandak,

He probado su fórmula porque preferiría no tener que crear una nueva tabla para este problema, pero desafortunadamente no funciona 😞

Me da sólo el año seleccionado como resultado :

anneso108_0-1593593345779.png

Si usted tiene otra idea para arreglar la fórmula, me alegraría mucho 😉

Gracias, AnSo

mahoneypat
Employee
Employee

La clave para obtener este tipo de funcionalidad es agregar una pequeña tabla calculada DAX que se usará en la segmentación de datos, con una expresión como

SlicerYears á DISTINCT('Numero_year'[Año])

No lo conecte con una relación. De esta manera, solo está ahí para seleccionar un valor, no para filtrar los datos. A continuación, puede tener una medida como esta para obtener su rango de año. Tenga en cuenta que es posible que tenga que adaptar las medidas existentes para utilizar también el valor seleccionado, ya que ya no filtrará los datos.

Year Rank =
VAR __selectedyear =
    SELECTEDVALUE ( SlicerYears[Year] )
RETURN
    RANKX (
        FILTER ( ALL ( 'Date'[Year] ), 'Date'[Year] <= __selectedyear ),
        CALCULATE ( MIN ( 'Date'[Year] ) )
    )

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


@anneso108 dar @mahoneypat solución, incluso puede hacer que sea mucho más fácil, misma historia, una tabla para la rebanadora con años y luego la siguiente medida a RANK

Year Rank =
VAR __selectedyear =
    SELECTEDVALUE ( SlicerYears[Year] )
VAR __rank = ( __selectedYear - MAX ('Numero_year'[Year] ) ) + 1 
RETURN
IF ( __rank >= 1, __rank )

Me gustaría elogiossi mi solución ayudara.👉Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para dar a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!

Visítenos enhttps://perytus.com, su ventanilla única para proyectos/formación/consulta relacionados con Power BI.



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

Anonymous
Not applicable

Muchas gracias, después de probar las otras 3 soluciones propuestas, ¡es la tuya la que gana!

Que tengas un buen día, AnneSo.

kentyler
Solution Sage
Solution Sage

Está utilizando ALLSELECTED

por lo que cuando se selecciona un año en su rebanadora... que es el único año "seleccionado"

tratar de usar TODO





Did this post answer your question? Mark it as a solution so others can find it!

Help when you know. Ask when you don't!




Join the conversation at We Talk BI find out more about me at Slow BI


Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.