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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo funciona RANKX en una columna calculada?

Hola

Estoy tratando de entender cómo se comporta la función RANKX en una columna calculada.

Por ejemplo, tengo la siguiente tabla donde agregué una función RANKX dentro de una columna calculada.

Sé que en una columna calculada hay un contexto de fila. Entonces, ¿eso significa que la función RANKX evaluará esta fórmula fila por fila, pero no aplicará los filtros que provienen de la fila actual ya que no hay transición de contexto? Pero si ese es el caso, ¿cómo sabe poner el rango de 1 contra las filas que tienen FY=2025-2026 y el rango de 2 contra las filas que tienen FY=2024-2025?

mp390988_0-1748257968835.png

Gracias

1 ACCEPTED SOLUTION

@mp390988,

Gracias por ponerse en contacto con nosotros en el Foro de la comunidad de Microsoft.

Gracias @burakkaragoz por la útil respuesta.

Siga los pasos a continuación Cómo RANKX asigna rangos en una columna calculada;

1,Cada fila se evalúa de forma independiente mediante el contexto de fila: no se aplican filtros, pero los valores de la fila actual (como FY) siguen siendo accesibles.

2.RANKX crea una lista clasificada completa de los valores FY utilizando la tabla que proporciona (por ejemplo, ALL('Dim Date' [FY])), independientemente de la fila actual.

3.La función compara el valor FY de la fila actual con la lista clasificada y encuentra el rango coincidente.

4.A continuación, ese rango se "aparca" en la fila actual, en función de la coincidencia entre los valores FY de la fila y los FY clasificados.

Continúe usando el Foro de la comunidad de Microsoft.

Si esta publicación ayuda a resolver su problema, considere marcarla como "Aceptar como solución" y darle un 'Felicitaciones' para ayudar a otros a encontrarlo más fácilmente.

Saludos
Pavan.

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

@mp390988 ,

Buena pregunta. Este es uno de esos comportamientos de DAX que pueden ser un poco confusos al principio.

Tienes razón. Las columnas calculadas operan en un contexto de fila y RANKX es una de las pocas funciones que crea su propio contexto de fila interno. En su caso, está clasificando sobre la tabla 'Dim Date' usando la columna 'FY'.

Entonces, lo que sucede es:

  • Para cada fila, RANKX evalúa toda la tabla 'Dim Date'.
  • Clasifica todos los valores 'FY' en orden descendente.
  • Dado que varias filas comparten el mismo 'FY', todas obtienen el mismo rango (porque está utilizando la clasificación densa).

Es por eso que todas las filas con FY = 2025-2026 obtienen el rango 1, y las que tienen FY = 2024-2025 obtienen el rango 2.

Si desea clasificar dentro de un grupo específico (por año o trimestre), deberá usar un FILTRO dentro de RANKX para definir ese contexto.

Avíseme si desea ayuda para ajustar la lógica para clasificar dentro de un grupo o en función de otra columna.

Si mi respuesta resolvió su consulta, por favor márquela como la Solución Aceptada para ayudar a otros. Además, le agradecería que me felicitara si le resultó útil mi respuesta.
traducción y formato respaldados por IA

Hola @burakkaragoz ,

Gracias por tu explicación, pero todavía no entiendo cómo sabe dónde aparcar los valores. Sé cómo deriva los valores, pero no estoy seguro de cuál es la conexión para estacionar los valores en el lugar correcto, si eso tiene sentido. Es un poco como si yo encontrara mi lugar para el auto. ¿Cómo sabe que debe poner el rango de 1 contra las filas que tienen FY=2025-2026 y el rango de 2 contra las filas que tienen FY=2024-2025 porque no hay transición de contexto, por lo que los años financieros no se transmiten como filtros?

@mp390988,

Gracias por ponerse en contacto con nosotros en el Foro de la comunidad de Microsoft.

Gracias @burakkaragoz por la útil respuesta.

Siga los pasos a continuación Cómo RANKX asigna rangos en una columna calculada;

1,Cada fila se evalúa de forma independiente mediante el contexto de fila: no se aplican filtros, pero los valores de la fila actual (como FY) siguen siendo accesibles.

2.RANKX crea una lista clasificada completa de los valores FY utilizando la tabla que proporciona (por ejemplo, ALL('Dim Date' [FY])), independientemente de la fila actual.

3.La función compara el valor FY de la fila actual con la lista clasificada y encuentra el rango coincidente.

4.A continuación, ese rango se "aparca" en la fila actual, en función de la coincidencia entre los valores FY de la fila y los FY clasificados.

Continúe usando el Foro de la comunidad de Microsoft.

Si esta publicación ayuda a resolver su problema, considere marcarla como "Aceptar como solución" y darle un 'Felicitaciones' para ayudar a otros a encontrarlo más fácilmente.

Saludos
Pavan.

@mp390988 ,

¿Solo quería verificar si tuvo la oportunidad de revisar la sugerencia proporcionada?

Si la respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente.

Gracias.

@mp390988 ,

¿Solo quería verificar si tuvo la oportunidad de revisar la sugerencia proporcionada?

Si la respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente.

Gracias.

@mp390988 ,

¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución y dé un 'Felicitaciones'. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

Gracias

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors