Above - チャート関数
Above() テーブルの列セグメント内の現在の行の上にある行の数式を評価します。どの行が計算されるかは、offset 値により決定されますが、デフォルトは真上の行です。テーブル以外のチャートでは、Above() は、チャートのストレート テーブルに相当するセグメントの現在の行よりも上にある行を評価します。
構文:
Above([TOTAL] expr [ , offset [,count]])
戻り値データ型: dual
引数:
引数 | 説明 |
---|---|
expr | メジャーの対象となるデータが含まれている数式または項目。 |
offset |
offset n を 0 より大きい値にすると、数式の評価が現在の行から n 行上に移動します。 offset に 0 を指定すると、現在の行で数式が評価されます。 offset が負の値である場合、Above 関数は、相応する正の offset 値が付いた Below 関数と同様に機能します。 |
count |
3 番目の引数 count を 1 より大きい値にすると、この関数は count 値の範囲を返します。つまり、オリジナルのテーブルのセルから上方向に count 行の各値を返します。 この形式では、特別な範囲関数の引数として関数を使用できます。 範囲関数 |
TOTAL |
テーブルが 1 軸の場合、または TOTAL 修飾子が引数として使用される場合は、現在の列セグメントは常に列全体と等しくなります。 |
列セグメントの最初の行では、上に行がないため、NULL 値が返されます。
制限事項:
-
再帰呼び出しは NULL を返します。
-
チャートの式いずれかにこのチャート関数が使用されている場合、チャートの y 値のソート、またはテーブルの式列ごとのソートは許可されません。よって、これらのソート機能は自動的に無効になります。ビジュアライゼーションまたはテーブルでこのチャート関数を使用すると、ビジュアライゼーションのソートは、レコード間の関数に対するソートされた入力の状態に戻ります。
例と結果:
例1:
この例で示されているテーブルのスクリーンショットでは、軸 Customer とメジャー Sum(Sales) および Above(Sum(Sales)) からテーブルのビジュアライゼーションが作成されています。
行 Customer の上には行がないため、列 Above(Sum(Sales)) は、Astrida を含む Customer に対して NULL を返します。たとえば、行 Betacab の結果は Astrida の Sum(Sales) の値を示し、Canutility の結果は Betacab などの Sum(Sales) の値を示します。
Sum(Sales)+Above(Sum(Sales)) というラベルの列では、Betacab 行の結果には、行 Betacab と Astrida 値の加算結果 (539+587) が Sum(Sales) に表示されます。Canutility 行の結果には、行 Canutility と Betacab 値の加算結果 (683+539) が Sum(Sales) に表示されます。
数式 Sum(Sales)+Above(Sum(Sales), 3) を使用して作成された Above offset 3 というラベルのメジャーは、引数 offset が 3 に設定されており、現在の行より 3 行上の値を取得します。また、現在の Customer の Sum(Sales) 値が 3 行上の Customer の値に追加されます。Customer の最初の 3 行で返される値は Null です。
テーブルには、Sum(Sales)+Above(Sum(Sales)) から作られたものと、Higher? というラベルの IF(Sum(Sales)>Above(Sum(Sales)), 'Higher') から作成されたより複雑なメジャーも表示されます。
例2:
この例で示されているテーブルのスクリーンショットでは、より多くの軸がビジュアライゼーションに追加されています。(Month および Product) が保存されます。 複数の軸が含まれているチャートでは、Above、Below、Top、Bottom 関数を含む数式の結果は、Qlik Sense における列軸のソート順序によって変わります。Qlik Sense は、最後にソートされた軸の結果である列セグメントに基づいて関数を評価します。列のソート順は、[ソート] のプロパティ パネルで制御され、必ずしも列がテーブルに表示される順序ではありません。
例 2 のテーブルのビジュアライゼーションを示した以下のスクリーンショットでは、最後にソートされた軸が Month のため、Above 関数は月に基づいて評価を行います。列セグメントにある各月 (JanからAug) の各 Productの値について一連の結果が出されます。この後に次の列セグメントのシリーズ、つまり次の Product の各 Month の値が続きます。各 Product のそれぞれの Customer 値に列セグメントが生成されます。
例3:
例 3 のテーブルのビジュアライゼーションを示したスクリーンショットでは、最後にソートされた軸が Product になっています。これは、プロパティ パネルにあるソート タブで軸 Product を位置 3 に移動することで達成できます。Above 関数は各 Product について評価されます。製品は AA と BB の 2 つしかないため、Null 以外の結果は各シリーズにつき 1 つのみとなります。月が Jan の行 BB では、Above(Sum(Sales)) の値は 46 です。行 AA では、値は Null です。AA の上には Product の値がないため、任意の月の行 AA の値は常に Null になります。2 番目のシリーズは、Customer 値、Astrida について、月 Feb の AA と BB で評価されます。Astrida ですべての月を評価したら、2 番目の Customer、Betacab などでもこのステップを繰り返します。
例4: |
結果 | ||||
---|---|---|---|---|---|
Above 関数は、範囲関数への入力として使用できます。例: RangeAvg (Above(Sum(Sales),1,3))。 |
|
例で使用されているデータ: