Przeskocz do zawartości głównej

Above — funkcja wykresu

NA TEJ STRONIE

Above — funkcja wykresu

Funkcja Above() oblicza wartość wyrażenia w wierszu znajdującym się nad bieżącym wierszem w ramach segmentu kolumny w tabeli. Wiersz wybierany do obliczeń zależy od wartości opcjonalnego parametru offset — domyślnie jest to wiersz bezpośrednio poprzedzający bieżący. W przypadku wykresów niebędących tabelami funkcja Above() oblicza wartość dla wiersza poprzedzającego bieżący w tabeli prostej odpowiadającej wykresowi.

Syntax:  

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

Return data type: dual

Arguments:  

Argumenty
Argument Opis
expr Wyrażenie lub pole zawierające mierzone dane.
offset

Określenie wartości offsetn większej niż 0 umożliwia przeniesienie oceny wyrażenia o n wierszy w górę z bieżącego wiersza.

Podanie argumentu offset równego 0 spowoduje ocenę wartości wyrażenia w bieżącym wierszu.

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.

In this form, the function can be used as an argument to any of the special range functions. 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.

Określenie zakresu agregacji

W przypadku pierwszego wiersza segmentu kolumny zostanie zwrócona wartość NULL, ponieważ nie ma żadnego wiersza nad tym wierszem.

Uwaga: Segment kolumny definiuje się jako ciągły podzbiór komórek o tych samych wartościach dla wymiarów w bieżącej kolejności sortowania. Międzywierszowe funkcje wykresu są obliczane w segmencie kolumny z pominięciem skrajnego prawego wymiaru w równoważnym wykresie tabeli prostej. Jeśli wykres ma tylko jeden wymiar lub jeśli podano kwalifikator TOTAL, wartość wyrażenia jest obliczana na pełnej tabeli.
Uwaga: Jeśli tabela lub równoważnik tabeli zawiera wiele wymiarów pionowych, wówczas segment bieżącej kolumny będzie zawierał tylko wiersze z takimi samymi wartościami we wszystkich kolumnach wymiaru jak bieżący wiersz, ale bez kolumny przedstawiającej ostatni wymiar w kolejności sortowania między polami.

Limitations:  

Wywołania rekurencyjne będą zwracać NULL.

Examples and results:  

Example 1:  

Wizualizacja tabeli dla przykładu 1

Table visualization for Example 1.

Na zrzucie ekranu w tym przykładzie widoczne jest, że stosowna wizualizacja tabeli została utworzona na podstawie wymiaru Customer oraz miar Sum(Sales) i Above(Sum(Sales)).

W kolumnie Above(Sum(Sales)) zwracane są wartościNULL dla wiersza wymiaru Customer zawierającego wartość Astrida, ponieważ nie ma żadnego wiersza nad tym wierszem. Wynik dla klienta Betacab pokazuje wartość Sum(Sales) dla klienta Astrida, wynik dla klienta Canutility pokazuje wartość Sum(Sales) dla klienta Betacab itd.

W kolumnie zatytułowanej Sum(Sales)+Above(Sum(Sales)) wiersz klienta Betacab pokazuje wynik dodawania wartości Sum(Sales) z wierszy klientów Betacab i Astrida (539+587). Wynik w wierszu klienta Betacab pokazuje wynik dodawania wartości Sum(Sales) z wierszy klientów Canutility i Canutility (683+539).

Miara zatytułowana Above offset 3 utworzona za pomocą wyrażenia Sum(Sales)+Above(Sum(Sales), 3) ma argument offset o wartości 3, co oznacza, że pobiera wartość z wiersza znajdującego się o trzy wiersze powyżej bieżącego wiersza. W efekcie jej działania wartość Sum(Sales) dla bieżącego wiersza w kolumnie Customer jest dodawana do wartości wiersza w kolumnie Customer znajdującej się o trzy wiersze powyżej. Dla pierwszych trzech wierszy w kolumnie Customer zwracane są wartości null.

W tabeli tej przedstawione są również bardziej złożone miary: jedna utworzona na podstawie wyrażenia Sum(Sales)+Above(Sum(Sales)) i jedna zatytułowana Higher?, utworzona na podstawie wyrażenia IF(Sum(Sales)>Above(Sum(Sales)), 'Higher').

Porada: Tej funkcji można też używać w wykresach innego rodzaju niż tabele, na przykład wykresach słupkowych.
Porada: W przypadku innych typów wykresu należy przekształcić wykres w odpowiadającą mu tabelę prostą, aby umożliwić łatwe interpretowanie wiersza, do którego odnosi się funkcja.

Example 2:  

Na zrzutach ekranu tabel przedstawionych w tym przykładzie do wizualizacji zostały dodane kolejne wymiary: Month i Product. For charts with more than one dimension, the results of expressions containing the Above, Below, Top, and Bottom functions depend on the order in which the column dimensions are sorted by Qlik Sense. Qlik Sense evaluates the functions based on the column segments that result from the dimension that is sorted last. The column sort order is controlled in the properties panel under Sorting and is not necessarily the order in which the columns appear in a table.

W wizualizacji tabeli dotyczącej przykładu 2 ostatnim sortowanym wymiarem jest Month, funkcja Above dokonuje zatem oceny na podstawie miesięcy. Dla każdej wartości w kolumnie Product istnieje szereg wyników dla każdego miesiąca (od Jan do Aug) — segment kolumny. Następnie pojawia się szereg dla następnego segmentu kolumny: dla każdego miesiąca Month dla następnej wartości z kolumny Product. Będzie istnieć segment kolumny dla każdej wartości w kolumnie Customer dla każdej wartości z kolumny Product.

Wizualizacja tabeli dla przykładu 2

Table visualization for Example 2.

Example 3:  

W wizualizacji tabeli dotyczącej przykładu 3 ostatnim sortowanym wymiarem jest Product. Jest to wynikiem przesunięcia wymiaru Product do pozycji 3 na karcie Sortuj w panelu właściwości. Funkcja Above jest oceniana dla każdej wartości w kolumnie Product. Występują tam tylko dwa produkty ( AA i BB), w każdym szeregu jest zatem tylko jeden wynik niebędący wartością null. W wierszu produktu BB dla miesiąca Jan wartość wyrażenia Above(Sum(Sales)) wynosi 46. W przypadku wiersza AA wartość wynosi null. Wartość w każdym wierszu AA dla dowolnego miesiąca zawsze będzie null, ponieważ nie ma żadnej wartości Product powyżej AA. Drugi szereg jest oceniany dla wartości AA i BB za miesiąc Feb dla znajdującego się w kolumnie Customer klienta Astrida. Po dokonaniu oceny wszystkich miesięcy dla klienta Astrida sekwencja ta zostaje powtórzona dla kolejnego klienta (Customer) Betacab itd.

Wizualizacja tabeli dla przykładu 3

Table visualization for Example 3.

Przykład 4

Example 4:  

Wynik

Funkcję Above można stosować jako źródło danych wejściowych dla funkcji zakresu. Na przykład: RangeAvg (Above(Sum(Sales),1,3)).

W funkcji Above() argument offset ma wartość 1, a argument count ma wartość 3. Funkcja ta znajduje wyniki wyrażeniaSum(Sales) w trzech wierszach znajdujących się bezpośrednio nad bieżącym wierszem w segmencie kolumny (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().

Astrida

Betacab

Canutility

Divadip:

-

587

563

603

Dane zastosowane w przykładach:

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