# 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 行の各値を返します。 この形式では、任意の特別な範囲関数の引数として関数を使用できます。 [範囲関数](https://help.qlik.com/ja-JP/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm)

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

  [集計範囲の定義](https://help.qlik.com/ja-JP/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)

列セグメントの最初の行では、上に行がないため、NULL 値が返されます。

情報メモ列セグメントは、現在のソート順で軸に同じ値を持つ連続したセルのサブセットとして定義されます。レコード間チャート関数は、チャートのストレート テーブルに相当する右端の軸を除外して列セグメントで実行されます。チャートに軸が 1 つしかない場合、または TOTAL 修飾子が指定されていると、数式はテーブル全体を評価します。

情報メモテーブルまたはテーブルに相当するアイテムに複数の縦軸が含まれる場合、現在の列セグメントには、項目間ソート順の最後の軸を表示する列を除くすべての軸列の現在行と同じ値を持つ行だけが含まれます。

制限事項:

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

* チャートの式いずれかにこのチャート関数が使用されている場合、チャートの y 値のソート、またはテーブルの式列ごとのソートは許可されません。よって、これらのソート機能は自動的に無効になります。ビジュアライゼーションまたはテーブルでこのチャート関数を使用すると、ビジュアライゼーションのソートは、レコード間の関数に対するソートされた入力の状態に戻ります。

例と結果:

例1：

テーブル出力例

| Customer | Sum(Sales) | Above(Sum(Sales)) | Sum(Sales) + Above(Sum(Sales)) | Above offset 3 | Higher? |
| --- | --- | --- | --- | --- | --- |
| - | 2566 | - | - | - | - |
| Astrida | 587 | - | - | - | - |
| Betacab | 539 | 587 | 1126 | - | - |
| Canutility | 683 | 539 | 1222 | - | Higher |
| Divadip | 757 | 683 | 1440 | 1344 | Higher |

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

例 2 のテーブルのチャートを示した以下の図では、最後にソートされた軸が Month のため、Above 関数は月に基づいて評価を行います。列セグメントにある各月 (Jan から Aug) の各 Product の値について一連の結果が出されます。この後に次の列セグメントのシリーズ、つまり次の Product の各 Month の値が続きます。各 Product のそれぞれの Customer 値に列セグメントが生成されます。

テーブル出力例

| Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
| --- | --- | --- | --- | --- |
| - | - | - | **2566** | - |
| Astrida | AA | Jan | 46 | - |
| Astrida | AA | Feb | 60 | 46 |
| Astrida | AA | Mar | 70 | 60 |
| Astrida | AA | Apr | 13 | 70 |
| Astrida | AA | May | 78 | 13 |
| Astrida | AA | Jun | 20 | 78 |
| Astrida | AA | Jul | 45 | 20 |
| Astrida | AA | Aug | 65 | 45 |

例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 などでもこのステップを繰り返します。

テーブル出力例

| Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
| --- | --- | --- | --- | --- |
| - | - | - | **2566** | - |
| Astrida | AA | Jan | 46 | - |
| Astrida | BB | Jan | 46 | 46 |
| Astrida | AA | Feb | 60 | - |
| Astrida | BB | Feb | 60 | 60 |
| Astrida | AA | Mar | 70 | - |
| Astrida | BB | Mar | 70 | 70 |
| Astrida | AA | Apr | 13 | - |
| Astrida | BB | Apr | 13 | 13 |

例4：

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

Above() 関数の引数では、offset は 1 に設定され、count は 3 に設定されています。この関数は、列セグメントの現在行のすぐ上の 3 行 (行がある場合) で数式 Sum(Sales) の結果を算出します。この 3 つの値は、RangeAvg() 関数への入力として使用され、指定された数値の範囲で平均値を算出します。

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

テーブル出力例

| Customer | RangeAvg (Above(Sum(Sales),1,3)) |
| --- | --- |
| Astrida | - |
| Betacab | 587 |
| Canutility | 563 |
| Divadip | 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` と入力します。

## 詳細を見る

* [Below](https://help.qlik.com/ja-JP/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/InterRecordFunctions/below.htm)
* [Bottom](https://help.qlik.com/ja-JP/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Top](https://help.qlik.com/ja-JP/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/InterRecordFunctions/top.htm)
* [RangeAvg - スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/RangeFunctions/rangeavg.htm)