# Top - diagramfunktion

Top() utvärderar ett uttryck på den första (översta) raden i ett kolumnsegment i en tabell. Vilken rad som den beräknas för beror på värdet för offset, om sådant finns, standardvärdet är raden högst upp. För diagram som inte är tabeller görs Top()-utvärderingen på den första raden i den aktuella kolumnen i diagrammets raka tabellmotsvarighet.

Syntax:

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

Returnerad datatyp: dual

Argument

| Argument | Beskrivning |
| --- | --- |
| expr | Det uttryck eller fält som innehåller de data som ska mätas. |
| offset | Att specificera en offset på n, större än 1, flyttar ner utvärderingen av uttrycket n rader nedanför den översta raden.<br><br>Anges ett negativt värde för startpunkten gör det att Top-funktionen fungerar likadant som Bottom-funktionen med motsvarande positivt värde för startpunkten. |
| count | Om en tredje parameter, count, anges till större än 1, returnerar funktionen ett intervall av count-värden, ett för var och en av de sista count-raderna i det aktuella kolumnsegmentet. I denna form kan funktionen användas som argument i någon av de speciella intervallfunktionerna. [Intervallfunktioner](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm) |
| TOTAL | Om tabellen är endimensionell eller om kvalificeraren iTOTAL används som argument, motsvarar det aktuella kolumnsegmentet alltid hela kolumnen.<br><br>[Definiera aggregeringens omfattning](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Anteckning om informationEtt kolumnsegment definieras som en konsekutiv underuppsättning med celler som har samma värden för dimensionerna i den aktuella sorteringsordningen. Postöverskridande diagramfunktioner beräknas i kolumnsegmentet exklusive dimensionen längst till höger i motsvarande raka tabelldiagram. Om det enbart finns en dimension i diagrammet, eller om kvalificeraren TOTAL anges, utvärderas uttrycket över en hel tabell.

Anteckning om informationOm tabellen eller diagrammets tabellmotsvarighet har flera vertikala dimensioner, inbegriper det aktuella kolumnsegmentet endast rader som har samma värden som den aktuella raden i samtliga dimensionskolumner, utom den kolumn som visar den sista dimensionen i fältens inbördes sorteringsordning.

Begränsningar:

* Rekursiva anrop returnerar NULL.

* Sortering på y-värden i diagram, eller sortering efter uttryckskolumner i tabeller, är inte tillåtet när denna diagramfunktion används i något av diagrammets uttryck. Dessa sorteringsalternativ är därför automatiskt inaktiverade. När du använder den här diagramfunktion i en visualisering eller tabell kommer sorteringen av visualiseringen att återgå till den sorterade inmatningen av den här funktionen.

Exempel: diagramuttryck

| Exempel | Resultat |
| --- | --- |
| `Top( Sum(Sales) )` | Returnerar värdet på `Sales` för den första (översta) raden i ett kolumnsegment i en tabell. |

## Exempel – grunderna i Top

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

#### Diagramuttryck

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `Year`

  * `Sales`

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:

* `Year`

Skapa följande mått:

* `=Sum(Sales)`, för att få fram den årliga försäljningen.

* `=Top(Sum(Sales))`, för att få fram försäljningsvärdet för det första året, det vill säga den första (översta) raden i en kolumn i en tabell.

* `=Sum(Sales) - Top(Sum(Sales))`, för att beräkna variansen mellan värdet på `Sales` för innevarande rad och värdet för den första (översta) raden i en kolumn.

* `=Sum(Sales)-Top(Sum(Sales), 3)`, för att beräkna variansen mellan försäljningsvärdet för innevarande rad och värdet för den tredje raden uppifrån.

* `=(Sales - Top(Sales)) / Top(Sales)`, för att ange förändringen i `Sales` som en kvot/procentandel jämfört med första raden. Om du vill visa värdet i procent väljer du Nummer &gt; Enkel formatering &gt; 12,34% under Nummerformatering.

Sortera tabellen efter dimensionen `Year` i stigande ordning.

Resultattabell

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

När du tittar på resultaten kan du jämföra `Sales`-värdena under den aktuella perioden med den översta (eller första) perioden.

* Måttet `Sum(Sales) - Top(Sum(Sales))` ger förändringen i `Sales`-värdet vid en jämförelse av aktuell period med den första.

* Måttet `Sum(Sales)-Top(Sum(Sales), 3)` visar summan av `Sales` för den aktuella raden minus den tredje raden uppifrån.

* Måttet `=(Sales - Top(Sales)) / Top(Sales)` ger förändringen i `Sales` jämfört med första perioden i procent.

Anteckning om tipsFunktionen kan även användas i andra diagram, inte bara tabeller – exempelvis i stapeldiagram.

Gör följande:

Skapa ett stapeldiagram och lägg sedan till det här fältet som en dimension:

* `Year`

Skapa följande mått:

* `=Sum(Sales)- Top(Sum(Sales))`för att returnera variansen i försäljning mellan den aktuella perioden och den översta perioden.

Stapeldiagram som visar resultaten för funktionen Top

Stapeldiagram som visar resultaten för funktionen Top

Stapeldiagram som visar resultaten för funktionen TopTop ![Stapeldiagram som visar variansen i försäljning mellan den aktuella perioden och den översta (eller första) perioden.](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-top-example.png)

Om du använder funktionen `Top` i ett stapeldiagram får du en visuell jämförelse av variansen mellan försäljningen under den aktuella perioden och försäljningen under den översta (eller första) perioden.

## Exempel – Top-scenario

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

#### Diagramuttryck

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `OrderID`

  * `Product`

  * `SalesValue`

  * `OrderDate`

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:

* `Product`

Skapa följande mått:

* `=RangeAvg(Top(Sum(SalesValue),1,3))` för att returnera medelvärdet av de tre översta raderna.

* `=Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3))`, för att beräkna variansen mellan den aktuella raden och genomsnittet av de tre översta raderna.

* `=Sum(SalesValue)`, för att beräkna totalt `SalesValue` för den aktuella raden.

Resultattabell

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

Resultaten visar hur du kan använda kombinationen av funktionerna `RangeSum` och `Top` för att analysera och jämföra försäljningsvärden.

## Exempel – diagramuttryck som använder Top

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

#### Diagramuttryck

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* Två datatabeller som heter `Monthnames` och `Sales2013`.

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:

* `Customer`

Skapa följande mått:

* `=Sum(Sales)`, för att beräkna summan av försäljningen.

* `=Top(Sum(Sales))`, för att visa summan av försäljningen för `Customer` på översta raden.

* `=Sum(Sales)+Top(Sum(Sales))`, för att lägga till `Sum(Sales)`-värdet av aktuell `Customer` med `Customer` i den översta raden.

* `=Sum(Sales)+Top(Sum(Sales), 3)`, för att lägga till `Sum(Sales)`-värdet av aktuell `Customer` med `Customer` i tredje raden uppifrån.

Resultattabell

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

Måttet `Top(Sum(Sales))` returnerar `587` för alla rader eftersom det är värdet för den översta raden: `Astrida`.

För måttet `Sum(Sales)+Top(Sum(Sales))`, ger raden `Betacab` `1126`, vilket är resultatet av att lägga till `Sum(Sales)`-värdet för `Betacab` och `Astrida`, som är `Customer` i översta raden.

För måttet `Sum(Sales)+Top(Sum(Sales), 3)` är argumentet `offset` inställt på `3`. Uttrycket lägger till värdet `Sum(Sales)` för den aktuella raden och den tredje raden uppifrån, `Canutility`. Till exempel returneras värdet `1440` för kunden `Divadip`. Detta är resultatet av att lägga till värdet `Sum(Sales)` för `Divadip` och värdet `SumSales` för `Canutility` (`757`+`683`).

## Mer information

* [Bottom - diagramfunktion](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Above - diagramfunktion](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Sum - diagramfunktion](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)
* [RangeAvg Skript- och diagramfunktion](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)
* [Intervallfunktioner](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)