# Max - チャート関数

Max() は集計データの最高値を検出します。rank n を指定することで、n 番目に高い値を探し出すことができます。

ヒント メモFirstSortedValueおよび RangeMax 関数は、Max 関数と機能がよく似ています。必要に応じて、これらの解説も参照してください。

構文:

Max([{SetExpression}] [TOTAL [&lt;fld {,fld}&gt;]] expr [,rank])

戻り値データ型： 数値

引数

| 引数 | 説明 |
| --- | --- |
| expr | メジャーの対象となるデータが含まれている数式または項目。 |
| rank | rank のデフォルト値は 1 で、これは最大値に相当します。rank を 2 に指定すると、2 番目に高い値が返されます。rank を 3 に指定すると 3 番目に高い値が返され、以下同様に指定した順位に相当する値が返されます。 |
| SetExpression | デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。 |
| TOTAL | 関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。<br><br>TOTAL [&lt;fld {.fld}&gt;] (ここで、TOTAL 修飾子の後には、1 つまたは複数の項目名のリストがチャート軸変数のサブセットとして続く) を使用して、合計絞込値のサブセットを作成できます。<br><br>[集計範囲の定義](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `Max(UnitSales)` | `UnitSales` 項目にある最大値を返します。 |
| `Max(UnitSales*UnitPrice)` 注文の値は、(`UnitSales`) で販売された個数に単価を乗算して計算されます。 | (`UnitSales`)\*(`UnitPrice`) で算出されるあらゆる計算結果の最大値を返します。 |
| `Max(UnitSales, 2)` | 2 番目に大きい値を返します。 |
| `Max(TOTAL UnitSales)` | `TOTAL` 修飾子は、チャート軸を無視して、可能な限り最大値が見つかることを意味します。`Customer` が軸に設定されているチャートで `TOTAL` 修飾子を使用すると、各顧客の最大 `UnitSales` ではなく、全データセットにおける最大値が返されます。 |
| `Max({1} TOTAL UnitSales)` | set 分析数式 `{1}` は、選択された内容に関係なく、評価されるレコード セットを `ALL` として定義します。たとえば、特定の顧客を選択した場合でも、データセット全体で最大の `UnitSales` が返されます。 |

## 例 - Max の基本

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

#### チャートの数式

概要

データセットには、月ごとの製品売上高が含まれています。各製品の最大売上高と、それが発生した月を特定したいと考えています。

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

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

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

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

  * `Customer`

  * `UnitSales`

  * `UnitPrice`

ロード スクリプト

```
Example:
LOAD * inline [
Customer|UnitSales|UnitPrice
Astrida|4|16
Astrida|10|15
Astrida|9|9
Betacab|5|10
Betacab|2|20
Betacab||25
Canutility|8|15
Canutility||19
] (delimiter is '|');
```

結果

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

* `Customer`

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

* `=Max(UnitSales)`、最大 `UnitSales` 値を計算します。

* `=Max(UnitSales*UnitPrice)`、行ごとに `UnitSales` に `UnitPrice` を乗算した後の最大値を計算します。

* `=Max(UnitSales, 2)`、2 番目に大きい値を計算します。

* `=Max(TOTAL UnitSales)`、チャート軸に関係なく、最も大きい合計を計算します。

* `=Max({1} TOTAL UnitSales)`、すべての選択を無視して、最も大きい合計を計算します。

Results table

| Customer | Max(UnitSales) | Max(UnitSales\*UnitPrice) | Max(UnitSales, 2) | Max(TOTAL UnitSales) | Max({1} TOTAL UnitSales) |
| --- | --- | --- | --- | --- | --- |
| Totals | 10 | 150 | 9 | 10 | 10 |
| Astrida | 10 | 150 | 9 | 10 | 10 |
| Betacab | 5 | 50 | 2 | 10 | 10 |
| Canutility | 8 | 120 | - | 10 | 10 |

この例では、次の点に注意してください。

* 最初のメジャー (`Max(UnitSales)`) では、顧客 `Astrida` の最も大きい `UnitSales` 値は `10` です。この列の `Totals` セルは、`10` を返します。これは、この値がデータセット全体で最も大きい `UnitSales` 値でもあるためです。

* 2 番目のメジャー (`Max(UnitSales*UnitPrice)`) では、`Astrida` に対して `150` が返されます。これは、`UnitSales` と `UnitPrice` を乗算したときのその顧客の最も大きい値です。この列の `Totals` セルも `150` を返します。これは、データセット全体で計算された最大値でもあるためです。

* 3 番目のメジャー (`Max(UnitSales, 2)`) では、顧客 `Astrida` の 2 番目に大きい `UnitSales` 値は `9` です。この値は、3 人の顧客の中で 2 番目に大きい値でもあるため、`Totals` 行も `9` を返します。

* 4 番目のメジャー (`Max(TOTAL UnitSales)`) は値 `10` を返します。これは顧客軸に依存しない最大値であるため、すべての行は同じ値を返します。ただし、顧客 `Betacab` を選択した場合、テーブルにはその顧客の値のみが返されます。この場合は、`Betacab` のすべての製品の中で `UnitSales` が最も大きい `5` です。

* 5 番目のメジャー (`Max({1} TOTAL UnitSales)`) は、設定変更された `{1}` が使用されるため、どの `Customer` が選択されているかに関係なく、値 `10` を返します。たとえば、`Betacab` を選択した場合、この列は引き続き値 `10` を返します。

## 例 - 月別の最大売上高を計算する Max のシナリオ

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

#### チャートの数式

概要

データセットには、月ごとの製品売上高が含まれています。営業マネージャーは、各製品の最大売上高と、それが発生した月を特定したいと考えています。

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

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

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

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

  * `Product`

  * `Sales`

  * `Month`

ロード スクリプト

```
Example:
Load * inline [
Product,Sales,Month
A, 500, 2024-01-01
A, 700, 2024-02-01
A, 600, 2024-03-01
B, 300, 2024-01-01
B, 800, 2024-02-01
B, 450, 2024-03-01
C, 550, 2024-01-01
C, 620, 2024-02-01
C, 710, 2024-03-01
];
```

結果

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

* `Product`

* `Month`

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

* `=If(Sales = Max(TOTAL <Product> Sales), Sales)`、各製品の最大売上高を計算します。メジャーのプロパティ パネルで、 [アドオン] &gt; [データの処理] を選択します。[ゼロ値を含める] チェックボックスをクリアして、null 値を削除します。

Results table

| Product | Month | If(Sales = Max(TOTAL &lt;Product&gt; Sales), Sales) |
| --- | --- | --- |
| A | 2024-02-01 | 700 |
| B | 2024-02-01 | 800 |
| C | 2024-03-01 | 710 |

メジャーの結果は、各製品の最大売上高と、この値に達した月を返します。たとえば、`Product B` は、`2024-02-01` で最も大きい売上 (`800` ) を記録しました。

## 詳細を見る

* [FirstSortedValue - チャート関数](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm)
* [RangeMax スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RangeFunctions/rangemax.htm)
* [set 分析](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [集計範囲の定義](https://help.qlik.com/ja-JP/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)