# Top - diagramfunctie

Top() evalueert een uitdrukking in de eerste rij (bovenste rij) van een kolomsegment in een tabel. De rij waarvoor deze waarde wordt berekend is afhankelijk van de waarde van offset, indien aanwezig. De bovenste rij is de standaardwaarde. Voor andere diagrammen dan tabellen, wordt bij Top() de eerste rij van de huidige kolom in het equivalent van de standaard tabel in het diagram geëvalueerd.

Syntaxis:

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

Retourgegevenstypen: dubbele waarde

Argumenten

| Argument | Beschrijving |
| --- | --- |
| expr | De uitdrukking die of het veld dat de gegevens bevat die moeten worden gemeten. |
| offset | Als een offset of n groter dan 1 wordt opgegeven, wordt de evaluatie van de uitdrukking n rijen omlaag verplaatst onder de bovenste rij.<br><br>Als een negatief getal voor de beginwaarde wordt opgegeven, werkt de functie Top op dezelfde wijze als de functie Bottom met het overeenkomstige positieve getal als beginwaarde. |
| count | Als een derde parameter count groter dan 1 is aangegeven, retourneert de functie een bereik van count waarden. Een waarde voor elk van de laatste count rijen van het huidige kolomsegment. In deze vorm kan de functie worden gebruikt als argument voor een van de speciale bereikfuncties. [Bereikfuncties](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm) |
| TOTAL | Als de tabel eendimensionaal is of als de kwalificatie TOTAL wordt gebruikt als argument, is het huidige kolomsegment altijd gelijk aan de hele kolom.<br><br>[Het aggregatiebereik definiëren](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

InformatieEen kolomsegment wordt gedefinieerd als een opeenvolgende subset van cellen die dezelfde waarden hebben voor de dimensies in de huidige sorteervolgorde. Interrecord-diagramfuncties worden berekend in het kolomsegment met uitzondering van de dimensie uiterst rechts in de equivalente strakke tabel. Als er slechts één dimensie is in het diagram, of als de kwalificatie TOTAL is opgegeven, wordt de uitdrukking geëvalueerd voor de volledige tabel.

InformatieAls de tabel of het equivalent van de tabel meerdere verticale dimensies heeft, omvat het huidige kolomsegment alleen rijen met dezelfde waarden als de huidige rij in alle dimensiekolommen, met uitzondering van de kolom waarin de laatste dimensie wordt weergegeven in de onderlinge sorteervolgorde van de velden.

Beperkingen:

* Recursieve oproepen retourneren een NULL-waarde.

* Het is niet toegestaan te sorteren op y-waarden in grafieken of op uitdrukkingskolommen in tabellen als deze diagramfunctie wordt gebruikt in een van de uitdrukkingen van de grafiek. Deze sorteeropties worden daarom automatisch uitgeschakeld. Als u deze diagramfunctie gebruikt in een visualisatie of tabel, wordt de sortering van de visualisatie teruggezet naar de gesorteerde invoer van deze functie.

Voorbeeld: diagramuitdrukkingen

| Voorbeeld | Resultaat |
| --- | --- |
| `Top( Sum(Sales) )` | Retourneert de waarde van `Sales` voor de eerste (bovenste) rij van een kolomsegment in een tabel. |

## Voorbeeld - Basisprincipes voor Top

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

#### Diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `Year`

  * `Sales`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:

* `Year`

Maak de volgende metingen:

* `=Sum(Sales)`, om de jaaromzet te vinden.

* `=Top(Sum(Sales))`, om de verkoopwaarde voor het eerste jaar te vinden, dat is de eerste (bovenste) rij van een kolom in een tabel.

* `=Sum(Sales) - Top(Sum(Sales))`, om de variantie tussen de `Sales` waarde van de huidige rij en de waarde voor de eerste (bovenste) rij van een kolom te berekenen.

* `=Sum(Sales)-Top(Sum(Sales), 3)`, om de variantie tussen de verkoopwaarde van de huidige rij en de waarde van de 3e rij van boven.

* `=(Sales - Top(Sales)) / Top(Sales)`, om de verandering in `Sales` in vergelijking tot de eerste rij als een verhouding / percentage weer te geven. Om deze waarde als percentage weer te geven, selecteert u onder GetalnotatieGetal &gt; Eenvoudige opmaak &gt; 12,34%.

Sorteer de tabel in de dimensie `Year` in oplopende volgorde.

Resultatentabel

| 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% |

Als u de resultaten bekijkt, kunt u de `Sales` waarden in de huidige periode vergelijken met de bovenste (of eerste) periode.

* De meting `Sum(Sales) - Top(Sum(Sales))` retourneert de wijziging in de `Sales` waarden, waarbij de huidige periode wordt vergeleken met de eerste periode.

* De meting `Sum(Sales)-Top(Sum(Sales), 3)` retourneert de som van `Sales` voor de huidige rij minus de derde periode van boven.

* De meting `=(Sales - Top(Sales)) / Top(Sales)` retourneert de wijziging in `Sales` ten opzichte van de eerste periode als een percentage.

TipDeze functie kan behalve in tabellen ook worden gebruikt in diagrammen, bijvoorbeeld in staafdiagrammen.

Doe het volgende:

Maak een staafdiagram en voeg dit veld toe als dimensie:

* `Year`

Maak de volgende meting:

* `=Sum(Sales)- Top(Sum(Sales))`, om de variantie in verkoop tussen de huidige periode en de bovenste periode weer te geven.

Staafdiagram met resultaten voor de functie Top

Staafdiagram met resultaten voor de functie Top

Staafdiagram met resultaten voor de functie TopTop ![Staafdiagram toont de variantie in verkoop tussen de huidige periode en de bovenste (of eerste) periode.](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-top-example.png)

Door de functie `Top` in een staafdiagram te gebruiken, krijgt u een visuele vergelijking van de variantie tussen de verkopen van de huidige periode en die van de bovenste (of eerste) periode.

## Voorbeeld 5 – Scenario met Top

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

#### Diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `OrderID`

  * `Product`

  * `SalesValue`

  * `OrderDate`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:

* `Product`

Maak de volgende metingen:

* `=RangeAvg(Top(Sum(SalesValue),1,3))` om het gemiddelde van de drie bovenste rijen te retourneren.

* `=Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3))`, om de variantie tussen de huidige rij en het gemiddelde van de 3 bovenste rijen te berekenen.

* `=Sum(SalesValue)` om de totale `SalesValue` voor de huidige rij te berekenen.

Resultatentabel

| 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 |

De resultaten laten zien hoe u een combinatie van `RangeSum` en de functie `Top` kunt gebruiken om verkoopwaarden te analyseren en vergelijken.

## Voorbeeld - Diagramuitdrukking met gebruik van Top

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

#### Diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Twee gegevenstabellen genaamd `Monthnames` en `Sales2013`.

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:

* `Customer`

Maak de volgende metingen:

* `=Sum(Sales)`, om de som van verkoop te berekenen.

* `=Top(Sum(Sales))`, om de som van de verkopen van de `Customer` in de bovenste rij te tonen.

* `=Sum(Sales)+Top(Sum(Sales))`, om de `Sum(Sales)` waarde van de huidige `Customer` toe te voegen aan de `Customer` in de bovenste rij.

* `=Sum(Sales)+Top(Sum(Sales), 3)`, om de `Sum(Sales)` waarde toe te voegen van de huidige `Customer` met de waarde voor de `Customer` die derde is van de bovenste rij.

Resultatentabel

| 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 |

De meting `Top(Sum(Sales))` retourneert `587` voor alle rijen omdat dit de waarde van de bovenste rij is: `Astrida`.

Voor de meting `Sum(Sales)+Top(Sum(Sales))` retourneert de rij `Betacab` `1126`, dit het resultaat van het optellen van de `Sum(Sales)` waarde voor `Betacab` en `Astrida`, de `Customer` in de bovenste rij.

Voor de meting `Sum(Sales)+Top(Sum(Sales), 3)`, is het argument `offset` ingesteld op `3`. De uitdrukking voegt de `Sum(Sales)` waarde voor de huidige rij en de derde rij van boven toe, `Canutility`. De waarde `1440` wordt bijvoorbeeld geretourneerd voor de klant `Divadip`. Dit is het resultaat van het optellen van de `Sum(Sales)` waarde voor `Divadip` en de `SumSales` voor `Canutility` (`757`+`683`).

## Meer informatie

* [Bottom - diagramfunctie](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Above - diagramfunctie](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Sum - diagramfunctie](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)
* [RangeAvg Script- en diagramfunctie](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)
* [Bereikfuncties](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)