# Below - チャート関数

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

構文:

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

戻り値データ型： デュアル

引数

| 引数 | 説明 |
| --- | --- |
| expr | メジャーの対象となるデータが含まれている数式または項目。 |
| offset | offset n を 1 より大きい値にすると、数式の評価が現在の行から n 行下に移動します。<br><br>offset に 0 を指定すると、現在の行で数式が評価されます。<br><br>offset が負の値である場合、Below 関数は、相応する正の offset 値が付いた Above 関数と同様に機能します。 |
| count | 3 番目のパラメータ count を 1 より大きい値にした場合、この関数は count 値の範囲を返します。つまり、オリジナルのテーブルのセルから下方向に count 行の各値を返します。 この形式では、特別な範囲関数の引数として関数を使用できます。 [範囲関数](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/RangeFunctionsInCharts.htm) |
| TOTAL | テーブルが 1 軸の場合、または TOTAL 修飾子が引数として使用される場合は、現在の列セグメントは常に列全体と等しくなります。<br><br>[集計範囲の定義](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

列セグメントの最後の行では下に行が存在しないため、NULL 値が返されます。

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

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

制限事項:

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

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

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `Below( Sum(Sales) )` | 現在の行より下の行の `Sales` の値を返します。 |

## 例 - Below の基本

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/below.htm)

#### チャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `Year`

  * `Sales`

ロード スクリプト

```
Example:
LOAD * INLINE [
Year, Sales
2019, 1000
2020, 1500
2021, 1200
2022, 1800
2023, 1700
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:

* `Year`

次のメジャーを作成します:

* `=Sum(Sales)`、年間売上高を見つけます。

* `=Below(Sum(Sales))`、次年の売上高を見つけます。

* `=Sum(Sales) - Below(Sum(Sales))`、今年と翌年の `Sales` の値の差異を計算します。

* `=RangeSum(Below(Sales, 1, 2))`、今後 2 年間の売上の 2 年間の累計を表示します。

* `=(Sales - Below(Sales)) / Below(Sales)`、`Sales` の変化を比率/パーセンテージとして返します。 この値をパーセンテージで表示するには、 [数値書式] で、 [数値] &gt; [書式設定 [シンプル]] &gt; [12.34%] を選択します。

結果テーブル

| Year | Sum(Sales) | Below(Sum(Sales)) | Sum(Sales) - Below(Sum(Sales)) | RangeSum(Below(Sales, 1, 2) | (Sales - Below(Sales)) / Below(Sales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 7200 | - | - | 0 | - |
| 2019 | 1000 | 1500 | -500 | 2700 | -33.33% |
| 2020 | 1500 | 1200 | 300 | 3000 | 25.00% |
| 2021 | 1200 | 1800 | -600 | 3500 | -33.00% |
| 2022 | 1800 | 1700 | 100 | 1700 | 5.88% |
| 2023 | 1700 | - | - | 0 | - |

結果を見ると、現在の期間の `Sales` 値を次の期間と比較できます。

* `Sum(Sales) - Below(Sum(Sales))` メジャーは、現在の期間と次の期間を比較して、`Sales` 値の変化を返します。

* `RangeSum(Below(Sales, 1, 2))` メジャーは、次の 2 つの `Sales` 値の合計を返します。

* `(Sales - Below(Sales)) / Below(Sales)` メジャーは、次の期間と比較した `Sales` の変化をパーセンテージで返します。

ヒント メモこの関数は、棒グラフなどテーブル以外のチャートでも使用できます。

次の手順を実行します。

棒グラフを作成し、この項目を軸として追加します。

* `Year`

次のメジャーを作成します:

* `=Sum(Sales) - Below(Sum(Sales))`、前年比の差異を返します。

Below 関数の結果を示す棒グラフ

Below 関数の結果を示す棒グラフ

BelowBelow 関数の結果を示す棒グラフ ![前年比の売上高合計と翌年との比較を示す棒グラフ](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-below-example.png)

棒グラフで `Below` 関数を使用すると、現在の期間と次の期間の売上の差異を視覚的に比較できます。

## 例 - Below のシナリオ

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/below.htm)

#### チャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `SalesYear`

  * `SalesAmount`

ロード スクリプト

```
Example:
LOAD * INLINE [
SalesYear, SalesAmount
2019, 500
2020, 800
2021, 400
2022, 700
2023, 600
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:

* `SalesYear`

次のメジャーを作成します:

* `=Sum(SalesAmount)`、売上を集計します。

* `=RangeSum(Below(SalesAmount, 0, NoOfRows() - RowNo()))`、`SalesAmount` 値の総計を計算します。

結果テーブル

| SalesYear | Sum(SalesAmount) | RangeSum(Below(SalesAmount, 0, NoOfRows() - RowNo())) |
| --- | --- | --- |
| Totals | 3000 | 0 |
| 2019 | 500 | 2400 |
| 2020 | 800 | 1900 |
| 2021 | 400 | 1100 |
| 2022 | 700 | 700 |
| 2023 | 600 | 0 |

結果は、`RangeSum` 関数と `Below` 関数を組み合わせて累積合計を作成する方法を示しています。

ヒント メモこの関数は、棒グラフなどテーブル以外のチャートでも使用できます。

次の手順を実行します。

棒グラフを作成し、この項目を軸として追加します。

* `SalesYear`

次のメジャーを作成します:

* `=RangeSum(Below(SalesAmount, 0, NoOfRows() - RowNo()))`、累計ランダウン売上高を返します。

年ごとの累計ランダウン売上高を示す棒グラフ

年ごとの累計ランダウン売上高を示す棒グラフ

年ごとの累計ランダウン売上高を示す棒グラフ ![累計ランダウン売上高を示す棒グラフ。](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-below-example2.png)

棒グラフで `Below` 関数を `RangeSum` と組み合わせて使用すると、累計ラウンダウン売上高を視覚的に表示できます。

## 例: Below を使用したチャートの数式

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/below.htm)

#### チャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* `Monthnames` と `Sales2013` と呼ばれる 2 つのデータ テーブル。

ロード スクリプト

```
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, 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 (MonthText, 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 '|'); 
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:

* `Customer`

次のメジャーを作成します:

* `=Sum(Sales)`、売上の合計を計算します。

* `=Below(Sum(Sales))`、前の行の売上合計を表示します。

* `=Sum(Sales)+Below(Sum(Sales))`、現在の行より下の顧客行の売上合計と売上値の合計を合計します。

* `=Sum(Sales)+Below(Sum(Sales), 3)`、現在の `Customer` の `Sum(Sales)` 値と、3 行下にある `Customer` の値を合計します。

* `=If(Sum(Sales)>Below(Sum(Sales)), 'Higher')`、下の行の顧客の `Sum(Sales)` よりも `Sum(Sales)` 結果が大きい顧客に「`Higher`」というラベルを追加します。

結果テーブル

| Customer | Sum(Sales) | Below(Sum(Sales)) | Sum(Sales)+Below(Sum(Sales)) | Sum(Sales)+Below(Sum(Sales), 3) | If(Sum(Sales)&gt;Below(Sum(Sales)), 'Higher') |
| --- | --- | --- | --- | --- | --- |
| Totals | 2566 | - | - | - | - |
| Astrida | 587 | 539 | 1126 | 1334 | Higher |
| Betacab | 539 | 683 | 1222 | - | - |
| Canutility | 683 | 757 | 1440 | - | - |
| Divadip | 757 | - | - | - | - |

複数の軸が含まれているチャートでは、`Above`、`Below`、`Top`、`Bottom` 関数を含む数式の結果は、Qlik Sense における列軸のソート順序によって変わります。Qlik Sense は、最後にソートされた軸の結果である列セグメントに基づいて関数を評価します。列のソート順は、[ソート] のプロパティ パネルで制御され、必ずしも列がテーブルに表示される順序ではありません。 ソート順の使用方法を示す例については、「[例 - ソート順に基づく Above のシナリオ](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm#Example)」を参照してください。

メジャー `Below(Sum(Sales))` は、その下に行がないため、顧客 `Divadip` に対して NULL を返します。行 `Canutility` の結果には、`Divadip` の `Sum(Sales)` の値が表示されます。`Betacab` の結果には `Canutility` の `Sum(Sales)` の値が表示され、以下同様に続きます。

メジャー `Sum(Sales)+Below(Sum(Sales))` の場合、`Astrida` の行は、行 `Betacab` + `Astrida` (`539+587`) の `Sum(Sales)` 値を加算した結果を返します。`Betacab` 行の結果は、`Canutility` + `Betacab` (`539+683`) の `Sum(Sales)` 値を加算した結果を示します。

メジャー `Sum(Sales)+Below(Sum(Sales), 3)` には引数 `offset` があり、`3` に設定されており、現在の行より 3 つ下の行の値を取得します。現在の `Customer` の `Sum(Sales)` 値を 3 行下の `Customer` の値に加えます。`Customer` の最後の 3 行の値は Null です。

顧客 Astrida の販売実績は、その下の行の顧客 `Betacab` の販売実績の合計よりも大きいため、メジャー `IF(Sum(Sales)>Below(Sum(Sales)), 'Higher')` は顧客 `Astrida` の値 `Higher` を返します。

ヒント メモこの関数は、棒グラフなどテーブル以外のチャートでも使用できます。

ヒント メモその他のチャートの場合、どの行が関数に関連しているかわかりやすくするために、チャートをストレート テーブルに相当するセグメントに変換します。

## 例 - RangeAvg で Below 関数を使用する

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/below.htm)

#### チャートの数式

概要

Below 関数は、範囲関数への入力として使用できます。この例では、RangeAvg で関数を使用します。

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* Monthnames と Sales2013 と呼ばれる 2 つのデータ テーブル。

ロード スクリプト

```
Monthnames:
LOAD *, Dual(MonthText,MonthNumber) as Month INLINE [
MonthText, 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 (MonthText, 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 '|'); 
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:

* Customer

次のメジャーを作成します:

* =RangeAvg (Below(Sum(Sales),1,3))

結果テーブル

| Customer | RangeAvg (Below(Sum(Sales),1,3)) |
| --- | --- |
| Totals | - |
| Astrida | 660 |
| Betacab | 720 |
| Canutility | 757 |
| Divadip | - |

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

## 詳細を見る

* [Above - チャート関数](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/above.htm)
* [Bottom - チャート関数](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/bottom.htm)
* [Top - チャート関数](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/InterRecordFunctions/top.htm)
* [RangeAvg - スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangeavg.htm)