Bottom
Bottom() Funkcja oblicza wartość wyrażenia w ostatnim (najniższym) wierszu segmentu kolumny w tabeli. Wiersz wybierany do obliczeń zależy od wartości opcjonalnego parametru offset — domyślnie jest to wiersz najniższy. W przypadku wykresów niebędących tabelami obliczenie jest wykonywane na ostatnim wierszu bieżącej kolumny w tabeli prostej odpowiadającej wykresowi.
Składnia:
Bottom([TOTAL] expr [ , offset [,count ]])
Typ zwracanych danych: podwójny
Argumenty:
- expr: Wyrażenie lub pole zawierające mierzone dane.
- offset: Określenie wartości offset n większej niż 0 powoduje przeniesienie oceny wyrażenia o n wierszy w górę od bieżącego wiersza. Podanie argumentu offset równego 0 spowoduje obliczenie wartości wyrażenia dla bieżącego wiersza. Określenie ujemnej wartości argumentu offset sprawia, że funkcja Above działa tak samo jak funkcja Below z odpowiednią dodatnią wartością argumentu offset.
- count: Jeśli trzeci argument count będzie większy od 1, funkcja zwróci zakres wartości count, po jednej dla każdego z count wierszy tabeli liczonych w górę od pierwotnej komórki. W tej postaci funkcja może być używana jako argument dla specjalnych funkcji zakresu. Funkcje zakresu
- TOTAL: Jeśli tabela jest jednowymiarowa lub jako argument zostanie podany kwalifikator TOTAL, bieżący segment kolumny jest zawsze równy całej kolumnie.
Ograniczenia:
-
Wywołania rekurencyjne będą zwracać NULL.
-
Sortowanie według wartości Y w wykresach albo sortowanie według kolumn wyrażeń w tabelach jest niedozwolone, gdy w dowolnym z wyrażeń wykresu stosowana jest ta funkcja wykresu. W takiej sytuacji te opcje sortowania są automatycznie wyłączone. Kiedy używasz tej funkcji wykresu w wizualizacji albo tabeli, sortowanie wizualizacji zostanie przywrócone do sortowania danych wejściowych tej funkcji.
Przykłady i wyniki:
Przykład 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 |
W tym przypadku stosowny wykres został utworzony na podstawie wymiaru Customer oraz miar: Sum(Sales) i Bottom(Sum(Sales)).
Kolumna Bottom(Sum(Sales)) zwraca wartość 757 dla wszystkich wierszy, ponieważ jest to wartość najniższego wiersza: Divadip.
W tabeli tej przedstawione są również bardziej złożone miary: jedna utworzona na podstawie wyrażenia Sum(Sales)+Bottom(Sum(Sales)) i jedna zatytułowana Bottom offset 3, utworzona na podstawie wyrażenia Sum(Sales)+Bottom(Sum(Sales), 3) z argumentem offset o wartości 3. W efekcie jej działania wartość Sum(Sales) dla bieżącego wiersza jest dodawana do wartości z trzeciego wiersza liczonego od najniższego wiersza (wartość z wiersza bieżącego plus wartość dla klienta Betacab).
Przykład 2:
W tym przypadku do wykresów zostały dodane kolejne wymiary: Month i Product. W przypadku wykresów wielowymiarowych wyniki wyrażeń zawierających funkcje Above, Below, Top i Bottom są zależne od kolejności posortowania wymiarów kolumn przez QlikView. QlikView oblicza wartości funkcji na podstawie segmentów kolumny uzyskanych z wymiaru sortowanego jako ostatni. Kolejność sortowania kolumn określa się w polu Sortowanie i może ona być inna od kolejności wyświetlania kolumn w tabeli.
W pierwszej tabeli wyrażenie jest oceniane na podstawie wymiaru Month, a w drugiej tabeli — na podstawie wymiaru Product. Miara End value zawiera wyrażenie Bottom(Sum(Sales)). Najniższy wiersz dla miary Month to Dec, a wartość dla Dec i dla Product wyświetlona w tabeli wynosi 22. (W celu oszczędności miejsca niektóre wiersze nie zostały pokazane).
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 |
Dodatkowe informacje zawiera Przykład 2 w opisie funkcji Above.
Przykład 3:
Funkcję Bottom można stosować jako źródło danych wejściowych dla funkcji zakresu. Na przykład: RangeAvg (Bottom(Sum(Sales),1,3)).
W funkcji Bottom() argument offset jest ustawiony na 1, a argument count jest ustawiony na 3. Funkcja ta znajduje wyniki wyrażenia Sum(Sales) w trzech wierszach począwszy od wiersza nad najniższym wierszem w segmencie kolumny (ponieważ offset=1), oraz i w dwóch wierszach nad nim (o ile jest tam wiersz). Wspomniane trzy wartości są stosowane jako dane wejściowe dla funkcji RangeAvg(), która znajduje średnią wartości w określonym szeregu liczbowym.
Tabela z kolumną Customer jako wymiarem zwraca następujące wyniki dla wyrażenia RangeAvg().
Customer | RangeAvg (Bottom(Sum(Sales),1,3)) |
---|---|
Astrida | 659.67 |
Betacab | 659.67 |
Canutility | 659.67 |
Divadip | 659.67 |
Dane zastosowane w przykładach:
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 '|');
Aby miesiące były sortowane we właściwej kolejności, podczas tworzenia arkuszy przejdź do karty Sort we właściwościach wykresu i zaznacz pole wyboru Expression w sekcji Sort by. W polu wyrażenia podaj Monthnumber.