Top - チャート関数

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

Syntax:  

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

Return data type: dual

Arguments:  

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

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

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

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

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

集計範囲の定義

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

Limitations:  

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

Examples and results:  

Example: 1

この例で示されているテーブルのスクリーンショットでは、軸 Customer とメジャー Sum(Sales) および Top(Sum(Sales)) からテーブルのビジュアライゼーションが作成されています。

Top(Sum(Sales))はすべての行で 587 を返します (開始行Astrida の値)。

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

Example: 2

この例で示されているテーブルのスクリーンショットでは、より多くの軸がビジュアライゼーションに追加されています。および MonthProduct の 2 つのメジャーがあります。 複数の軸が含まれているチャートでは、AboveBelowTopBottom 関数を含む数式の結果は、Qlik Sense における列軸のソート順序によって変わります。Qlik Sense は、最後にソートされた軸の結果である列セグメントに基づいて関数を評価します。列のソート順は、[ソート] のプロパティ パネルで制御され、必ずしも列がテーブルに表示される順序ではありません。

例 2 の最初のテーブル。First value メジャーの Top の値は Month (Jan) に基づいています。

例 2 の 2 番目のテーブル。First value メジャーの Top の値は、Product (AstridaAA) に基いています。

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

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

月を取得して正しい順番でソートするには、ビジュアライゼーションを作成する際に、プロパティ パネルの Sorting セクションから、Month を選択して Sort by expression チェック ボックスを選択します。数式ボックスに、Monthnumber と入力します。