# Bottom - funzione per grafici

Bottom() valuta un'espressione nell'ultima riga (inferiore) di un segmento di colonna in una tabella. La riga per la quale viene calcolata dipende dal valore dell'offset, se presente, e l'impostazione predefinita è la riga direttamente nella parte inferiore. Per i grafici diversi dalle tabelle, la valutazione viene effettuata sull'ultima riga della colonna attuale nell'equivalente di tabella lineare del grafico.

Sintassi:

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

Tipo di dati restituiti: duale

Argomenti

| Argomento | Descrizione |
| --- | --- |
| expr | L'espressione o il campo contenente i dati da misurare. |
| offset | Specificando un offset n maggiore di 1, la valutazione dell'espressione viene spostata di n righe sopra rispetto alla riga inferiore.<br><br>Specificando un numero di offset negativo, la funzione Bottom diventa equivalente alla funzione Top con il numero di offset positivo corrispondente. |
| count | Specificando un terzo parametro count maggiore di 1, la funzione restituirà non un solo valore, ma una scala di valori count, uno per ciascuna delle ultime righe count del segmento di colonna attuale. In questo modulo la funzione può essere utilizzata come argomento per una qualsiasi delle funzioni di scala speciali. [Funzioni di scala](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm) |
| 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) |

Nota informaticaUn segmento di colonna viene definito come un sottogruppo consecutivo di celle con gli stessi valori per le dimensioni nell'ordine attuale. Le funzioni grafiche intra-record vengono calcolate nel segmento colonna escludendo la dimensione più a destra nel grafico della tabella lineare equivalente. Se nel grafico è presente una sola dimensione oppure è specificato il qualificatore TOTAL, l'espressione viene valutata nell'intera tabella.

Nota informaticaSe la tabella o l'equivalente di tabella include più dimensioni verticali, il segmento colonna attuale includerà solo righe contenenti gli stessi valori della riga attuale in tutte le colonne di dimensione, eccetto la colonna che mostra l'ultima dimensione nell'ordinamento tra campi.

Limiti:

* Le chiamate ricorrenti restituiranno NULL.

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

Esempio: espressioni dei grafici

| Esempio | Risultato |
| --- | --- |
| `Bottom( Sum(Sales) )` | Restituisce il valore di `Sales` per l'ultima riga (in basso) di un segmento di colonna in una tabella. |

## Esempio: principi fondamentali della funzione Bottom

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

  * `Sales`

Script di caricamento

```
Example:
LOAD * INLINE [
Year, Sales
2019, 1000
2020, 1500
2021, 1200
2022, 1800
2023, 1700
];
```

Risultati

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

* `Year`

Creare le seguenti misure:

* `=Sum(Sales)`, per individuare le vendite annuali.

* `=Bottom(Sum(Sales))`, per individuare il valore delle vendite per l'ultimo anno.

* `=Sum(Sales) - Bottom(Sum(Sales))`, per calcolare la varianza tra il valore `Sales` dell'anno in corso e il valore per l'ultimo anno.

* `=Sum(Sales)+Bottom(Sum(Sales), 3)`, per calcolare la somma dei valori di vendita dell'anno corrente e il valore del terzultimo anno.

* `=(Sales - Bottom(Sales)) / Bottom(Sales)`, per restituire la variazione di `Sales` come rapporto/percentuale in confronto all'ultimi anno. Per mostrare questo valore come una percentuale, sotto la voce Formattazione numero, selezionare Numero &gt; Formattazione semplice &gt; 12,34%.

Ordinare la tabella per la dimensione `Year` in ordine crescente.

Tabella dei risultati

| Year | Sum(Sales) | Bottom(Sum(Sales)) | Sum(Sales) - Bottom(Sum(Sales)) | Sum(Sales)+Bottom(Sum(Sales), 3) | (Sales - Bottom(Sales)) / Bottom(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | 1700 | 5500 | 8400 | - |
| 2019 | 1000 | 1700 | -700 | 2200 | -41.18% |
| 2020 | 1500 | 1700 | -200 | 2700 | -11.76% |
| 2021 | 1200 | 1700 | -500 | 2400 | -29.41% |
| 2022 | 1800 | 1700 | 100 | 3000 | 5.88% |
| 2023 | 1700 | 1700 | 0 | 2900 | 0.00% |

Osservando i risultati, è possibile confrontare i valori per `Sales` nel periodo corrente con l'ultimo periodo, ossia quello più recente.

* La misura `Sum(Sales) - Bottom(Sum(Sales))` restituisce la variazione nei valori di `Sales`, confrontando il periodo corrente con quello più recente.

* La misura `Sum(Sales)+Bottom(Sum(Sales), 3)` restituisce la somma di `Sales` per la riga corrente e il terzultimo periodo.

* La misura `(Sales - Bottom(Sales)) / Bottom(Sales)` restituisce la variazione di `Sales` in confronto al periodo più recente come una percentuale.

Nota di suggerimentoQuesta funzione può essere utilizzata nei grafici diversi dalle tabelle, ad esempio nei grafici a barre.

Procedere come indicato di seguito:

Creare un grafico a barre, quindi aggiungere questo campo come dimensione:

* `Year`

Creare la seguente misura:

* `=Sum(Sales) - Bottom(Sum(Sales))`, per restituire la varianza delle vendite tra il periodo corrente e il periodo più recente.

Grafico a barre che mostra i risultati della funzione Bottom

Grafico a barre che mostra i risultati della funzione Bottom

Grafico a barre che mostra i risultati della funzione BottomBottom ![Grafico a barre che mostra la varianza delle vendite tra il periodo corrente e il periodo più recente.](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-bottom-example.png)

L'utilizzo della funzione `Bottom` in un grafico a barre fornisce un confronto visivo della varianza tra le vendite del periodo corrente rispetto a quelle del periodo più recente.

## Esempio: scenario per l'applicazione della funzione Bottom

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

  * `OrderID`

  * `Product`

  * `SalesValue`

  * `OrderDate`

Script di caricamento

```
Example:
LOAD * INLINE [
OrderID, Product, SalesValue, OrderDate
1, "Product A", 500, '2023-01-10'
2, "Product B", 300, '2023-01-15'
3, "Product C", 450, '2023-02-01'
4, "Product D", 700, '2023-02-20'
5, "Product E", 350, '2023-03-05'
];
```

Risultati

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

* `Product`

Creare le seguenti misure:

* `=RangeAvg (Bottom(Sum(SalesValue),1,3))`, per restituire la media delle 3 righe più recenti.

* `=Sum(SalesValue) - RangeAvg (Bottom(Sum(SalesValue),1,3))`, per calcolare la varianza tra la riga corrente e la media delle 3 righe più recenti.

* `=Sum(SalesValue)` per calcolare il totale di `SalesValue` per la riga corrente.

Tabella dei risultati

| Product | RangeAvg (Bottom(Sum(SalesValue),1,3)) | Sum(SalesValue) - RangeAvg (Bottom(Sum(SalesValue),1,3)) | Sum(SalesValue) |
| --- | --- | --- | --- |
| Totals | 500 | 1800 | 2300 |
| 2019 | 500 | 0 | 500 |
| 2020 | 500 | -200 | 300 |
| 2021 | 500 | -50 | 450 |
| 2022 | 500 | 200 | 700 |
| 2023 | 500 | -150 | 350 |

I risultati mostrano come è possibile utilizzare una combinazione della funzione `RangeSum` e della funzione `Bottom` per analizzare e confrontare i valori di vendita.

## Esempio: espressione del grafico che usa Bottom

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

* Due tabelle dati chiamate `Monthnames` e `Sales2013`.

Script di caricamento

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

Risultati

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

* `Customer`

Creare le seguenti misure:

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

* `=Bottom(Sum(Sales))`, per mostrare la somma dei valori di vendita per `Customer` nella riga sottostante.

* `=Sum(Sales)+Bottom(Sum(Sales))`, per sommare il valore `Sum(Sales)` dell'attuale `Customer` a quello di `Customer` nella riga inferiore.

* `=Sum(Sales)+Bottom(Sum(Sales), 3)`, per sommare il valore `Sum(Sales)` dell'attuale `Customer` a quello di `Customer`, che è terzo a partire dalla riga inferiore.

Tabella dei risultati

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

La misura `Bottom(Sum(Sales))` restituisce `757` per tutte le righe perché questo è il valore dell'ultima riga: `Divadip`.

Per la misura `Sum(Sales)+Bottom(Sum(Sales))`, la riga `Astrida` restituisce `1344`, che è il risultato per aggiungere il valore `Sum(Sales)` a `Astrida` e `Divadip`, `Customer` nella riga inferiore.

Per la misura `Sum(Sales)+Bottom(Sum(Sales), 3)`, l'argomento `offset` è impostato su `3`. L'espressione aggiunge il valore `Sum(Sales)` per la riga corrente e la terza riga dal basso, `Betacab`. Ad esempio, il valore `1126` viene restituito per il cliente `Astrida`. Questo è il risultato dell'aggiunta del valore `Sum(Sales)` per `Astrida` e del valore `SumSales` per `Betacab` (`587`+`539`).

## Ulteriori informazioni

* [Top - funzione per grafici](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)