# Rank - função de gráfico

Rank() avalia as linhas do gráfico na expressão e, para cada linha, exibe a posição relativa do valor da dimensão avaliada na expressão. Ao avaliar a expressão, a função compara o resultado com o resultado de outras linhas que contêm o segmento de coluna atual e retorna a posição da linha atual dentro do segmento.

[Rank function](https://play.vidyard.com/21eZKs36KWVQPaL6nxT9Tt)

Segmentos de coluna

Segmentos de coluna

Segmentos de coluna ![Uma tabela mostrando segmentos de coluna](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Resources/Images/table_column_segments.png)

Para gráficos que não sejam tabelas, o segmento de coluna atual é definido conforme ele é exibido no equivalente de tabela estática do gráfico.

Sintaxe:

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

Tipo de dados de retorno: dual

Argumentos:

Argumentos

| Argumento | Descrição |
| --- | --- |
| expr | A expressão ou campo que contém os dados a serem medidos. |
| mode | Especifica a representação numérica do resultado da função. |
| fmt | Especifica a representação textual do resultado da função. |
| TOTAL | Se o gráfico for unidimensional ou se a expressão for precedida pelo qualificador TOTAL, a função será avaliada ao longo da coluna inteira. Se a tabela ou o equivalente de tabela tiver várias dimensões verticais, o segmento de coluna atual incluirá somente linhas com os mesmos valores que a linha atual em todas as colunas de dimensão, exceto na coluna que mostrar a última dimensão na ordem de classificação entre os campos.<br><br>[Definindo o escopo de agregação](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

A posição é retornada como um valor dual, que, quando cada linha tiver uma posição única, será um número inteiro entre 1 e o número de linhas do segmento da coluna atual.

Caso várias linhas compartilhem a mesma posição, a representação textual e numérica poderá ser controlada com os parâmetros mode e fmt.

###### mode

O segundo argumento, mode, pode ter os seguintes valores:

Exemplos de modemode

| Valor | Descrição |
| --- | --- |
| 0 (padrão) | Se todas as posições dentro do grupo de compartilhamento estiverem no lado inferior do valor intermediário da posição, todas as linhas receberão a posição mais baixa dentro do grupo.<br><br>Se todas as posições de compartilhamento dentro do grupo estiverem no lado superior do valor intermediário da posição, todas as linhas receberão a posição mais alta dentro do grupo.<br><br>Se as posições dentro do grupo se estenderem além do valor intermediário de toda a posição, todas as linhas receberão o valor correspondente à média da posição superior e inferior de todo o segmento de coluna. |
| 1 | Posição mais baixa em todas as linhas. |
| 2 | Posição média em todas as linhas. |
| 3 | Posição mais alta em todas as linhas. |
| 4 | Posição mais baixa na primeira linha, depois, aumentada em incrementos de um para cada linha. |

###### fmt

O terceiro argumento, fmt, pode ter os seguintes valores:

Exemplos de fmtfmt

| Valor | Descrição |
| --- | --- |
| 0 (padrão) | Valor baixo - valor alto em todas as linhas (por exemplo 3-4). |
| 1 | Valor baixo em todas as linhas. |
| 2 | Valor baixo na primeira linha, em branco nas linhas seguintes. |

A ordem das linhas para mode 4 e fmt 2 é determinada pela ordem de classificação das dimensões do gráfico.

Exemplos e resultados:

Crie duas visualizações a partir das dimensões Product e Sales e outra a partir de Product e UnitSales. Adicione medidas, conforme mostrado na tabela a seguir.

Exemplos de Rank

| Exemplos | Resultados |
| --- | --- |
| Exemplo 1. Crie uma tabela com as dimensões `Customer` e `Sales` e com a medida `Rank(Sales)` | O resultado dependerá da ordem de classificação das dimensões. Se a tabela for classificada em Customer, a tabela listará todos os valores de Sales para Astrida, Betacab, e assim por diante. Os resultados de Rank(Sales) mostrarão 10 para o valor de 12 de Sales, 9 para o valor de 13 de Sales e assim por diante, com o valor da posição de 1 retornado para o valor 78 de Sales. O próximo segmento da coluna começa com Betacab, para o qual o primeiro valor de Sales no segmento é 12. O valor da posição de Rank(Sales) para este é dado como 11.<br><br>Se a tabela for classificada em Sales, os segmentos da coluna consistirão nos valores de Sales e do Customer correspondente. Como existem dois valores de 12 de Sales (para Astrida e Betacab), o valor de Rank(Sales) para esse segmento de coluna é 1-2, para cada valor de Customer. Isso ocorre pois existem dois valores de Customer para o valor de 12 de Sales. Se existissem 4 valores, o resultado seria 1-4 para todas as linhas. Isso mostra qual seria o resultado para o valor padrão (0) do argumento fmt. |
| Exemplo 2. Substitua a dimensão Customer por Product e adicione a medida `Rank(Sales,1,2)` | Isto retorna 1 na primeira linha em cada segmento de coluna e deixa todas as outras linhas em branco, pois os argumentos mode e fmt são definidos para 1 e 2, respectivamente. |

Resultados para o exemplo 1, com a tabela classificada por Customer:

Tabela de resultados

| Customer | Sales | Rank(Sales) |
| --- | --- | --- |
| Astrida | 12 | 10 |
| Astrida | 13 | 9 |
| Astrida | 20 | 8 |
| Astrida | 22 | 7 |
| Astrida | 45 | 6 |
| Astrida | 46 | 5 |
| Astrida | 60 | 4 |
| Astrida | 65 | 3 |
| Astrida | 70 | 2 |
| Astrida | 78 | 1 |
| Betcab | 12 | 11 |

Resultados para o exemplo 1, com a tabela classificada por Sales:

Tabela de resultados

| Customer | Sales | Rank(Sales) |
| --- | --- | --- |
| Astrida | 12 | 1-2 |
| Betacab | 12 | 1-2 |
| Astrida | 13 | 1 |
| Betacab | 15 | 1 |
| Astrida | 20 | 1 |
| Astrida | 22 | 1-2 |
| Betacab | 22 | 1-2 |
| Betacab | 24 | 1-2 |
| Canutility | 24 | 1-2 |

` `

Dados usados nos exemplos:

`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 '|');`` `

## Saiba mais

* [Sum - função de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)