Above

Above() interpretiert eine Formel in einer Zeile über der aktuellen Zeile innerhalb 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 Zeile direkt darüber verwendet. In Diagrammen wird anders als in Tabellen mit Above() die Zeile über der aktuellen Zeile im entsprechenden Tabellendiagramm interpretiert.

Syntax:  

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

Return data type: dual

Arguments:  

Argument Beschreibung
expr Die Formel oder das Feld mit den Daten, die gemessen werden sollen.
offset

Ist ein offsetn größer als 0 angegeben, wird die Formel anhand der Werte von n Zeilen oberhalb der aktuellen Zeile berechnet.

Bei einem Startwert von 0 wird die Formel anhand der Werte der aktuellen Zeile berechnet.

Bei einem negativen Startwert verhält sich die Funktion Above wie die Funktion Below mit dem entsprechenden positiven Startwert.

count

Ist ein drittes Argument count größer als 1 angegeben, liefert die Funktion eine Menge von count Werten, je einen für count Tabellenzeilen, die ausgehend von der ursprünglichen Zelle aufwärts gezählt werden.

In diesem Formular kann die Funktion als Argument für eine der speziellen Abschnittsfunktionen dienen. Mengenfunktionen

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.

Definieren des Aggregierungsbereichs

In der ersten Zeile eines Spaltenabschnitts ist das Ergebnis NULL, da davor keine Zeile existiert.

Hinweis: Ein 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.
Hinweis: Hat 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.

Limitations:  

Die Rekursion liefert NULL.

Examples and results:  

Example 1:  

Customer Sum(Sales) Above(Sum(Sales)) Sum(Sales) + Above(Sum(Sales)) Above offset 3 Higher?
  2566 - - - -
Astrida 587 - - - -
Betacab 539 587 1126 - -
Canutility 683 539 1222 - Higher
Divadip 757 683 1440 1344 Higher
Das Tabellendiagramm für Beispiel 1.

In der Darstellung des in diesem Beispiel gezeigten Tabellendiagramms wird die Tabelle aus der Dimension Customer und den Kennzahlen Sum(Sales) und Above(Sum(Sales)) erstellt.

Die Spalte Above(Sum(Sales)) gibt NULL für die Zeile Customer mit Astrida aus, da dies die erste Zeile ist. Das Ergebnis für die Zeile Betacab zeigt den Wert von Sum(Sales) für Astrida an, das Ergebnis für Canutility zeigt den Wert von Sum(Sales) für Betacab an usw.

Für die Spalte mit der Bezeichnung Sum(Sales)+Above(Sum(Sales)) wird in der Zeile für Betacab das Ergebnis der Addition der Werte Sum(Sales) für die Zeilen Betacab + Astrida (539+587) angezeigt. Das Ergebnis für die Zeile Canutility ist die Addition der Werte Sum(Sales) für Canutility + Betacab (683+539).

Die Kennzahl mit der Beschriftung Above offset 3, die mithilfe der Formel Sum(Sales)+Above(Sum(Sales), 3) erstellt wurde, verfügt über das Argument offset mit der Einstellung 3 und wählt den Wert drei Zeilen oberhalb der aktuellen Zeile aus. Sie fügt den Wert Sum(Sales) für die aktuelle Auswahl von Customer zum Wert des Felds Customer drei Zeilen darüber hinzu. Als Werte für die ersten drei Customer-Zeilen werden NULL-Werte zurückgegeben.

In der Tabelle werden auch komplexere Kennzahlen angezeigt: eine erstellt aus Sum(Sales)+Above(Sum(Sales)) und eine beschriftet mit Higher?, die aus IF(Sum(Sales)>Above(Sum(Sales)), 'Higher') erstellt wird.

Tipp: Diese Funktion kann auch in anderen Diagrammen als Tabellen wie zum Beispiel in Balkendiagrammen verwendet werden.
Tipp: Bei anderen Diagrammtypen wandeln Sie das Diagramm in ein entsprechendes Tabellendiagramm um, damit Sie einfach nachvollziehen können, auf welche Zeile sich die Funktion bezieht.

Example 2:  

In den Darstellungen der in diesem Beispiel gezeigten Tabellendiagramme wurden zu den Diagrammen weitere Dimensionen hinzugefügt: Month und Product. Bei Diagrammen mit mehr als einer Dimension hängt das Ergebnis der Formeln, welche die Funktionen Above, Below, Top und Bottom beinhalten, von der Reihenfolge ab, in der die Spaltendimensionen von QlikView sortiert werden. QlikView evaluiert die Funktionen auf Grundlage der Spaltenabschnitte, die sich aus der zuletzt sortierten Dimension ergeben haben. Die Sortierreihenfolge der Spalten kann unter Sortierung festgelegt werden und stimmt nicht zwangsläufig mit der Reihenfolge überein, in der die Spalten in der Tabelle angezeigt werden.

In der folgenden Darstellung des Tabellendiagramms aus Beispiel 2 ist die letzte sortierte Dimension Month, sodass die Funktion Above die Berechnung auf der Grundlage von Monaten durchführt. Für jeden Wert Product gibt es pro Monat (Jan bis Aug) eine Ergebnisserie – einen Spaltenabschnitt. Darauf folgt eine Ergebnisserie für den nächsten Spaltenabschnitt: für jeden Month für das nächste Product. Für jeden Wert Customer wird jeweils pro Product ein eigener Spaltenabschnitt ausgegeben.

Customer Product Month Sum(Sales) Above(Sum(Sales))
      2566 -
Astrida AA Jan 46 -
Astrida AA Feb 60 46
Astrida AA Mar 70 60
Astrida AA Apr 13 70
Astrida AA May 78 13
Astrida AA Jun 20 78
Astrida AA Jul 45 20
Astrida AA Aug 65 45
Das Tabellendiagramm für Beispiel 2.

Example 3:  

In der Darstellung des Tabellendiagramms für Beispiel 3 ist die letzte sortierte Dimension Product. Dies erfolgt durch Verschieben der Dimension Product an Position 3 in der Dialogseite für die Sortierung im Eigenschaftsfenster. Die Funktion Above wird für jedes Product berechnet. Da nur zwei Produkte vorhanden sind, AA und BB, kann in beiden Ergebnisserien nur ein Ergebnis nicht NULL sein. In Zeile BB für den Monat Jan ist der Wert für Above(Sum(Sales)) 46. Für Zeile AA ist der Wert NULL. Der Wert jeder Zeile AA für einen beliebigen Monat ist immer NULL, da es keinen Wert von Product über AA gibt. Die zweite Ergebnisserie wird für AA und BB für den Monat Feb auf der Grundlage des Werts Customer, Astrida, berechnet. Wurden alle Monate für Astrida berechnet, wird die Sequenz für den zweiten CustomerBetacab wiederholt, dann ggf. für den dritten usw.

Customer Product Month Sum(Sales) Above(Sum(Sales))
      2566 -
Astrida AA Jan 46 -
Astrida BB Jan 46 46
Astrida AA Feb 60 -
Astrida BB Feb 60 60
Astrida AA Mar 70 -
Astrida BB Mar 70 70
Astrida AA Apr 13 -
Astrida BB Apr 13 13
Das Tabellendiagramm für Beispiel 3.

Example 4:  

Ergebnis

Die Funktion Above kann als Input für die Abschnittsfunktionen verwendet werden. Beispiel: RangeAvg (Above(Sum(Sales),1,3)).

In den Argumenten für die Funktion Above() wird offset auf 1 und count auf 3 festgelegt. Die Funktion ermittelt die Ergebnisse der Formel Sum(Sales) zu den drei Zeilen direkt oberhalb der aktuellen Zeile im Spaltenabschnitt (sofern Zeilen vorhanden sind). Diese drei Werte werden als Input für die Funktion RangeAvg() verwendet, die den Durchschnitt der Werte in der gelieferten Menge an Zahlen ermittelt.

Eine Tabelle mit Customer als Dimension liefert folgende Ergebnisse für die Formel RangeAvg().

Astrida
Betacab
Canutility
Divadip:
-
587
563
603

In Beispielen verwendete Daten:

Monthnames:

LOAD * INLINE [

Month, 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 (Month, 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 '|');

Damit die Monate in der richtigen Reihenfolge sortiert werden, gehen Sie beim Erstellen von Diagrammen folgendermaßen vor: Rufen Sie die Registerkarte Sort der Diagrammeigenschaften auf und markieren Sie das KontrollkästchenExpression unter Sort by. Schreiben Sie in das Formelfeld Monthnumber.