# Before - funzione per grafici

Before() restituisce il valore di un'espressione valutata con i valori di dimensione di una tabella pivot così come appaiono nella colonna precedente a quella attuale all'interno di un segmento di riga della tabella pivot.

Sintassi:

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

Nota informaticaQuesta funzione restituisce NULL in tutti i tipi di grafico, ad eccezione delle tabelle pivot.

Nota informaticaL'ordinamento sui valori y nei grafici o l'ordinamento per colonne di espressione nelle tabelle non è consentito quando si utilizza questa funzione di grafico in una qualsiasi delle espressioni del grafico. Queste alternative di ordinamento verranno perciò disattivate automaticamente. Quando si utilizza questa funzione di grafico in una visualizzazione o in una tabella, l'ordinamento della visualizzazione torna all'ordinamento inserito in questa funzione.

Argomenti

| Argomento | Descrizione |
| --- | --- |
| expr | L'espressione o il campo contenente i dati da misurare. |
| offset | Se si specifica un offset n, maggiore di 1, la valutazione dell'espressione viene spostata di n colonne verso sinistra rispetto alla colonna attuale.<br><br>Specificando un offset uguale a 0 verrà valutata l'espressione nella colonna attuale.<br><br>Specificando un numero di offset negativo, la funzione Before diventa equivalente alla funzione After con il numero di offset positivo corrispondente. |
| count | Specificando un terzo parametro count maggiore di 1, la funzione restituirà una scala di valori, uno per ciascuna delle colonne della tabella fino al valore di count, contando verso sinistra a partire dalla cella originaria. |
| TOTAL | Se la tabella è unidimensionale o se è utilizzato il qualificatore TOTAL come argomento, il segmento colonna attuale sarà sempre uguale all'intera colonna.<br><br>[Definizione dell'ambito di aggregazione](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

In corrispondenza della prima colonna di un segmento di riga verrà restituito un valore NULL, perché non vi sono colonne che la precedono.

Se una tabella pivot include più dimensioni orizzontali, il segmento della riga attuale includerà solo le colonne con gli stessi valori della colonna attuale in tutte le righe della dimensione, tranne per la riga che visualizza l'ultima dimensione orizzontale dell'ordinamento tra campi. La sequenza di ordinamento tra campi per le dimensioni orizzontali nelle tabelle pivot è definita semplicemente dall'ordine delle dimensioni dall'alto verso il basso.

Esempio: espressioni del grafico

| Esempio | Risultato |
| --- | --- |
| `Before( Sum(Sales ))` | Restituisce la somma per `Sales` dalla colonna precedente immediatamente a sinistra rispetto alla colonna corrente. |
| `Before( Sum(Sales ), 2)` | Restituisce la somma per `Sales` dalla colonna che si trova due colonne a sinistra della colonna corrente. |
| `Before( Total Sum( Sales ))` | Restituisce la somma totale per `Sales` dalla colonna precedente immediatamente a sinistra rispetto alla colonna corrente. |
| `RangeAvg ( Before(Sum(x),1,3))` | Restituisce la media dei tre risultati della funzione `sum(x)` calcolata in base alle tre colonne immediatamente a sinistra di quella attuale. |

## Esempio: principi fondamentali della funzione Before

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

#### Espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `Year`

  * `Quarter`

  * `Sales`

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella pivot e aggiungere questo campo come dimensione di riga:

* `Year`

Aggiungere questo campo come dimensione di colonna:

* `Quarter`

Creare le seguenti misure:

* `=Sum(Sales)`, per calcolare la somma delle vendite.

* `=Before(Sum(Sales))`, per mostrare la somma dei valori di vendita nel trimestre precedente.

Tabella dei risultati

| Anno | Q1 | Q2 | Q3 | Q4 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Somma(Vendite) | Prima(Somma(Vendite)) | Somma(Vendite) | Prima(Somma(Vendite)) | Somma(Vendite) | Prima(Somma(Vendite)) | Somma(Vendite) | Prima(Somma(Vendite)) |  |
| 2023 | 5000 | - | 4000 | 5000 | 6000 | 4000 | 7000 | 6000 |

Analizzando i risultati, si può notare come la funzione `Before` restituisce il valore della colonna precedente che si trova immediatamente a sinistra della colonna `Sum(Sales)` per ogni `Quarter`. Per esempio, in T4 il valore `Sum(Sales)` per quel periodo è `7000`. L'output della funzione `Before` per `Q4` è `6000`, che è il valore della colonna immediatamente a sinistra di `Sum(Sales)` per `Q4`, cioè `Sum(Sales)` per `Q3`.

## Esempio: utilizzo della funzione Before per calcolare la crescita delle vendite anno dopo anno

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

#### Espressione del grafico

Panoramica

Un set di dati contiene i dati sulle vendite per molti anni. L'azienda vuole presentare le vendite totali per ogni anno e l'aumento delle vendite in base al valore dell'anno precedente.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `Year`

  * `Sales`

Script di caricamento

```
Example:
Load * inline [
Year, Sales
2021, 1300
2022, 1800
2023, 2000
2024, 2100
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella pivot e aggiungere questo campo come dimensione di colonna:

* ` Year
                                       `

Creare le seguenti misure:

* `=Sum(Sales)`, per calcolare la somma delle vendite.

* `=(Sum(Sales) - Before(Sum(Sales))) / Before(Sum(Sales))`, per calcolare la crescita annuale delle vendite. Per mostrare questo valore come una percentuale, sotto la voce Formattazione numero, selezionare Numero &gt; Formattazione semplice &gt; 12,34%.

Tabella dei risultati

| 2021 | 2022 | 2023 | 2024 |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Somma(Vendite) | (Somma(Vendite) - Prima(Somma(Vendite)))/Prima(Somma(Vendite)) | Somma(Vendite) | (Somma(Vendite) - Prima(Somma(Vendite)))/Prima(Somma(Vendite)) | Somma(Vendite) | (Somma(Vendite) - Prima(Somma(Vendite)))/Prima(Somma(Vendite)) | Somma(Vendite) | (Somma(Vendite) - Prima(Somma(Vendite)))/Prima(Somma(Vendite)) |
| 1300 | - | 1800 | 38.46% | 2000 | 11.11% | 2100 | 5.00% |

L'output della funzione `Before` restituisce la crescita annuale in base ai dati di vendita dell'anno precedente. Per esempio, la somma delle vendite per `2022` era superiore del `38.46%` rispetto al valore `Sum(Sales)` per `2021`.

Nota di suggerimentoÈ possibile anche utilizzare la funzione `After` per eseguire lo stesso calcolo dell'aumento delle vendite in questo scenario. Quando si specifica un numero di offset negativo nei parametri della funzione, la funzione `After` diventa equivalente alla funzione `Before` con il numero di offset positivo corrispondente. Ad esempio, la seguente espressione che utilizza la funzione `After` (con un valore di offset negativo di `-1`) restituisce gli stessi risultati di crescita annuale delle vendite della funzione `Before`:   
`=(Sum(Sales)-After(Sum(Sales),-1))/(After(Sum(Sales),-1))`.