Above

Above() utvärderar ett uttryck på en rad ovanför den aktuella raden inom ett kolumnsegment i en tabell. Vilken rad som den beräknas för beror på värdet för offset, om sådant finns, standardvärdet är raden direkt ovanför. För diagram som inte är tabeller utvärderar Above() för raden ovanför den aktuella raden i diagrammets raka tabellmotsvarighet.

Syntax:  

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

Return data type: dual

Arguments:  

Argument Beskrivning
expr Det uttryck eller fält som innehåller de data som ska mätas.
offset

Om en förskjutning, offsetn större än 0 anges, flyttas utvärderingen av uttrycket n antal rader ovanför den aktuella raden.

Om startpunkt anges till 0 utvärderas uttrycket på den aktuella raden.

Anges ett negativt värde för startpunkten gör det att Above-funktionen fungerar likadant som Below-funktionen med motsvarande positivt värde för startpunkten.

count

Om du anger ett tredje argument som är count större än 1, returnerar funktionen ett intervall på count värden, ett för varje count tabellrader räknat uppåt från den ursprungliga cellen.

I denna form kan funktionen användas som argument i någon av de speciella intervallfunktionerna. Intervallfunktioner

TOTAL

Om tabellen är endimensionell eller om kvalificeraren iTOTAL används som argument, motsvarar det aktuella kolumnsegmentet alltid hela kolumnen.

Definiera aggregeringens omfattning

På kolumnsegmentets första rad returneras värdet NULL, eftersom det inte finns någon rad ovanför denna.

Observera: Ett kolumnsegment definieras som en konsekutiv underuppsättning med celler som har samma värden för dimensionerna i den aktuella sorteringsordningen. Postöverskridande diagramfunktioner beräknas i kolumnsegmentet exklusive dimensionen längst till höger i motsvarande raka tabelldiagram. Om det enbart finns en dimension i diagrammet, eller om kvalificeraren TOTAL anges, utvärderas uttrycket över en hel tabell.
Observera: Om tabellen eller diagrammets tabellmotsvarighet har flera vertikala dimensioner, inbegriper det aktuella kolumnsegmentet endast rader som har samma värden som den aktuella raden i samtliga dimensionskolumner, utom den kolumn som visar den sista dimensionen i fältens inbördes sorteringsordning.

Limitations:  

Rekursiva anrop returnerar 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
Tabelldiagrammet för exempel 1.

I återgivningen av det tabelldiagram som visas i det här exemplet skapas tabellen från dimensionen Customer och måtten: Sum(Sales) och Above(Sum(Sales)).

Kolumnen Above(Sum(Sales)) returnerar NULL för Customer-raden Astrida, eftersom det inte finns någon rad ovanför. Resultatet för raden Betacab visar värdet för Sum(Sales) för Astrida, resultatet för Canutility visar värdet för Sum(Sales) för Betacab och så vidare.

För kolumnen med etiketten Sum(Sales)+Above(Sum(Sales)) visar raden för Betacab resultatet av att Sum(Sales)-värdena lades till för raderna Betacab + Astrida (539+587). Resultatet för raden Canutility visar resultatet av att Sum(Sales) värden läggs till för Canutility + Betacab (683+539).

Måttet med etiketten Above offset 3 som skapades med uttrycket Sum(Sales)+Above(Sum(Sales), 3) har argumentet offset, angivet som 3. Effekten blir att värdet hämtas i raden tre rader ovanför den aktuella raden. Det lägger till Sum(Sales)-värdet för aktuell Customer på värdet för Customer tre rader högre upp. Värdena som returneras för de första tre Customer-raderna är null.

Tabellen visar även mer komplexa mått: ett skapat utifrån Sum(Sales)+Above(Sum(Sales)) och ett med etiketten Higher?, som skapas utifrån IF(Sum(Sales)>Above(Sum(Sales)), 'Higher').

Tips: Funktionen kan även användas i andra diagram, inte bara tabeller – exempelvis i stapeldiagram.
Tips: För andra diagramtyper omvandlar du diagrammet till den raka tabellmotsvarigheten så att du enkelt kan tolka vilken rad funktionen är relaterad till.

Example 2:  

I de återgivningar av tabelldiagrammen som visas i det här exemplet har fler dimensioner lagts till i diagrammen: Month och Product. För diagram med flera dimensioner beror resultatet för uttryck som innehåller funktionerna Above, Below, Top och Bottom på den ordning i vilken kolumndimensionerna sorteras av QlikView. QlikView evaluerar funktionerna baserat på de kolumnsegment som är resultatet från den dimension som kommer sist i sorteringsordningen. Sorteringsordningen för kolumner styrs under Sortera. Den motsvarar inte nödvändigtvis den ordning i vilken kolumnerna visas i en tabell.

I följande återgivning av tabelldiagrammet för exempel 2 är den sista dimensionen i sorteringsordningen Month, så Above-funktionen utvärderar utifrån månader. Det finns en serie resultat för varje Product-värde för varje månad (Jan till Aug) – ett kolumnsegment. Detta följs av en serie för nästa kolumnsegment: för varje Month för nästa Product. Det finns ett kolumnsegment för varje Customer-värde för varje Product.

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
Tabelldiagrammet för exempel 2.

Example 3:  

I återgivningen av tabelldiagrammet för exempel 3 är den sista dimensionen i sorteringsordningen Product. Detta görs genom att flytta dimensionen Product till läge 3 på fliken Sortering i egenskapspanelen. Funktionen Above evalueras för varje Product, och eftersom det bara finns två produkter, AA och BB, innehåller varje serie bara ett resultat som inte är null. I rad BB för månaden Jan är värdet för Above(Sum(Sales)) 46. För rad AA är värdet null. Värdet i varje AA-rad, oavsett månad, är alltid null eftersom det inte finns något värde för Product över AA. Den andra serien värderas efter AA och BB för månaden Feb, för Customer-värdet Astrida. När alla månader har utvärderats för Astrida upprepas sekvensen för nästa CustomerBetacab och så vidare.

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
Tabelldiagrammet för exempel 3.

Example 4:  

Resultat

Funktionen Above kan användas som indata för intervallfunktionerna. Exempelvis: RangeAvg (Above(Sum(Sales),1,3)).

I argumenten för Above()-funktionen är offset inställt på 1 och count är inställt på 3. Funktionen hittar resultatet för uttrycket Sum(Sales) på de tre raderna precis ovanför aktuell rad i kolumnsegmentet (där det finns en rad). De här tre värdena används som indata för funktionen RangeAvg() som räknar ut medelvärdet för ett angivet talintervall.

En tabell med Customer som dimension ger följande resultat för uttrycket RangeAvg().

Astrida
Betacab
Canutility
Divadip:
-
587
563
603

Data som används i exempel:

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

För att få månaderna att sorteras i korrekt ordning när du skapar dina diagram går du till fliken Sort under diagramegenskaperna och markerar kryssrutan Expression under Sort by. Skriv Monthnumber i uttrycksrutan.

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?