Top - チャート関数

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

構文:  

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

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

引数:  

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

offsetn を 1 より大きい値にすると、数式の評価が先頭行から n 行下に移動します。

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

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

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

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

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

制限:  

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

例と結果:  

例: 1

Customer Sum(Sales) Top(Sum(Sales)) Sum(Sales) + Top(Sum(Sales)) Top offset 3
  2566 587 3153 3249
Astrida 587 587 1174 1270
Betacab 539 587 1126 1222
Canutility 683 587 1270 1366
Divadip 757 587 1344 1440

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

Top(Sum(Sales))は、先頭行 Astrida の値である 587 をすべての行で返します。

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

例: 2

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

Customer Product Month Sum(Sales) First value
      2566 -
Astrida AA Jan 46 46
Astrida AA Feb 60 46
Astrida AA Mar 70 46
... ... ... ... ...
Astrida AA Sep 78 46
Astrida AA Oct 12 46
Astrida AA Nov 78 46
Astrida AA Dec 22 46
Astrida BB Jan 46 46
例 2 の最初のテーブルFirst valueメジャーの Top の値は、Month (Jan) に基いています。
Customer Product Month Sum(Sales) First 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 番目のテーブルFirst valueメジャーの Top の値は、Product (AstridaAA) に基いています。

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

例: 3

結果

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

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

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

 
Astrida
Betacab
Canutility
Divadip:
603
603
603
603

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と入力します。