# Bottom

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

Sintaxe:

Bottom([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:

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

Exemplos e resultados:

Exemplo 1:

Exemplo de saída de tabela

| Customer | Sum(Sales) | Bottom(Sum(Sales)) | Sum(Sales) + Bottom(Sum(Sales)) | Bottom offset 3 |
| --- | --- | --- | --- | --- |
| - | 2566 | 757 | 3323 | 3105 |
| Astrida | 587 | 757 | 1344 | 1126 |
| Betacab | 539 | 757 | 1296 | 1078 |
| Canutility | 683 | 757 | 1440 | 1222 |
| Divadip | 757 | 757 | 1514 | 1296 |

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 `Bottom(Sum(Sales))`.

A coluna Bottom(Sum(Sales)) retorna 757 para as todas as linhas, porque esse é o valor da linha inferior: Divadip.

A tabela também mostra medições mais complexas: uma criada a partir de `Sum(Sales)+Bottom(Sum(Sales))` e uma rotulada como Bottom offset 3, que é criada usando a expressão `Sum(Sales)+Bottom(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 inferior, isto é, a linha atual mais o valor de Betacab.

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.

Na primeira tabela, a expressão é avaliada com base no Month, e na segunda tabela é avaliada com base no Product. A medição End value contém a expressão `Bottom(Sum(Sales))`. A linha inferior de Month é Dec, o valor de Dec e ambos os valores de Product mostrados na tabela são 22. (Algumas linhas não são exibidas, para economizar espaço).

Exemplo de primeira saída de tabela

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

Exemplo de segunda saída de tabela

| Customer | Product | Month | Sum(Sales) | End 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 Bottom pode ser usada como entrada para as funções range. Por exemplo: `RangeAvg 
 (Bottom(Sum(Sales),1,3))`.

Nos argumentos para a função Bottom(), 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 (Bottom(Sum(Sales),1,3)) |
| --- | --- |
| Astrida | 659.67 |
| Betacab | 659.67 |
| Canutility | 659.67 |
| Divadip | 659.67 |

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

* [Top](https://help.qlik.com/pt-BR/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/InterRecordFunctions/top.htm)