Bottom
Bottom() interpretiert eine Formel in der letzten (untersten) 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 unterste Zeile verwendet. In Diagrammen erfolgt anders als in Tabellen die Berechnung für die letzte Zeile der aktuellen Spalte im entsprechenden Tabellendiagramm.
Syntax:
Bottom([TOTAL] expr [ , offset [,count ]])
Rückgabe Datentyp: dual
Argumente:
- expr: Die Formel oder das Feld mit den Daten, die gemessen werden sollen.
- offset: Ist ein offset n 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.
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.
Beispiele und Ergebnisse:
Beispiel 1:
Customer | Sum(Sales) | Bottom(Sum(Sales)) | Sum(Sales) + Bottom(Sum(Sales)) | Bottom offset 3 |
---|---|---|---|---|
- | 2566 | 757 | 3323 | 3105 |
Astrida | 587 | 757 | 1344 | 1126 |
Betacab | 539 | 757 | 1296 | 1078 |
Canutility | 683 | 757 | 1440 | 1222 |
Divadip | 757 | 757 | 1514 | 1296 |
In der Darstellung des in diesem Beispiel gezeigten Tabellendiagramms wird die Tabelle aus der Dimension Customer und den Kennzahlen Sum(Sales) und Bottom(Sum(Sales)) erstellt.
Die Spalte Bottom(Sum(Sales)) gibt 757 für alle Zeilen zurück, weil dies der Wert für die untere Zeile ist: Divadip.
In der Tabelle werden auch komplexere Kennzahlen angezeigt: eine erstellt aus Sum(Sales)+Bottom(Sum(Sales)) und eine beschriftet mit Bottom offset 3, die mithilfe der Formel Sum(Sales)+Bottom(Sum(Sales), 3) erstellt wird und über das Argument offset mit der Einstellung 3 verfügt. Sie fügt den Wert Sum(Sales) für die aktuelle Zeile zum Wert aus der dritten Zeile von der untersten Zeile hinzu, d. h. die aktuelle Zeile plus den Wert für Betacab.
Beispiel 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 ersten Tabelle wird die Formel auf Grundlage von Month und in der zweiten Tabelle auf Grundlage von Product berechnet. Die Kennzahl End value enthält die Formel Bottom(Sum(Sales)). Die unterste Zeile für Month ist Dec und der Wert für Dec beide Werte des in der Tabelle dargestellten Product ist 22. (Um Platz zu sparen, werden manche Zeilen nicht angezeigt.)
Customer | Product | Month | Sum(Sales) | End value |
---|---|---|---|---|
- | - | - | 2566 | - |
Astrida | AA | Jan | 46 | 22 |
Astrida | AA | Feb | 60 | 22 |
Astrida | AA | Mar | 70 | 22 |
... | ... | ... | ... | ... |
Astrida | AA | Sep | 78 | 22 |
Astrida | AA | Oct | 12 | 22 |
Astrida | AA | Nov | 78 | 22 |
Astrida | AA | Dec | 22 | 22 |
Astrida | BB | Jan | 46 | 22 |
Customer | Product | Month | Sum(Sales) | End value |
---|---|---|---|---|
2566 | - | |||
Astrida | AA | Jan | 46 | 46 |
Astrida | BB | Jan | 46 | 46 |
Astrida | AA | Feb | 60 | 60 |
Astrida | BB | Feb | 60 | 60 |
Astrida | AA | Mar | 70 | 70 |
Astrida | BB | Mar | 70 | 70 |
Astrida | AA | Apr | 13 | 13 |
Astrida | BB | Apr | 13 | 13 |
Siehe Beispiel: 2 in der Funktion Above für weitere Details.
Beispiel 3:
Die Funktion Bottom kann als Input für die Abschnittsfunktionen verwendet werden. Beispiel: RangeAvg (Bottom(Sum(Sales),1,3)).
In den Argumenten für die Funktion Bottom() ist offset auf 1 und count auf 3 festgelegt. Die Funktion ermittelt die Ergebnisse der Formel Sum(Sales) zu den drei Zeilen, beginnend bei der Zeile oberhalb der untersten Zeile im Spaltenabschnitt (weil offset=1) und den zwei Zeilen darüber (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().
Customer | RangeAvg (Bottom(Sum(Sales),1,3)) |
---|---|
Astrida | 659.67 |
Betacab | 659.67 |
Canutility | 659.67 |
Divadip | 659.67 |
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.