# Top - Diagrammfunktion

Top() interpretiert eine Formel in der ersten (obersten) Zeile eines Spaltenabschnitts in einer Tabelle. Die Zeile, für welche die Berechnung erfolgt, hängt vom Wert von offset ab; ist dieser vorhanden, wird standardmäßig die oberste Zeile verwendet. In Diagrammen erfolgt anders als in Tabellen mit Top() die Berechnung für die erste Zeile der aktuellen Spalte im entsprechenden Tabellendiagramm.

Syntax:

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

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| expr | Die Formel oder das Feld mit den Daten, die gemessen werden sollen. |
| offset | Ist ein offset von n größer als 1 angegeben, wird die Formel anhand der Werte von n Zeilen berechnet, die unterhalb der obersten Zeile liegen.<br><br>Bei einem negativen Startwert verhält sich die Funktion Top wie die Funktion Bottom mit dem entsprechenden positiven Startwert. |
| count | Ist ein dritter Parameter count größer als 1 angegeben, liefert die Funktion eine Menge von count-Werten, berechnet anhand der letzten count-Zeilen des Spaltenabschnitts. In diesem Formular kann die Funktion als Argument für eine der speziellen Abschnittsfunktionen dienen. [Bereichsfunktionen](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm) |
| TOTAL | Wenn das Diagramm nur eine Dimension hat oder die Formel mit dem Zusatz TOTAL als Argument versehen ist, entspricht der Spaltenabschnitt der gesamten Spalte.<br><br>[Definieren des Aggregierungsbereichs](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

InformationshinweisEin Spaltenabschnitt ist als aufeinanderfolgende Teilmenge an Zellen definiert, welche dieselben Werte für die Dimensionen in der aktuellen Sortierreihenfolge besitzen. Inter-Record-Diagrammfunktionen werden im Spaltenabschnitt berechnet, wobei die rechts außen stehende Dimension im entsprechenden Tabellendiagramm ausgeschlossen wird. Befindet sich nur eine Dimension im Diagramm oder wird der Zusatz TOTAL angegeben, erfolgt die Berechnung über die gesamte Tabelle.

InformationshinweisHat das Diagramm dagegen mehrere vertikale Dimensionen, so umfasst der Spaltenabschnitt nur Zeilen, deren Werte in allen Dimensionen mit Ausnahme der in der Priorität der Sortierfolgen letzten Dimension übereinstimmen.

Beschränkungen:

* Die Rekursion liefert NULL.

* Das Sortieren nach y-Werten in Diagrammen oder nach Formelspalten in Tabellen ist nicht zulässig, wenn diese Diagrammfunktion in einer der Diagrammformeln verwendet wird. Diese Sortierungsoptionen werden daher automatisch deaktiviert. Wenn Sie diese Diagrammfunktion in einer Visualisierung oder Tabelle verwenden, wird die Sortierung der Visualisierung auf die sortierte Eingabe dieser Funktion zurückgesetzt.

Beispiel: Diagrammformeln

| Beispiel | Ergebnis |
| --- | --- |
| `Top( Sum(Sales) )` | Gibt den Wert von `Sales` für die erste (oberste) Zeile eines Spaltensegments in einer Tabelle zurück. |

## Beispiel – Grundlegendes zu Top

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

#### Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Die folgenden Felder in der Datentabelle:

  * `Year`

  * `Sales`

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

* `Year`

Erstellen Sie die folgenden Kennzahlen:

* `=Sum(Sales)`, um den jährlichen Umsatz zu erhalten.

* `=Top(Sum(Sales))`, um den Umsatzwert für das erste Jahr zu finden, d. h. die erste (oberste) Zeile einer Spalte in einer Tabelle.

* `=Sum(Sales) - Top(Sum(Sales))`, um die Varianz zwischen dem `Sales`-Wert der aktuellen Zeile und dem Wert der ersten (obersten) Zeile einer Spalte zu berechnen.

* `=Sum(Sales)-Top(Sum(Sales), 3)`, um die Varianz zwischen dem Umsatzwert der aktuellen Zeile und dem Wert der dritten Zeile von oben zu berechnen.

* `=(Sales - Top(Sales)) / Top(Sales)`, um die Änderung an `Sales` als Verhältnis/Prozentsatz im Vergleich zur ersten Zeile zurückzugeben. Um diesen Wert als Prozentsatz anzuzeigen, wählen Sie unter Zahlenformat die Option Zahl &gt; Standardformatierung &gt; 12.34% aus.

Sortieren Sie die Tabelle nach der Dimension `Year` in aufsteigender Reihenfolge.

Ergebnistabelle

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

Wenn Sie sich die Ergebnisse ansehen, können Sie die Werte von `Sales` im aktuellen Zeitraum mit dem obersten (ersten) Zeitraum vergleichen.

* Die Kennzahl `Sum(Sales) - Top(Sum(Sales))` gibt die Änderung an `Sales`-Werten bei Vergleich des aktuellen Zeitraums mit dem ersten Zeitraum zurück.

* Die Kennzahl `Sum(Sales)-Top(Sum(Sales), 3)` gibt die Summe von `Sales` für die aktuelle Zeile abzüglich des dritten Zeitraums von oben an.

* Die Kennzahl `=(Sales - Top(Sales)) / Top(Sales)` gibt die Änderung an `Sales` bei Vergleich mit dem ersten Zeitraum in Prozent zurück.

TipphinweisDiese Funktion kann auch in anderen Diagrammen als Tabellen wie zum Beispiel in Balkendiagrammen verwendet werden.

Gehen Sie folgendermaßen vor:

Erstellen Sie ein Balkendiagramm und fügen Sie das folgende Feld als Dimension hinzu:

* `Year`

Erstellen Sie die folgende Kennzahl:

* `=Sum(Sales)- Top(Sum(Sales))`, um die Umsatzvarianz zwischen dem aktuellen Zeitraum und dem obersten Zeitraum zurückzugeben.

Balkendiagramm mit Ergebnissen für die Funktion Top

Balkendiagramm mit Ergebnissen für die Funktion Top

Balkendiagramm mit Ergebnissen für die Funktion TopTop ![Balkendiagramm, das die Umsatzvarianz zwischen dem aktuellen Zeitraum und dem obersten (ersten) Zeitraum zeigt.](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-top-example.png)

Die Verwendung der Funktion `Top` in einem Balkendiagramm bietet einen visuellen Vergleich der Varianz zwischen den Umsätzen des aktuellen Zeitraums und des obersten (ersten) Zeitraums.

## Beispiel – Szenario für „Top“

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

#### Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Die folgenden Felder in der Datentabelle:

  * `OrderID`

  * `Product`

  * `SalesValue`

  * `OrderDate`

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

* `Product`

Erstellen Sie die folgenden Kennzahlen:

* `=RangeAvg(Top(Sum(SalesValue),1,3))`, um den Durchschnitt der drei obersten Zeilen zurückzugeben.

* `=Sum(SalesValue) - RangeAvg (Top(Sum(SalesValue),1,3))`, um die Varianz zwischen der aktuellen Zeile und dem Durchschnitt der obersten drei Zeilen zu berechnen.

* `=Sum(SalesValue)` um den Gesamtwert von `SalesValue` für die aktuelle Zeile zu berechnen.

Ergebnistabelle

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

Die Ergebnisse zeigen, wie Sie eine Kombination aus der Funktion `RangeSum` und der Funktion `Top` verwenden können, um Umsatzwerte zu analysieren und zu vergleichen.

## Beispiel – Diagrammformel, die Top verwendet

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

#### Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Zwei Datentabellen namens `Monthnames` und `Sales2013`.

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

* `Customer`

Erstellen Sie die folgenden Kennzahlen:

* `=Sum(Sales)`, um die Summe der Umsätze zu berechnen.

* `=Top(Sum(Sales))`, um die Summe der Umsätze für den `Customer` in der obersten Zeile anzuzeigen.

* `=Sum(Sales)+Top(Sum(Sales))`, um den Wert `Sum(Sales)` des aktuellen `Customer` zum Wert des `Customer` in der obersten Zeile zu addieren.

* `=Sum(Sales)+Top(Sum(Sales), 3)`, um den Wert `Sum(Sales)` des aktuellen `Customer` zum Wert des `Customer` in der drittobersten Zeile zu addieren.

Ergebnistabelle

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

Die Kennzahl `Top(Sum(Sales))` gibt `587` für alle Zeilen zurück, weil dies der Wert für die oberste Zeile ist: `Astrida`.

Für die Kennzahl `Sum(Sales)+Top(Sum(Sales))` gibt die Zeile `Betacab` den Wert `1126` zurück, der das Ergebnis der Addition des Werts `Sum(Sales)` für `Betacab` und `Astrida`, des `Customer` in der obersten Zeile, ist.

Für die Kennzahl `Sum(Sales)+Top(Sum(Sales), 3)` ist das Argument `offset` auf `3` festgelegt. Die Formel addiert den Wert `Sum(Sales)` für die aktuelle Zeile und die dritte Zeile von oben, `Canutility`. Für den Kunden `Divadip` wird zum Beispiel der Wert `1440` zurückgegeben. Dies ist das Ergebnis der Addition des Werts `Sum(Sales)` für `Divadip` und des Werts `SumSales` für `Canutility` (`757`+`683`).

## Weitere Informationen

* [Bottom - Diagrammfunktion](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Above - Diagrammfunktion](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Sum - Diagrammfunktion](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)
* [RangeAvg Skript- und Diagrammfunktion](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)
* [Bereichsfunktionen](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)