RANK

La función RANK evalúa una expresión y devuelve su rango o posición para la fila siendo considerada en la tabla tras comparar el resultado con el conjunto de resultados de todas las filas, asignando el mismo rango a valores iguales, siendo éste el más elevado de los que recibirían si se asignasen rangos consecutivos.

Sintaxis

RANK(<expresión> [, <orden>])

Parámetros
  • expresión: expresión a evaluar para todas las filas de la tabla
  • orden: (opcional) cadena de texto que deberá tomar los valores 'asc' o 'desc' (valor por defecto) que determinará el orden de los rangos
Valor devuelto

La función RANK devuelve un número entero.

Información adicional

Valores idénticos reciben el mismo rango (el mayor de los que recibirían si recibiesen rangos diferentes). En este contexto se presupone que el rango 1 es el mayor. Los demás rangos no varían. De este modo, los valores 1, 3, 3, 5 reciben los rangos 4, 2, 2, 1. Obsérvese que, con este criterio, puede haber rangos sin asignar (como el 3, en el ejemplo visto).

Las etiquetas 'asc' o 'desc' pueden estar escritas en mayúscula o minúsculas y se pueden encerrar entre comillas simples o dobles.

Los valores nulos son ignorados y no modifican de forma alguna los rangos asignados.

Ejemplos

Si partimos de una tabla en la que se muestren las ventas por país:

Ventas por país

...podemos añadir una columna que nos indique el rango o posición de cada cifra de ventas con respecto a las demás (asignando el mayor rango en caso de coincidencia). Para esto podemos crear el siguiente campo calculado:

Rango =

RANK(SUM([Amount]))

Si añadimos este campo calculado al estante de filas, obtenemos el resultado esperado:

Función RANK

Vemos que, por defecto, al mayor valor se le asocia el rango 1.

No especificar el orden es equivalente a indicar orden descendente:

Rango =

RANK(SUM([Amount]), 'desc')

Función RANK

 

Para probar el caso en el que existan valores idénticos, vamos a partir de la siguiente tabla de datos:

Unidades por categoría

Creamos ahora el campo calculado:

Rango =

RANK(SUM([Número]), 'desc')

...y llevamos nuestros datos y el rango al lienzo:

Función RANK

Tal y como cabría esperar, el número 5 (mayor de todos) ha recibido el rango 1. Los dos valores 1 (que son los más bajos de todos) han recibido el mismo rango, 4.

Categoría
Cálculo de tablas
Enviado por admin el Jue, 17/10/2019 - 12:32