Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
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?
Gracias
Solved! Go to Solution.
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.
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:
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?
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.
¿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.
¿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.
¿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
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.