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]])
Returnerad datatyp: dual
Argument
Argument
Beskrivning
expr
Det uttryck eller fält som innehåller de data som ska mätas.
offset
Om en 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 ett tredje uttryck, count, anges till större än 1, returnerar funktionen ett intervall av count-värden, ett för varje count-tabellrad. Raderna räknas 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.
På kolumnsegmentets första rad returneras värdet NULL, eftersom det inte finns någon rad ovanför denna.
Anteckning om informationEtt 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.
Anteckning om informationOm 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.
Begränsningar:
Rekursiva anrop returnerar NULL.
Sortering på y-värden i diagram, eller sortering efter uttryckskolumner i tabeller, är inte tillåtet när denna diagramfunktion används i något av diagrammets uttryck. Dessa sorteringsalternativ är därför automatiskt inaktiverade. När du använder den här diagramfunktion i en visualisering eller tabell kommer sorteringen av visualiseringen att återgå till den sorterade inmatningen av den här funktionen.
Exempel: diagramuttryck
Exempel
Resultat
Above( Sum(Sales) )
Returnerar värdet på Sales för raden ovanför den aktuella raden.
Exempel – grunderna i Above
Översikt
Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.
Laddningsskriptet innehåller:
En datauppsättning som läses in i en datatabell som heter Example.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:
Year
Skapa följande mått:
=Sum(Sales), för att få fram den årliga försäljningen.
=Above(Sum(Sales)), för att få fram försäljningsvärdet för föregående år.
=Sum(Sales) - Above(Sum(Sales)), för att beräkna variansen mellan värdet på Sales för innevarande år och värdet för föregående år.
=RangeSum(Above(Sales, 1, 2)), för att visa en rullande tvåårig sammanställning av de senaste två årens försäljning.
=(Sales - Above(Sales)) / Above(Sales), för att ange förändringen i Sales som en kvot/procentandel. Om du vill visa värdet i procent väljer du Nummer > Enkel formatering > 12,34% under Nummerformatering.
Resultattabell
Year
Sum(Sales)
Above(Sum(Sales))
Sum(Sales) - Above(Sum(Sales))
RangeSum(Above(Sales, 1, 2)
(Sales - Above(Sales)) / Above(Sales)
Totals
7200
-
-
0
-
2019
1000
-
-
0
-
2020
1500
1000
500
1000
50.00%
2021
1200
1500
-300
2500
-20.00%
2022
1800
1200
600
2700
50.00%
2023
1700
1800
-100
3000
-5.56%
När du tittar på resultaten kan du jämföra Sales-värdena under den aktuella perioden med föregående period.
Måttet Sum(Sales)- Above(Sum(Sales)) ger förändringen i Sales-värdet vid en jämförelse av aktuell period med den tidigare.
Måttet RangeSum(Above(Sales, 1, 2)) ger summan av de två föregående Sales -värdena.
Måtte (Sales - Above(Sales)) / Above(Sales) ger förändringen i Sales jämfört med den tidigare perioden i procent.
Anteckning om tipsFunktionen kan även användas i andra diagram, inte bara tabeller – exempelvis i stapeldiagram.
Gör följande:
Skapa ett stapeldiagram och lägg sedan till det här fältet som en dimension:
Year
Skapa följande mått:
=Sum(Sales) - Above(Sum(Sales)), för att ange variationen från år till år.
Stapeldiagram som visar resultaten för funktionen Above
Om du använder funktionen Above i ett stapeldiagram får du en visuell jämförelse av variansen mellan försäljningen under den aktuella perioden och försäljningen under föregående period.
Exempel – Above-scenario
Översikt
Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.
Laddningsskriptet innehåller:
En datauppsättning som läses in i en datatabell som heter Example.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:
Customer
Skapa följande mått:
=Sum(Sales), för att beräkna summan av försäljningen.
=Above(Sum(Sales)), för att visa summan av försäljningen under föregående rad.
=Sum(Sales)+Above(Sum(Sales)), för att summera summan av försäljningsvärdet med summan av försäljningen för kundraden ovanför den aktuella raden.
=Sum(Sales)+Above(Sum(Sales), 3), för att summera Sum(Sales)-värdet för aktuell Customer till värdet för Customer som är tre rader högre upp.
=IF(Sum(Sales)>Above(Sum(Sales)), 'Higher'), att lägga till etiketten "Higher" till kunder vars Sum(Sales)-resultat är större än Sum(Sales) för kunden i raden ovan.
Resultattabell
Customer
Sum(Sales)
Above(Sum(Sales))
Sum(Sales)+Above(Sum(Sales))
Sum(Sales)+Above(Sum(Sales), 3)
IF(Sum(Sales)>Above(Sum(Sales)), 'Higher')
Totals
2566
-
-
-
-
Astrida
587
-
-
-
-
Betacab
539
587
1126
-
-
Canutility
683
539
1222
-
Higher
Divadip
757
683
1440
1344
Higher
Måttet Above(Sum(Sales)) returnerar NULL för kunden Astrida eftersom det inte finns någon rad ovanför. Resultatet för kunden Betacab visar värdet på Sum(Sales) för Astrida. Resultatet för Canutility visar värdet för Sum(Sales) för Betacab, och så vidare.
För måttet Sum(Sales)+Above(Sum(Sales)) ger raden för Betacab resultatet av att lägga till värdena för Sum(Sales) för raderna Betacab + Astrida (539+587). Resultatet för raden Canutility visar resultatet då Sum(Sales)-värden har lagts till för Canutility + Betacab (683+539).
Måttet Sum(Sales)+Above(Sum(Sales), 3) har argumentet offset satt till 3. Detta tar värdet i den rad som är 3 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. Till exempel läggs Sum(Sales) för Divadip till Sum(Sales) för Astrida, den kund som finns tre rader ovanför Divadip. Värdena som returneras för de första tre Customer-raderna är null eftersom det saknas data.
Måttet IF(Sum(Sales)>Above(Sum(Sales)), 'Higher'), returnerar värdet Higher för kunderna Canutility och Divadip eftersom deras försäljningsresultat båda är högre än summan av försäljningen för kunden i raden ovan, Betacab respektive Canutility.
Anteckning om tipsFunktionen kan även användas i andra diagram, inte bara tabeller – exempelvis i stapeldiagram.
Anteckning om tipsFör andra diagramtyper, ska du omvandla diagrammet till den raka tabellmotsvarigheten så att du enkelt kan tolka vilken rad funktionen är relaterad till.
Exempel – Above-scenario baserat på sorteringsordning
Översikt
Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.
Laddningsskriptet innehåller:
Tre datatabeller som heter Monthnames, Sales2013 och Product.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
Customer
Product
Month
Skapa följande mått:
=Sum(Sales), för att beräkna summan av försäljningen.
=Above(Sum(Sales)), för att visa summan av försäljningen under föregående rad.
Resultattabell
Customer
Product
Month
Sum(Sales)
Above(Sum(Sales))
Totals
-
-
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
Astrida
AA
Sep
78
65
Astrida
AA
Oct
12
78
Astrida
AA
Nov
78
12
Astrida
AA
Dec
22
78
Astrida
BB
Jan
46
-
Astrida
BB
Feb
60
46
Resultatet för uttryck som innehåller funktionerna Above, Below, Top och Bottom i diagram med flera dimensioner beror på i vilken ordning kolumndimensionerna sorteras av Qlik Sense. Qlik Sense evaluerar funktionerna baserat på de kolumnsegment som är resultatet från den dimension som kommer sist i sorteringsordningen. Sorteringsordningen för kolumner styrs från egenskapspanelen under Sortering. Den motsvarar inte nödvändigtvis den ordning i vilken kolumnerna visas i en tabell.
I följande resultattabell ä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 Dec) – 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.
Exempel – Above-scenario med en annan sorteringsordning
Översikt
Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.
Laddningsskriptet innehåller:
Tre datatabeller som heter Monthnames, Sales2013 och Product.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
Customer
Product
Month
Skapa följande mått:
=Sum(Sales), för att beräkna summan av försäljningen.
=Above(Sum(Sales)), för att visa summan av försäljningen under föregående rad.
Ändra tabellens sorteringsordning i egenskapspanelen. Välj Sortering och dra sedan dimensionen Produkt till den tredje positionen i sorteringsordningen.
Resultattabell
Customer
Product
Month
Sum(Sales)
Above(Sum(Sales))
Totals
-
-
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
Astrida
AA
May
78
-
Astrida
BB
May
78
78
Astrida
AA
Jun
20
-
Astrida
BB
Jun
20
20
Astrida
AA
Jul
45
-
Astrida
BB
Jul
45
45
I resultattabellen är den senast sorterade dimensionen Product. 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 den andra kunden Betacab och så vidare.
Anteckning om informationResultaten i tabellen visar endast en partiell lista över data. För att se hela resultatet kan du prova exemplet i en app.
Exempel – Användning av funktionen Above med RangeAvg
Översikt
Funktionen Above kan användas som indata för intervallfunktionerna. I detta exempel används funktionen i en RangeAvg.
Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.
Laddningsskriptet innehåller:
Tre datatabeller som heter Monthnames, Sales2013 och Product.
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:
Customer
Skapa följande mått:
=RangeAvg
(Above(Sum(Sales),1,3))
Resultattabell*
Customer
RangeAvg (Above(Sum(Sales),1,3))
Totals
-
Astrida
-
Betacab
587
Canutility
563
Divadip
603
I argumenten för funktionen Above, ä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 som är 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.