# Above - função de gráfico

Above() avalia uma expressão na linha acima da linha atual dentro 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 diretamente acima. Para gráficos que não sejam tabelas, Above() avalia a linha acima da linha atual, na tabela estática equivalente do gráfico.

Sintaxe:

Above([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 n, maior que 0 move a avaliação da expressão n para linhas acima da linha atual.<br><br>A especificação de um deslocamento igual a 0 avaliará a expressão na linha atual.<br><br>Especificando um número de compensação negativa faz a função Above funcionar 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.<br><br>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/cloud-services/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/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Na primeira linha de um segmento de coluna, um valor NULL é retornado, já que não há uma linha acima dela.

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 |
| --- | --- |
| `Above( Sum(Sales) )` | Retorna o valor de `Sales` para a linha acima da linha atual. |

## Exemplo - Fundamentos de Above

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.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.

* `=Above(Sum(Sales))` para encontrar o valor de vendas do ano anterior.

* `=Sum(Sales) - Above(Sum(Sales))` para calcular a variação entre o valor de `Sales` do ano atual e o valor do ano anterior.

* `=RangeSum(Above(Sales, 1, 2))` para demonstrar uma agregação de dois anos consecutivos dos dois anos anteriores de vendas.

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

Tabela de resultados

| Year | Sum(Sales) | Above(Sum(Sales)) | Sum(Sales) - Above(Sum(Sales)) | RangeSum(Above(Sales, 1, 2) | (Sales - Above(Sales)) / Above(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | - | - | 0 | - |
| 2019 | 1000 | - | - | 0 | - |
| 2020 | 1500 | 1000 | 500 | 1000 | 50.00% |
| 2021 | 1200 | 1500 | -300 | 2500 | -20.00% |
| 2022 | 1800 | 1200 | 600 | 2700 | 50.00% |
| 2023 | 1700 | 1800 | -100 | 3000 | -5.56% |

Observando os resultados, você pode comparar os valores de `Sales` no período atual com o período anterior.

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

* A medida `RangeSum(Above(Sales, 1, 2))` retorna a soma dos dois valores `Sales` anteriores.

* A medida `(Sales - Above(Sales)) / Above(Sales)` retorna a alteração em `Sales` em comparação com o período anterior 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) - Above(Sum(Sales))` para retornar a variação ano a ano.

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

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

Gráfico de barras mostrando os resultados da função AboveAbove ![Gráfico de barras mostrando a variação ano a ano da soma das vendas](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-above-example.png)

O uso da função `Above` em um gráfico de barras fornece uma comparação visual da variação entre as vendas do período atual e do período anterior.

## Exemplo - Cenário de Above

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.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:

  * `SalesYear`

  * `SalesAmount`

Script de carregamento

```
Example:
LOAD * INLINE [
SalesYear, SalesAmount
2019, 500
2020, 800
2021, 400
2022, 700
2023, 600
];
```

Resultados

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

* `SalesYear`

Crie as seguintes medidas:

* `=Sum(SalesAmount)` para agregar as vendas.

* `=RangeSum(Above(SalesAmount, 0, RowNo()))` para calcular um total em execução dos valores de `SalesAmount`.

Tabela de resultados

| SalesYear | Sum(SalesAmount) | RangeSum(Above(SalesAmount, 0, RowNo())) |
| --- | --- | --- |
| Totals | 3000 | 0 |
| 2019 | 500 | 500 |
| 2020 | 800 | 1300 |
| 2021 | 400 | 1700 |
| 2022 | 700 | 2400 |
| 2023 | 600 | 3000 |

Os resultados mostram como você pode usar uma combinação da função `RangeSum` e da função `Above` para criar um total acumulado em execução.

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:

* `SalesYear`

Crie a seguinte medida:

* `=RangeSum(Above(SalesAmount, 0, RowNo()))` para retornar o valor acumulado de vendas.

Gráfico de barras mostrando o valor acumulado das vendas por ano

Gráfico de barras mostrando o valor acumulado das vendas por ano

Gráfico de barras mostrando o valor acumulado das vendas por ano ![Gráfico de barras mostrando o valor acumulado de vendas por ano de vendas.](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-above-example2.png)

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.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.

* `=Above(Sum(Sales))` para mostrar a soma das vendas na linha anterior.

* `=Sum(Sales)+Above(Sum(Sales))` para somar a soma de vendas com a soma de vendas da linha do cliente acima da linha atual.

* `=Sum(Sales)+Above(Sum(Sales), 3)` para somar o valor `Sum(Sales)` do `Customer` atual com o valor do `Customer` que está três linhas acima.

* `=IF(Sum(Sales)>Above(Sum(Sales)), 'Higher')` para adicionar o rótulo "`Higher`" aos clientes cujos resultados de `Sum(Sales)` são maiores que o `Sum(Sales)` do cliente na linha acima.

Tabela de resultados

| Customer | Sum(Sales) | Above(Sum(Sales)) | Sum(Sales)+Above(Sum(Sales)) | Sum(Sales)+Above(Sum(Sales), 3) | IF(Sum(Sales)&gt;Above(Sum(Sales)), 'Higher') |
| --- | --- | --- | --- | --- | --- |
| Totals | 2566 | - | - | - | - |
| Astrida | 587 | - | - | - | - |
| Betacab | 539 | 587 | 1126 | - | - |
| Canutility | 683 | 539 | 1222 | - | Higher |
| Divadip | 757 | 683 | 1440 | 1344 | Higher |

A medida `Above(Sum(Sales))` retorna NULL para o cliente `Astrida`, porque não há nenhuma linha acima dele. O resultado para o cliente `Betacab` mostra o valor de `Sum(Sales)` para `Astrida`. O resultado para `Canutility` mostra o valor para `Sum(Sales)` para `Betacab`, e assim por diante.

Para a medida `Sum(Sales)+Above(Sum(Sales))`, a linha para `Betacab` retorna o resultado da adição dos valores de `Sum(Sales)` para as linhas `Betacab` + `Astrida` (`539+587`). O resultado da linha `Canutility` mostra o resultado da soma dos valores `Sum(Sales)` para `Canutility` + `Betacab` (`683+539`).

A medida `Sum(Sales)+Above(Sum(Sales), 3)` tem o argumento `offset`, definido como `3`. Isso usa o valor na linha que está 3 linhas acima da linha atual. Ele soma o valor de `Sum(Sales)` para o `Customer` atual ao valor de `Customer` de três linhas acima. Por exemplo, a `Sum(Sales)` para `Divadip` é adicionada à `Sum(Sales)` para `Astrida`, o cliente que está três linhas acima de `Divadip`. Os valores retornados para as 3 primeiras linhas de `Customer` são nulos porque não há dados.

A medida `IF(Sum(Sales)>Above(Sum(Sales)), 'Higher')` retorna o valor `Higher` para os clientes `Canutility` e `Divadip` porque seus resultados de vendas são mais altos que a soma das vendas do cliente na linha acima, `Betacab` e `Canutility`, respectivamente.

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

Nota de dicaPara outros tipos de gráficos, converta o gráfico para o equivalente de tabela simples, para que você possa interpretar facilmente a qual linha a função está relacionada.

## Exemplo – Above cenário baseado na ordem de classificação

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.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:

* Três tabelas de dados chamadas Monthnames, Sales2013 e Product.

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

Product:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB||| 25
Canutility|AA|||15
Canutility|CC| ||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');
```

```

                                
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* Customer

* Product

* Month

Crie as seguintes medidas:

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

* =Above(Sum(Sales)) para mostrar a soma das vendas na linha anterior.

Tabela de resultados

| Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
| --- | --- | --- | --- | --- |
| Totals | - | - | 2566 | - |
| Astrida | AA | Jan | 46 | - |
| Astrida | AA | Feb | 60 | 46 |
| Astrida | AA | Mar | 70 | 60 |
| Astrida | AA | Apr | 13 | 70 |
| Astrida | AA | May | 78 | 13 |
| Astrida | AA | Jun | 20 | 78 |
| Astrida | AA | Jul | 45 | 20 |
| Astrida | AA | Aug | 65 | 45 |
| Astrida | AA | Sep | 78 | 65 |
| Astrida | AA | Oct | 12 | 78 |
| Astrida | AA | Nov | 78 | 12 |
| Astrida | AA | Dec | 22 | 78 |
| Astrida | BB | Jan | 46 | - |
| Astrida | BB | Feb | 60 | 46 |

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 Qlik Sense. O Qlik Sense 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 tabela de resultados, a última dimensão classificada é Month, então a função Above é avaliada com base em meses. Há uma série de resultados para cada valor Product para cada mês (Jan a Dec) – um segmento de coluna. Isso é seguido por uma série para o próximo segmento da coluna: para cada Month para o próximo Product. Haverá um segmento da coluna para cada valor Customer para cada Product.

## Exemplo – Above cenário usando uma ordem de classificação diferente

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.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:

* Três tabelas de dados chamadas Monthnames, Sales2013 e Product.

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

Product:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB||| 25
Canutility|AA|||15
Canutility|CC| ||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* Customer

* Product

* Month

Crie as seguintes medidas:

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

* =Above(Sum(Sales)) para mostrar a soma das vendas na linha anterior.

Altere a ordem de classificação da tabela no painel de propriedades. Selecione Classificação e arraste a dimensão Produto para a terceira posição na ordem de classificação.

Tabela de resultados

| Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
| --- | --- | --- | --- | --- |
| Totals | - | - | 2566 | - |
| Astrida | AA | Jan | 46 | - |
| Astrida | BB | Jan | 46 | 46 |
| Astrida | AA | Feb | 60 | - |
| Astrida | BB | Feb | 60 | 60 |
| Astrida | AA | Mar | 70 | - |
| Astrida | BB | Mar | 70 | 70 |
| Astrida | AA | Apr | 13 | - |
| Astrida | BB | Apr | 13 | 13 |
| Astrida | AA | May | 78 | - |
| Astrida | BB | May | 78 | 78 |
| Astrida | AA | Jun | 20 | - |
| Astrida | BB | Jun | 20 | 20 |
| Astrida | AA | Jul | 45 | - |
| Astrida | BB | Jul | 45 | 45 |

Na tabela de resultados, a última dimensão classificada é Product. A função Above é avaliada para cada Product, e como existem apenas dois produtos, AA e BB, há apenas um resultado não "null" em cada série. Na linha BB do mês Jan, o valor de Above(Sum(Sales)) é 46. Para a linha AA, o valor é null. O valor em cada linha AA para qualquer mês será sempre null, porque não há valor de Product acima de AA. A segunda série é avaliada emAA e BB para o mês Feb para o valor Customer, Astrida. Quando todos os meses forem avaliados para Astrida, a sequência será repetida para o segundo cliente Betacab, e assim por diante.

Nota informativaOs resultados da tabela mostram apenas uma lista parcial dos dados. Para ver os resultados completos, experimente o exemplo em um aplicativo.

## Exemplo – Usando a função Above com RangeAvg

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

#### Expressão de gráfico

Visão geral

A função Above pode ser usada como entrada para as funções range. Este exemplo usa a função em uma RangeAvg.

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:

* Três tabelas de dados chamadas Monthnames, Sales2013 e Product.

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

Product:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB||| 25
Canutility|AA|||15
Canutility|CC| ||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');
```

Resultados

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

* Customer

Crie a seguinte medida:

* =RangeAvg (Above(Sum(Sales),1,3))

Tabela de resultados\*

| Customer | RangeAvg (Above(Sum(Sales),1,3)) |
| --- | --- |
| Totals | - |
| Astrida | - |
| Betacab | 587 |
| Canutility | 563 |
| Divadip | 603 |

Nos argumentos para a função Above, offset é definido como 1 e count é definido como 3. A função encontra os resultados da expressãoSum(Sales) nas três linhas imediatamente acima da linha atual no segmento da coluna (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.

## Saiba mais

* [Below - função de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/below.htm)
* [Bottom - função de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Top - função de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)
* [RangeAvg Função de script e de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)