Saltar al contenido principal Saltar al contenido complementario

Rank - función de gráfico

Rank() evalúa las filas del gráfico en la expresión, y para cada fila muestra la posición relativa del valor de la dimensión evaluada en la expresión. Esta función, cuando evalúa la expresión, compara el resultado con el resultado de las otras filas que contienen el segmento de columna actual y devuelve la clasificación de la fila actual dentro del segmento.

Segmentos de columna

Una tabla que muestra segmentos de columna

Para gráficos que no sean tablas, se define el segmento de columna actual tal como aparece en su equivalente en la tabla simple del gráfico.

Sintaxis:  

Rank([TOTAL] expr[, mode[, fmt]])

Tipo de datos que devuelve: dual

Argumentos:  

Argumentos
Argumento Descripción
expr La expresión o el campo que contiene los datos que se han de medir.
mode Especifica la representación numérica del resultado de la función.
fmt Especifica la representación de texto del resultado de la función.
TOTAL

Si el gráfico es unidimensional o si la expresión va precedida por el calificador TOTAL, la función se evalúa a lo largo de toda la columna. Si la tabla o el equivalente de tabla tiene múltiples dimensiones verticales, el segmento de columna actual incluirá sólo filas con los mismos valores que la fila actual en todas las columnas de dimensión, excepto para la columna que muestra la última dimensión en el orden de campos interno.

Definir el ámbito de agregación

El ranking se devuelve como un valor dual, el cual, en el caso de que cada fila tenga una clasificación única será un entero entre 1 y el número de filas del segmento de columna actual.

En caso de que varias filas compartan el mismo ranking, el texto y la representación numérica se pueden controlar con los parámetros mode y fmt.

mode

El segundo argumento, mode, puede tomar los siguientes valores:

Ejemplos de mode
Valor Descripción
0 (por defecto)

Si todos los rangos dentro del grupo compartido caen dentro del extremo más bajo del valor de en medio del ranking entero, todas las filas reciben el rango menor dentro del grupo compartido.

Si todos los rangos dentro del grupo compartido caen dentro del extremo más alto del valor de en medio del ranking entero, todas las filas reciben el rango menor dentro del grupo compartido.

Si todos los rangos dentro del grupo compartido se salen del valor central del ranking completo, todas las filas reciben el valor correspondiente a la media del ranking superior e inferior en el segmento de columna completo.

1 Rango más bajo en todas las filas.
2 Rango promedio en todas las filas.
3 Rango más alto en todas las filas.
4 Rango más bajo en la primera fila, incrementado por uno para cada fila.
fmt

El tercer argumento, fmt, puede tomar los siguientes valores:

Ejemplos de fmt
Valor Descripción
0 (por defecto) Valor bajo - valor alto en todas las filas (por ejemplo 3 - 4).
1 Valor bajo en todas las filas.
2 Valor más bajo en la primera fila, espacio en blanco en las siguientes filas.

El orden de las filas para mode 4 y fmt 2 viene determinado por el orden de clasificación de las dimensiones del gráfico.

Ejemplos y resultados:  

Cree dos visualizaciones a partir de las dimensiones Product y Sales y otra a partir de Product y UnitSales. Agregue medidas tal como se muestra en la tabla siguiente.

Ejemplos de rangos
Ejemplos Resultados

Ejemplo 1. Cree una tabla con las dimensiones Customer y Sales y la medida Rank(Sales)

El resultado depende del orden de las dimensiones. Si la tabla se ordena por Customer, la tabla muestra todos los valores de Sales para Astrida, luego Betacab, y así sucesivamente. Los resultados de Rank(Sales) mostrarán 10 para el valor Sales 12, 9 para el valor Sales 13, etc., con el valor de rango de 1 devuelto para el valor Sales 78. El siguiente segmento de columna comienza con Betacab, para el que el primer valor de Sales en el segmento es 12. El valor de rango de Rank(Sales) para esto se proporciona como 11.

Si la tabla se ordena por Sales, los segmentos de columna consistirán en los valores de Sales y el correspondiente Customer. Debido a que hay dos valores Sales de 12 (para Astrida y Betacab), el valor de Rank(Sales) para ese segmento de columna es 1-2, por cada valor de Customer. Esto se debe a que hay dos valores de Customer para el valor Sales 12. Si hubiera habido 4 valores, el resultado sería 1-4 para todas las filas. Esto muestra cómo se ve el resultado para el valor predeterminado (0) del argumento fmt.

Ejemplo 2. Reemplace la dimensión Cliente por Producto y agregue la medida Rank(Sales,1,2) Esto devuelve 1 en la primera fila en cada segmento de columna y deja en blanco todas las demás filas, porque los argumentos mode y fmt se fijan en 1 y 2 respectivamente.

Resultados para el ejemplo 1, con tabla ordenada por Customer:

Tabla de resultados
Customer Sales Rank(Sales)
Astrida 12 10
Astrida139
Astrida208
Astrida227
Astrida456
Astrida465
Astrida604
Astrida653
Astrida702
Astrida781
Betcab1211

Resultados para el ejemplo 1, con tabla ordenada por Sales:

Tabla de resultados
Customer Sales Rank(Sales)
Astrida 12 1-2
Betacab121-2
Astrida131
Betacab151
Astrida201
Astrida221-2
Betacab221-2
Betacab241-2
Canutility241-2

 

Datos utilizados en los ejemplos:

ProductData:

Load * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD|0|25

Canutility|AA|8|15

Canutility|CC|0|19

] (delimiter is '|');

 

Sales2013:

crosstable (Month, Sales) LOAD * inline [

Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec

Astrida|46|60|70|13|78|20|45|65|78|12|78|22

Betacab|65|56|22|79|12|56|45|24|32|78|55|15

Canutility|77|68|34|91|24|68|57|36|44|90|67|27

Divadip|57|36|44|90|67|27|57|68|47|90|80|94

] (delimiter is '|');

 

Más información

 

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.