# First - função de gráfico

First() retorna o valor de uma expressão avaliada com os valores de dimensão de uma tabela dinâmica como aparecerem na primeira coluna do segmento de linha da tabela dinâmica. Esta função retorna NULL em todos os tipos de gráficos, 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.

Sintaxe:

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

Argumentos

| Argumento | Descrição |
| --- | --- |
| expression | 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 direita da primeira coluna.<br><br>A especificação de um deslocamento de 0 avaliará a expressão na primeira coluna do segmento de 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 First funcionar como a função Last 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 direita 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) |

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 |
| --- | --- |
| `First( Sum(Sales ))` | Retorna a soma de `Sales` da primeira coluna do segmento de linha atual. |
| `First( Sum(Sales ), 2)` | Retorna a soma de `Sales` que são duas colunas à direita da primeira coluna no segmento de linha atual. |
| `First( Total Sum( Sales ))` | Retorna a soma total de `Sales` da primeira coluna do segmento de linha atual. |
| `RangeAvg (First(Sum(x),1,5))` | Retorna uma média dos resultados da função `sum(x)` avaliada nas cinco colunas mais à esquerda do segmento de linha atual. |

## Exemplo - Fundamentos de First

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/first.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
2024, Q1, 4500
2024, Q2, 3250
2024, Q3, 6500
2024, Q4, 7250
];
```

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.

* `=First(Sum(Sales))` para calcular a soma das vendas da primeira coluna para o segmento de linha atual.

Tabela de resultados

| Ano | T1 | T2 | T3 | T4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | First(Sum(Sales)) | Sum(Sales) | First(Sum(Sales)) | Sum(Sales) | First(Sum(Sales)) | Sum(Sales) | First(Sum(Sales)) |  |
| 2023 | 5000 | 5000 | 4000 | 5000 | 6000 | 5000 | 7000 | 5000 |
| 2024 | 4500 | 4500 | 3250 | 4500 | 6500 | 4500 | 7250 | 4500 |

Observando os resultados, você pode ver como a função `First` retorna a soma do valor de vendas da primeira coluna de cada segmento de linha para cada trimestre. Por exemplo, em `Q4`, o valor de `Sum(Sales)` para esse período é `7000`. O valor `First(Sum(Sales)` para `Q4` é `5000`, que é o valor para a `Sum(Sales)` em `Q1`, o valor da primeira coluna da linha atual, `2023`.

## Exemplo - Cenário de First

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém números de vendas por ano para vários produtos ao longo de um período de três anos. A empresa quer apresentar as vendas totais do ano atual e o crescimento das vendas desde o primeiro ano do período.

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:

  * `Date`

  * `Product`

  * `Sales`

Script de carregamento

```
Example:
Load * inline [
Date, Product, Sales
2021, Apple, 100
2021, Banana, 150
2021, Carrot, 120
2022, Carrot, 80
2022, Banana, 200
2022, Apple, 110
2023, Carrot, 160
2023, Banana, 300
2023, Apple, 150
];
```

Resultados

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

* ` Product
                                       `

Adicione este campo como uma dimensão de coluna:

* `Date`

Crie as seguintes medidas:

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

* `=(Sum(Sales) - First(Sales)) / First(Sales)` para calcular o crescimento das vendas desde o primeiro ano no conjunto de dados. 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

| Produto | 2021 | 2022 | 2023 |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| Sum(Sales) | (Sum(Sales) - First(Sales)) / First(Sales) | Sum(Sales) | (Sum(Sales) - First(Sales)) / First(Sales) | Sum(Sales) | (Sum(Sales) - First(Sales)) / First(Sales) |  |
| Maçã | 100 | 0,00% | 110 | 10,00% | 150 | 50,00% |
| Banana | 150 | 0,00% | 200 | 33,33% | 300 | 100,00% |
| Cenoura | 120 | 0,00% | 80 | -33,33% | 160 | 33,33% |

Os resultados mostram os números de vendas anuais de cada ano e a taxa de crescimento por ano em porcentagem em comparação com os valores de vendas do primeiro ano. Por exemplo, as vendas de `Apple` aumentaram de um valor inicial de `100` em `2021` para um valor de `150` em `2023`, o que representa um aumento de `50%`. A venda de `Carrot` diminuiu de `120` em `2021` para `80` em `2022`, uma redução de `33.33%`.

## Exemplo - Primeiro cenário usando uma soma de intervalo para apresentar números de orçamento

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém números de orçamento por trimestre para um período de dois anos por categoria de produto. A empresa deseja apresentar o orçamento do trimestre atual e o total corrente do orçamento para cada ano.

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:

  * `BudgetYear`

  * `BudgetQuarter`

  * `QuarterNo`

  * `BudgetAmount`

  * `Category`

Script de carregamento

```
Example:
Load * inline [
BudgetYear, BudgetQuarter, QuarterNo, BudgetAmount, Category
2023, Q1, 1, 2100, Online
2023, Q2, 2, 2500, Online
2023, Q3, 3, 3100, Online
2023, Q4, 4, 4100, Online
2023, Q1, 1, 5100, Store
2023, Q2, 2, 5500, Store
2023, Q3, 3, 6100, Store
2023, Q4, 4, 7100, Store
2024, Q1, 1, 2300, Online
2024, Q2, 2, 2800, Online
2024, Q3, 3, 3300, Online
2024, Q4, 4, 4400, Online
2024, Q1, 1, 5300, Store
2024, Q2, 2, 5800, Store
2024, Q3, 3, 6300, Store
2024, Q4, 4, 7400, Store
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela dinâmica e adicione esses campos como dimensões de linha:

* ` BudgetYear
                                       `

* `Category`

Adicione este campo como uma dimensão de coluna:

* `BudgetQuarter`

Crie as seguintes medidas:

* `=Sum(BudgetAmount)` para calcular o valor do orçamento de vendas.

* `=RangeSum(First(Sum(BudgetAmount), 1, QuarterNo))` para calcular o total corrente das vendas do orçamento para cada trimestre, somando o intervalo do primeiro trimestre até `QuarterNo`, conforme avaliado para cada trimestre.

Tabela de resultados

| BudgetYear<br><br>Categoria | T1 | T2 | T3 | T4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) | Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) | Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) | Sum(BudgetAmount) | RangeSum(First(Sum(BudgetAmount), 1, QuarterNo)) |  |
| (-) 2023 | 7200 | 7200 | 8000 | 15200 | 9200 | 24400 | 11200 | 35600 |
| On-line | 2100 | 2100 | 2500 | 4600 | 3100 | 7700 | 4100 | 11800 |
| Armazenar | 5100 | 5100 | 5500 | 10600 | 6100 | 16700 | 7100 | 23800 |
| (-) 2024 | 7600 | 7600 | 8600 | 16200 | 9600 | 25800 | 11800 | 37600 |
| On-line | 2300 | 2300 | 2800 | 5100 | 3300 | 8400 | 4400 | 12800 |
| Armazenar | 5300 | 5300 | 5800 | 11100 | 6300 | 17400 | 7400 | 24800 |

Os resultados mostram os valores do orçamento para cada `Year` e `Category`, e o total corrente por `Quarter`. Por exemplo, em `Q2` de `2023`, `QuarterNo` é `2`. Portanto, a expressão da função é avaliada como `RangeSum(First(Sum(BudgetAmount), 1, 2))`, que soma as colunas `BudgetAmount` para `Q1` (`7200`) e `Q2` (`8000`) e retorna o valor `15200`. O resultado retorna o total das colunas `Sum(BudgetAmount)` para `Q1` e `Q2`. Em `2024`, para a `Category Online`, a `Sum(BudgetAmount)` para `Q1` é `2300` e, para `Q2`, é `2800`. Portanto, a expressão `RangeSum` retorna `5100`.