# Top - funzione per grafici

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

Sintassi:

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

Tipo di dati restituiti: duale

Argomenti

| Argomento | Descrizione |
| --- | --- |
| expr | L'espressione o il campo contenente i dati da misurare. |
| offset | Se si specifica un offset di n maggiore di 1, la valutazione dell'espressione viene spostata in basso di n righe rispetto alla riga superiore.<br><br>Specificando un numero di offset negativo, la funzione Top diventa equivalente alla funzione Bottom con il numero di offset positivo corrispondente. |
| count | Specificando un terzo parametro count maggiore di 1, la funzione restituirà 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 |
| --- | --- |
| `Top( Sum(Sales) )` | Restituisce il valore di `Sales` per la prima riga (in alto) di un segmento di colonna in una tabella. |

## Esempio: principi fondamentali della funzione Top

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

* `=Top(Sum(Sales))`, per individuare il valore delle vendite per il primo anno, ovvero la prima riga (in alto) di una colonna in una tabella.

* `=Sum(Sales) - Top(Sum(Sales))`, per calcolare la varianza tra il valore `Sales` dell'anno in corso e il valore per la prima riga (in alto) di una colonna.

* `=Sum(Sales)-Top(Sum(Sales), 3)`, per calcolare la varianza tra il valore delle vendite della riga corrente e il valore della terza riga dall'alto.

* `=(Sales - Top(Sales)) / Top(Sales)`, per restituire la variazione di `Sales` come rapporto/percentuale in confronto alla prima riga. 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) | Top(Sum(Sales)) | Sum(Sales) - Top(Sum(Sales)) | Sum(Sales)-Top(Sum(Sales), 3) | (Sales - Top(Sales)) / Top(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | 1000 | 6200 | 6000 | - |
| 2019 | 1000 | 1000 | 0 | -200 | 0.00% |
| 2020 | 1500 | 1000 | 500 | 300 | 50.00% |
| 2021 | 1200 | 1000 | 200 | 0 | 20.00% |
| 2022 | 1800 | 1000 | 800 | 600 | 80.00% |
| 2023 | 1700 | 1000 | 700 | 500 | 70.00% |

Osservando i risultati, è possibile confrontare i valori per `Sales` nel periodo corrente con il periodo superiore (o primo).

* La misura `Sum(Sales) - Top(Sum(Sales))` restituisce la variazione nei valori di `Sales`, confrontando il periodo corrente con il primo periodo.

* La misura `Sum(Sales)-Top(Sum(Sales), 3)` restituisce la somma di `Sales` per la riga corrente meno il terzo periodo dall'alto.

* La misura `=(Sales - Top(Sales)) / Top(Sales)` restituisce la variazione di `Sales` in confronto al primo periodo 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)- Top(Sum(Sales))`, per restituire la varianza delle vendite tra il periodo corrente e il periodo superiore.

Grafico a barre che mostra i risultati della funzione Top

Grafico a barre che mostra i risultati della funzione Top

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

L'utilizzo della funzione `Top` in un grafico a barre fornisce un confronto visivo della varianza tra le vendite del periodo corrente rispetto al periodo superiore (o il primo).

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

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.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(Top(Sum(SalesValue),1,3))` per restituire la media delle tre righe superiori.

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

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

Tabella dei risultati

| Product | RangeAvg(Top(Sum(SalesValue),1,3)) | Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3)) | Sum(SalesValue) |
| --- | --- | --- | --- |
| Totals | 416.67 | 1883.33 | 2300 |
| 2019 | 416.67 | 83.33 | 500 |
| 2020 | 416.67 | --116.67 | 300 |
| 2021 | 416.67 | 33.33 | 450 |
| 2022 | 416.67 | 283.33 | 700 |
| 2023 | 416.67 | -66.67 | 350 |

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

## Esempio: espressione del grafico che usa Top

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

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

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

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

Tabella dei risultati

| Customer | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales)+Top(Sum(Sales)) | Sum(Sales)+Top(Sum(Sales), 3) |
| --- | --- | --- | --- | --- |
| Totals | 2566 | 587 | 3153 | 3249 |
| Astrida | 587 | 587 | 1174 | 1270 |
| Betacab | 539 | 587 | 1126 | 1222 |
| Canutilty | 683 | 587 | 1270 | 1366 |
| Divadip | 757 | 587 | 1344 | 1440 |

La misura `Top(Sum(Sales))` restituisce `587` per tutte le righe perché questo è il valore della riga superiore: `Astrida`.

Per la misura `Sum(Sales)+Top(Sum(Sales))`, la riga `Betacab` restituisce `1126`, che è il risultato per aggiungere il valore `Sum(Sales)` a `Betacab` e `Astrida`, `Customer` nella riga superiore.

Per la misura `Sum(Sales)+Top(Sum(Sales), 3)`, l'argomento `offset` è impostato su `3`. L'espressione aggiunge il valore `Sum(Sales)` per la riga corrente e la terza riga dall'alto, `Canutility`. Ad esempio, il valore `1440` viene restituito per il cliente `Divadip`. Questo è il risultato dell'aggiunta del valore `Sum(Sales)` per `Divadip` e del valore `SumSales` per `Canutility` (`757`+`683`).

## Ulteriori informazioni

* [Bottom - funzione per grafici](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Above - funzione per grafici](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Sum - funzione per grafici](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)
* [RangeAvg Funzione per script e grafici](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)
* [Funzioni di scala](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)