Bottom - チャート関数

Bottom()は、テーブルの列セグメント内の最後 (最下部) の行の数式を評価します。どの行が計算されるかは、offset値により決定されますが、デフォルトは最下部の行です。テーブル以外のチャートでは、評価はチャートのストレート テーブルに相当する現在の列の最後の行を評価します。

構文:  

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

戻り値のデータ型: デュアル

引数:  

引数 説明
expr メジャーの対象となるデータが含まれている数式または項目。
offset

offset n を 1 より大きい値にすると、数式の評価が最終行から n 行上に移動します。

offset が負の値である場合、Bottom関数は、相応する正の offset 値が付いた Top 関数と同様に機能します。

count

3 番目のパラメータである countを 1 より大きい値に設定した場合、この関数は、1 つの値ではなく、count 値の範囲を返します。つまり、現在の列セグメントの最後の count 行の各値を返します。 この形式では、任意の特別な範囲関数の引数として関数を使用できます。 範囲関数

TOTAL

テーブルが 1 軸の場合、または TOTAL修飾子が引数として使用される場合は、現在の列セグメントは常に列全体と等しくなります。

参照項目: 集計範囲の定義

注: 列セグメントは、現在のソート順で軸に同じ値を持つ連続したセルのサブセットとして定義されます。レコード間チャート関数は、チャートのストレート テーブルに相当する右端の軸を除外して列セグメントで実行されます。チャートに軸が 1 つしかない場合、または TOTAL修飾子が指定されていると、数式はテーブル全体を評価します。
注: テーブルまたはテーブルに相当するアイテムに複数の縦軸が含まれる場合、現在の列セグメントには、項目間ソート順の最後の軸を表示する列を除くすべての軸列の現在行と同じ値を持つ行だけが含まれます。

制限:  

再帰呼び出しは、NULLを返します。

例と結果:  

例: 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
例 1 のテーブルのチャート

この例で示されているテーブル チャートの図では、軸 Customerとメジャー Sum(Sales) および Bottom(Sum(Sales)) からテーブルが作成されています。

Bottom(Sum(Sales))はすべての行で 757 を返します (最終行 Divadip の値)。

テーブルには、Sum(Sales)+Bottom(Sum(Sales))から作成されたものと、数式 Sum(Sales)+Bottom(Sum(Sales), 3) を使用して作成され、引数 offset3 に設定されているBottom offset 3 という、より複雑なメジャーも表示されています。最後から 3 つ上にある行の値に現在の行の Sum(Sales)値を加えます (現在の行 + Betacab の値)。

例: 2

この例で示されているテーブル チャートの図では、より多くの軸が (MonthProduct) チャートに追加されています。 複数の軸が含まれているチャートでは、AboveBelowTopBottom 関数を含む数式の結果は、QlikView における列軸のソート順序によって変わります。QlikViewは、最後にソートされた軸の結果である列セグメントに基づいて関数を評価します。列のソート順は、[ソート] で制御され、必ずしも列がテーブルに表示される順序ではありません。

最初のテーブルで数式は Month、2 番目のテーブルではProduct に基づいて評価されます。メジャー End valueには数式Bottom(Sum(Sales)) が含まれています。Monthの最終行は Dec で、DecProduct の値は両方とも 22 になっています (テーブル参照)。(スペースの関係上、一部の行は表示されていません。)

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
例 2 の最初のテーブルEnd valueメジャーの Bottom の値は、Month (Dec) に基いています。
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
例 2 の 2 番目のテーブルEnd valueメジャーの Bottom の値は、Product (AstridaBB) に基いています。

詳細については、Above関数の例 2 を参照してください。

例: 3

結果

Bottom関数は、範囲関数への入力として使用できます。例: RangeAvg (Bottom(Sum(Sales),1,3))

Bottom()関数の引数では、offset は 1 に設定され、count は 3 に設定されています。この関数は、列セグメントの最終行の上の行から始まる 3 行 (offset=1のため)、およびその上の 2 行 (行がある場合) で数式Sum(Sales) の結果を算出します。この 3 つの値は、RangeAvg()関数への入力として使用され、指定された数値の範囲で平均値を算出します。

軸として Customerを有するテーブルによって、RangeAvg() の数式について次の結果が得られます。

 
Astrida
Betacab
Canutility
Divadip:
659.67
659.67
659.67
659.67

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

月を取得して正しい順番でソートするには、チャートを作成する際に、チャート プロパティの[Sort] タブに移動し、[Sort by] の下で [Expression] チェックボックスを選択します。数式ボックスに、Monthnumberと入力します。

参照項目: