Bottom
Bottom() utvärderar ett uttryck på den sista (nedersta) raden i 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 nederst. För diagram som inte är tabeller görs utvärderingen på den sista raden i den aktuella kolumnen i diagrammets raka tabellmotsvarighet.
Syntax:
Bottom([TOTAL] expr [ , offset [,count ]])
Returnerad datatyp: dual
Argument:
- expr: Det uttryck eller fält som innehåller de data som ska mätas.
- offset: Om en offset n som är större än 0 anges, flyttas utvärderingen av uttrycket n rader uppåt från 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 funktionen Above fungerar likadant som funktionen Below 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.
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 och resultat:
Exempel 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 |
I återgivningen av det tabelldiagram som visas i det här exemplet skapas tabellen från dimensionen Customer och måtten: Sum(Sales) och Bottom(Sum(Sales)).
Kolumnen Bottom(Sum(Sales)) returnerar 757 för alla rader eftersom det är värdet för den nedersta raden: Divadip
Tabellen visar även mer komplexa mått: ett skapat av Sum(Sales)+Bottom(Sum(Sales)) och ett med etiketten Bottom offset 3, som skapas med hjälp av uttrycket Sum(Sales)+Bottom(Sum(Sales), 3) och vars argument offset är angivet som 3. Det lägger till Sum(Sales)-värdet för den aktuella raden till värdet från raden tre rader från den nedersta raden, d.v.s. den aktuella raden plus värdet för Betacab.
Exempel 2:
I de återgivna tabelldiagram 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 den första tabellen utvärderas uttrycket baserat på Month. I den andra tabellen utvärderas det baserat på Product. Måttet End value innehåller uttrycket Bottom(Sum(Sales)). Den nedersta raden för Month är Dec och värdet för Dec, båda värdena för Product, som visas i tabellen, är 22. (En del rader visas inte av utrymmesskäl.)
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 |
Mer information finns i Exempel 2 i Above-funktionen.
Exempel 3:
Funktionen Bottom kan användas som indata för intervallfunktionerna. Exempelvis: RangeAvg (Bottom(Sum(Sales),1,3)).
I argumenten för Bottom()-funktionen är offset är inställt på 1 och count är inställt på 3. Funktionen hittar resultateten för uttrycket Sum(Sales) på de tre raderna som börjar med raden över den nedersta raden i kolumnsegmentet (eftersom offset=1), och två rader över den (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().
Customer | RangeAvg (Bottom(Sum(Sales),1,3)) |
---|---|
Astrida | 659.67 |
Betacab | 659.67 |
Canutility | 659.67 |
Divadip | 659.67 |
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.