Below - Diagrammfunktion

Below() interpretiert eine Formel in einer Zeile unter 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 darunter verwendet. In Diagrammen wird anders als in Tabellen mit Below() die Zeile unter der aktuellen Spalte im entsprechenden Tabellendiagramm interpretiert.

Syntax:  

Below([TOTAL] expression [ , offset [,count ]])

Rückgabedatentyp: dual

Argumente:  

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

Ist ein offset n größer als 1 angegeben, wird die Formel anhand der Werte von n Zeilen weiter unten 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 Below wie die Funktion Above 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 count-Zeilen unterhalb bis einschließlich der aktuellen Zeile. 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.

Siehe: Definieren des Aggregierungsbereichs

In der letzten Zeile eines Spaltenabschnitts ist das Ergebnis NULL, da keine darauffolgende 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.

Beschränkungen:  

Die Rekursion liefert NULL.

Beispiele und Ergebnisse:  

Beispiel 1:  

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

In der Darstellung des in Beispiel 1 gezeigten Tabellendiagramms wird die Tabelle aus der Dimension Customer und den folgenden Kennzahlen erstellt: Sum(Sales) und Below(Sum(Sales)).

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

In der Tabelle werden auch komplexere Kennzahlen angezeigt, was in folgenden Spalten ersichtlich ist: Sum(Sales)+Below(Sum(Sales)), Below +Offset 3 und Higher?. Diese Formeln funktionieren in den folgenden Absätzen wie beschrieben.

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

Die Kennzahl mit der Beschriftung Below +Offset 3, die mithilfe der Formel Sum(Sales)+Below(Sum(Sales), 3) erstellt wurde, verfügt über das Argument offset mit der Einstellung 3 und wählt den Wert drei Zeilen unter 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 darunter hinzu. Die Werte der untersten drei Zeilen Customer sind NULL-Werte.

Die Kennzahl mit der Bezeichnung Higher? wird aus dieser Formel erstellt:IF(Sum(Sales)>Below(Sum(Sales)), 'Higher'). Dadurch werden die Werte der aktuellen Zeile in der Kennzahl Sum(Sales) mit der Zeile darunter verglichen. Wenn die aktuelle Zeile ein höherer Wert ist, erfolgt die Ausgabe des Texts "Higher".

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.

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.Siehe Beispiel: 2 in der Funktion Above für weitere Details.

Beispiel 2:  

Ergebnis

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

In den Argumenten für die Funktion Below() wird offset auf 1 und count auf 3 eingestellt. 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:
659.67
720
757
-

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 Dialogseite Sort der Diagrammeigenschaften auf und markieren Sie das KontrollkästchenExpression unter Sort by. Schreiben Sie in das Formelfeld Monthnumber.