# Before - função de gráfico

Before() retorna o valor de uma expressão avaliada com os valores de dimensão de uma tabela dinâmica como aparecerem na coluna antes da atual, em um segmento de linha da tabela dinâmica.

Sintaxe:

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

Nota informativaEsta função retorna NULL em todos os tipos de gráfico, exceto em tabelas dinâmicas.

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

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 1 move a avaliação da expressão n colunas para a esquerda da coluna atual.<br><br>A especificação de um deslocamento igual a 0 avaliará a expressão na coluna atual.<br><br>Especificando um número de compensação negativa faz a função Before funcionar como a função After 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 colunas da tabela, contado para a esquerda a partir da célula original. |
| 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 coluna de um segmento de linha, NULL um valor será retornado, já que não há uma coluna antes dele.

Se a tabela dinâmica tiver várias dimensões horizontais, o segmento de linha atual incluirá somente colunas com os mesmos valores que a coluna atual em todas as linhas de dimensão, exceto na linha que mostrar a última dimensão horizontal na ordem de classificação entre os campos. A ordem de classificação entre os campos para as dimensões horizontais das tabelas dinâmicas é definida simplesmente pela ordem das dimensões de cima para baixo.

Exemplo: expressões de gráfico

| Exemplo | Resultado |
| --- | --- |
| `Before( Sum(Sales ))` | Retorna a soma de `Sales` da coluna anterior imediatamente à esquerda em relação à coluna atual. |
| `Before( Sum(Sales ), 2)` | Retorna a soma de `Sales` da coluna que está duas colunas à esquerda da coluna atual. |
| `Before( Total Sum( Sales ))` | Retorna a soma total de `Sales` da coluna anterior imediatamente à esquerda em relação à coluna atual. |
| `RangeAvg ( Before(Sum(x),1,3))` | Retorna uma média dos três resultados da função `sum(x)` avaliada nas três colunas imediatamente à esquerda da atual. |

## Exemplo - Fundamentos de Before

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

  * `Quarter`

  * `Sales`

Script de carregamento

```
Example:
Load * inline [
Year, Quarter, Sales
2023, Q1, 5000
2023, Q2, 4000
2023, Q3, 6000
2023, Q4, 7000
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela dinâmica e adicione esse campo como uma dimensão de linha:

* `Year`

Adicione este campo como uma dimensão de coluna:

* `Quarter`

Crie as seguintes medidas:

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

* `=Before(Sum(Sales))` para mostrar a soma das vendas no trimestre anterior.

Tabela de resultados

| Ano | T1 | T2 | T3 | T4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | Before(Sum(Sales)) | Sum(Sales) | Before(Sum(Sales)) | Sum(Sales) | Before(Sum(Sales)) | Sum(Sales) | Before(Sum(Sales)) |  |
| 2023 | 5000 | - | 4000 | 5000 | 6000 | 4000 | 7000 | 6000 |

Observando os resultados, você pode ver como a função `Before` retorna o valor da coluna anterior que está imediatamente à esquerda da coluna `Sum(Sales)` para cada `Quarter`. Por exemplo, no T4 o valor de `Sum(Sales)` para esse período é `7000`. A saída da função `Before` para `Q4` é `6000`, que é o valor da coluna imediatamente à esquerda de `Sum(Sales)` para `Q4`, ou seja, `Sum(Sales)` para `Q3`.

## Exemplo - Usando a função Before para calcular o crescimento das vendas ano a ano

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém números de vendas de vários anos. A empresa deseja apresentar o total de vendas de cada ano e o crescimento das vendas com base no valor do ano anterior.

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
2021, 1300
2022, 1800
2023, 2000
2024, 2100
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela dinâmica e adicione esse campo como uma dimensão de coluna:

* ` Year
                                       `

Crie as seguintes medidas:

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

* `=(Sum(Sales) - Before(Sum(Sales))) / Before(Sum(Sales))` para calcular o crescimento anual das vendas. 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

| 2021 | 2022 | 2023 | 2024 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) | Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) | Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) | Sum(Sales) | (Sum(Sales) - Before(Sum(Sales)))/Before(Sum(Sales)) |
| 1300 | - | 1800 | 38.46% | 2000 | 11.11% | 2100 | 5,00% |

A saída da função `Before` retorna o crescimento ano a ano com base nos números de vendas do ano anterior. Por exemplo, a soma das vendas para `2022` foi `38.46%` maior do que a `Sum(Sales)` para `2021`.

Nota de dicaVocê também pode usar a função `After` para realizar o mesmo cálculo de crescimento de vendas nesse cenário. Quando você especifica um número de deslocamento negativo nos parâmetros da função, a função `After` funciona como a função `Before` com o número de deslocamento positivo correspondente. Por exemplo, a expressão a seguir usando a função `After` (com um valor de deslocamento negativo de `-1`) retorna os mesmos resultados de crescimento anual de vendas que a função `Before`:   
`=(Sum(Sales)-After(Sum(Sales),-1))/(After(Sum(Sales),-1))`.