# Top

Top() avalia uma expressão na primeira linha (superior) de um segmento de coluna em uma tabela. A linha para a qual ela é calculada depende do valor de offset; se estiver presente, o padrão será a linha superior. Para gráficos que não sejam tabelas, a avaliação Top() é feita na primeira linha da coluna atual, no equivalente de tabela estática do gráfico.

Sintaxe:

Top([TOTAL] expr [ , offset [,count ]])

Tipo de dados de retorno: dual

Argumentos:

* expr: A expressão ou campo que contém os dados a serem medidos.

* offset: especificar um offset n, maior que 0 move a avaliação da expressão n linhas acima da linha atual. A especificação de um deslocamento igual a 0 avaliará a expressão na linha atual. Especificar um número de compensação negativa faz a função Above atuar como a função Below com o número de compensação positiva correspondente.

* count: ao especificar um terceiro argumento count maior que 1, a função retornará uma série de valores count, um para cada linha da tabela count, contado para cima a partir da célula original. Dessa forma, a função pode ser usada como um argumento para qualquer uma das funções de intervalo especiais. [Funções de intervalo](https://help.qlik.com/pt-BR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)

* TOTAL: Se a tabela for unidimensional ou se o qualificador TOTAL for usado como argumento, o segmento de coluna atual será sempre igual à coluna inteira.

  [Definindo o escopo de agregação](https://help.qlik.com/pt-BR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)

Nota informativaUm segmento de coluna é definido como um subconjunto consecutivo de células que contêm os mesmos valores para as dimensões na ordem de classificação atual. As funções de inter-registro de gráficos são computadas no segmento de coluna, excluindo a dimensão mais à direita no gráfico de tabela estática equivalente. Se houver apenas uma dimensão no gráfico ou se o qualificador TOTAL for especificado, a expressão avalia a tabela completa.

Nota informativaSe 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.

Limitações:

* A classificação por valores y em gráficos ou por colunas de expressão em tabelas não é permitida quando essa função de gráfico é usada em qualquer uma das expressões do gráfico. Essas alternativas de classificação estão, portanto, automaticamente desabilitadas. Quando você usar essa função de gráfico em uma visualização ou tabela, a classificação da visualização será revertida para a entrada classificada dessa função.

* As chamadas recursivas retornarão NULL.

Exemplos e resultados:

Exemplo 1:

Exemplo de saída de tabela

| Customer | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales) + Top(Sum(Sales)) | Top offset 3 |
| --- | --- | --- | --- | --- |
|  | 2566 | 587 | 3153 | 3249 |
| Astrida | 587 | 587 | 1174 | 1270 |
| Betacab | 539 | 587 | 1126 | 1222 |
| Canutility | 683 | 587 | 1270 | 1366 |
| Divadip | 757 | 587 | 1344 | 1440 |

Na representação do gráfico da tabela mostrada neste exemplo, a tabela é criada a partir da dimensão Customer e das medições: `Sum(Sales)` e `Top(Sum(Sales))`.

A coluna Top(Sum(Sales)) retorna 587 para as todas as linhas, porque esse é o valor da primeira linha: Astrida.

A tabela também mostra medições mais complexas: uma criada a partir de `Sum(Sales)+Top(Sum(Sales))` e uma rotulada como Top offset 3, que é criada usando a expressão `Sum(Sales)+Top(Sum(Sales), 3)` e tem o argumento offset definido como 3. Ela acrescenta o valor Sum(Sales) da linha atual ao valor da terceira linha a partir da linha superior, isto é, a linha atual mais o valor de Canutility.

Exemplo 2:

Nas representações dos gráficos de tabela mostrados neste exemplo, foram adicionadas mais dimensões aos gráficos: Month e Product. Para gráficos com mais de uma dimensão, os resultados de expressões que contêm as funções Above, Below, Top e Bottom dependem da ordem em que as dimensões da coluna são classificadas pelo QlikView. O QlikView avalia as funções com base nos segmentos de coluna que resultam da dimensão que é classificada por último. A ordem de classificação da coluna é controlada no painel de propriedades em Classificação e não é necessariamente a ordem em que as colunas aparecem na tabela. (Algumas linhas não são exibidas, para economizar espaço).

Exemplo de primeira saída de tabela

| Customer | Product | Month | Sum(Sales) | First value |
| --- | --- | --- | --- | --- |
|  |  |  | **2566** | - |
| Astrida | AA | Jan | 46 | 46 |
| Astrida | AA | Feb | 60 | 46 |
| Astrida | AA | Mar | 70 | 46 |
| ... | ... | ... | ... | ... |
| Astrida | AA | Sep | 78 | 46 |
| Astrida | AA | Oct | 12 | 46 |
| Astrida | AA | Nov | 78 | 46 |
| Astrida | AA | Dec | 22 | 46 |
| Astrida | BB | Jan | 46 | 46 |

Exemplo de segunda saída de tabela

| Customer | Product | Month | Sum(Sales) | First value |
| --- | --- | --- | --- | --- |
|  |  |  | **2566** | - |
| Astrida | AA | Jan | 46 | 46 |
| Astrida | BB | Jan | 46 | 46 |
| Astrida | AA | Feb | 60 | 60 |
| Astrida | BB | Feb | 60 | 60 |
| Astrida | AA | Mar | 70 | 70 |
| Astrida | BB | Mar | 70 | 70 |
| Astrida | AA | Apr | 13 | 13 |
| Astrida | BB | Apr | 13 | 13 |

Consulte o Exemplo 2 na função Above para obter mais detalhes.

Exemplo 3:

A função Top pode ser usada como entrada para as funções range. Por exemplo: `RangeAvg 
 (Top(Sum(Sales),1,3))`.

Nos argumentos para a função Top(), offset é definido como 1 e count é definido como 3. A função encontra os resultados da expressão Sum(Sales) em três linhas, com a linha acima da linha inferior no segmento de coluna (porque offset=1) e as duas linhas acima (onde há uma linha). Estes três valores são usados como entrada para a função RangeAvg(), que encontra a média de valores na variação de números fornecidos.

Uma tabela com Customer como dimensão dá os seguintes resultados para a expressão RangeAvg().

Exemplo de saída de tabela

| Customer | RangeAvg (Top(Sum(Sales),1,3)) |
| --- | --- |
| Astrida | 603 |
| Betacab | 603 |
| Canutility | 603 |
| Divadip | 603 |

**Dados usados nos exemplos:**

`Monthnames:` `LOAD * INLINE [` `Month, Monthnumber` `Jan, 1` `Feb, 2` `Mar, 3` `Apr, 4` `May, 5` `Jun, 6` `Jul, 7` `Aug, 8` `Sep, 9` `Oct, 10` `Nov, 11` `Dec, 12` `];` `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 '|');`

Para obter os meses para classificar na ordem correta, ao criar seus gráficos, acesse a aba Sort das propriedades do gráfico e marque a caixa de seleção Expression em Sort by. Na caixa de expressões, escreva `Monthnumber`.

## Saiba mais

* [Bottom](https://help.qlik.com/pt-BR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Above](https://help.qlik.com/pt-BR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/InterRecordFunctions/above.htm)
* [Sum - função de gráfico](https://help.qlik.com/pt-BR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/BasicAggregationFunctions/sum.htm)
* [RangeAvg – função de script e gráfico](https://help.qlik.com/pt-BR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/RangeFunctions/rangeavg.htm)
* [Funções de intervalo](https://help.qlik.com/pt-BR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)