# Top - função de gráfico

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

| Argumento | Descrição |
| --- | --- |
| expr | A expressão ou campo que contém os dados a serem medidos. |
| offset | Especificar um offset de n, maior que 1, move a avaliação da expressão para linhas n abaixo da linha superior.<br><br>Especificando um número de compensação negativa faz a função Top funcionar como a função Bottom com o número de compensação positiva correspondente. |
| count | Ao especificar um terceiro parâmetro count maior que 1, a função retornará uma série de valores count, um para cada count últimas linhas do segmento da coluna atual. 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/sense/May2026/Subsystems/Hub/Content/Sense_Hub/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.<br><br>[Definindo o escopo de agregação](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/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 simples 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:

* As chamadas recursivas retornarão NULL.

* 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.

Exemplo: expressões de gráfico

| Exemplo | Resultado |
| --- | --- |
| `Top( Sum(Sales) )` | Retorna o valor de `Sales` para a primeira linha (superior) de um segmento de coluna em uma tabela. |

## Exemplo - Fundamentos de Top

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)

#### Expressão de gráfico

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `Year`

  * `Sales`

Script de carregamento

```
Example:
LOAD * INLINE [
Year, Sales
2019, 1000
2020, 1500
2021, 1200
2022, 1800
2023, 1700
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

* `Year`

Crie as seguintes medidas:

* `=Sum(Sales)` para encontrar as vendas anuais.

* `=Top(Sum(Sales))` para encontrar o valor de vendas para o primeiro ano, que é a primeira linha (superior) de uma coluna em uma tabela.

* `=Sum(Sales) - Top(Sum(Sales))`, para calcular a variação entre o valor da linha atual e o valor de `Sales` da primeira linha (superior) de uma coluna.

* `=Sum(Sales)-Top(Sum(Sales), 3)` para calcular a variação entre o valor de vendas da linha atual e o valor da 3ª linha de cima para baixo.

* `=(Sales - Top(Sales)) / Top(Sales)` para retornar a alteração em `Sales` como uma proporção/porcentagem em comparação com a primeira linha. Para mostrar esse valor como uma porcentagem, em Formatação de números, selecione Número &gt; Formatação simples &gt; 12,34%.

Classifique a tabela na dimensão `Year` em ordem crescente.

Tabela de resultados

| Year | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales) - Top(Sum(Sales)) | Sum(Sales)-Top(Sum(Sales), 3) | (Sales - Top(Sales)) / Top(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | 1000 | 6200 | 6000 | - |
| 2019 | 1000 | 1000 | 0 | -200 | 0.00% |
| 2020 | 1500 | 1000 | 500 | 300 | 50.00% |
| 2021 | 1200 | 1000 | 200 | 0 | 20.00% |
| 2022 | 1800 | 1000 | 800 | 600 | 80.00% |
| 2023 | 1700 | 1000 | 700 | 500 | 70.00% |

Observando os resultados, você pode comparar os valores de `Sales` no período atual com o período superior (ou primeiro).

* A medida `Sum(Sales) - Top(Sum(Sales))` retorna a alteração nos valores de `Sales`, comparando o período atual com o primeiro período.

* A medida `Sum(Sales)-Top(Sum(Sales), 3)` retorna a soma de `Sales` para a linha atual menos o terceiro período a partir do topo.

* A medida `=(Sales - Top(Sales)) / Top(Sales)` retorna a alteração em `Sales` em comparação com o primeiro período como uma porcentagem.

Nota de dicaEssa função também pode ser usada para gráficos além de tabelas, como gráficos de barra.

Faça o seguinte:

Crie um gráfico de barras e adicione este campo como uma dimensão:

* `Year`

Crie a seguinte medida:

* `=Sum(Sales)- Top(Sum(Sales))` para retornar a variação nas vendas entre o período atual e o período superior.

Gráfico de barras mostrando os resultados da função Top

Gráfico de barras mostrando os resultados da função Top

Gráfico de barras mostrando os resultados da função TopTop ![Gráfico de barras mostrando a variação nas vendas entre o período atual e o período superior (ou primeiro).](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-top-example.png)

O uso da função `Top` em um gráfico de barras fornece uma comparação visual da variação entre as vendas do período atual versus o período superior (ou primeiro).

## Exemplo - Cenário de Top

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)

#### Expressão de gráfico

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `OrderID`

  * `Product`

  * `SalesValue`

  * `OrderDate`

Script de carregamento

```
Example:
LOAD * INLINE [
OrderID, Product, SalesValue, OrderDate
1, "Product A", 500, '2023-01-10'
2, "Product B", 300, '2023-01-15'
3, "Product C", 450, '2023-02-01'
4, "Product D", 700, '2023-02-20'
5, "Product E", 350, '2023-03-05'
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

* `Product`

Crie as seguintes medidas:

* `=RangeAvg(Top(Sum(SalesValue),1,3))` para retornar a média das três linhas superiores.

* `=Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3))` para calcular a variância entre a linha atual e a média das três linhas superiores.

* `=Sum(SalesValue)` para calcular o total de `SalesValue` para a linha atual.

Tabela de resultados

| Product | RangeAvg(Top(Sum(SalesValue),1,3)) | Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3)) | Sum(SalesValue) |
| --- | --- | --- | --- |
| Totals | 416.67 | 1883.33 | 2300 |
| 2019 | 416.67 | 83.33 | 500 |
| 2020 | 416.67 | --116.67 | 300 |
| 2021 | 416.67 | 33.33 | 450 |
| 2022 | 416.67 | 283.33 | 700 |
| 2023 | 416.67 | -66.67 | 350 |

Os resultados mostram como você pode usar a combinação das funções `RangeSum` e `Top` para analisar e comparar valores de vendas.

## Exemplo – Expressão de gráfico usando Top

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)

#### Expressão de gráfico

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Duas tabelas de dados chamadas `Monthnames` e `Sales2013`.

Script de carregamento

```
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, 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 (MonthText, 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 '|'); 
                                
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

* `Customer`

Crie as seguintes medidas:

* `=Sum(Sales)` para calcular a soma das vendas.

* `=Top(Sum(Sales))` para mostrar a soma das vendas do `Customer` na linha superior.

* `=Sum(Sales)+Top(Sum(Sales))` para adicionar o valor de `Sum(Sales)` do `Customer` atual com o `Customer` na linha superior.

* `=Sum(Sales)+Top(Sum(Sales), 3)` para adicionar o valor de `Sum(Sales)` do `Customer` atual com o valor do `Customer` que é o terceiro da linha superior.

Tabela de resultados

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

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

Para a medida `Sum(Sales)+Top(Sum(Sales))`, a linha `Betacab` retorna `1126`, que é o resultado da adição do valor de `Sum(Sales)` para `Betacab` e `Astrida`, o `Customer` na linha superior.

Para a medida `Sum(Sales)+Top(Sum(Sales), 3)`, o argumento `offset` é definido como `3`. A expressão adiciona o valor de `Sum(Sales)` para a linha atual e a terceira linha a partir da parte superior, `Canutility`. Por exemplo, o valor de `1440` é retornado para o cliente `Divadip`. Esse é o resultado da adição do valor de `Sum(Sales)` para `Divadip` e de `SumSales` para `Canutility` (`757`+`683`).

## Saiba mais

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