Max - チャート関数
Max() は集計データの最高値を検出します。rank n を指定することで、n 番目に高い値を探し出すことができます。
ヒント メモFirstSortedValueおよび RangeMax 関数は、Max 関数と機能がよく似ています。必要に応じて、これらの解説も参照してください。
構文:
Max([{SetExpression}] [TOTAL [<fld {,fld}>]] expr [,rank])
戻り値データ型: 数値
引数expr | メジャーの対象となるデータが含まれている数式または項目。 |
rank | rank のデフォルト値は 1 で、これは最大値に相当します。rank を 2 に指定すると、2 番目に高い値が返されます。rank を 3 に指定すると 3 番目に高い値が返され、以下同様に指定した順位に相当する値が返されます。 |
SetExpression | デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。 |
TOTAL | 関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。 TOTAL [<fld {.fld}>] (ここで、TOTAL 修飾子の後には、1 つまたは複数の項目名のリストがチャート軸変数のサブセットとして続く) を使用して、合計絞込値のサブセットを作成できます。 集計範囲の定義 |
例: チャートの数式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 の基本
概要
データセットには、月ごとの製品売上高が含まれています。各製品の最大売上高と、それが発生した月を特定したいと考えています。
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ロード スクリプト
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 '|');
結果
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:
次のメジャーを作成します:
=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 のシナリオ
概要
データセットには、月ごとの製品売上高が含まれています。営業マネージャーは、各製品の最大売上高と、それが発生した月を特定したいと考えています。
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ロード スクリプト
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
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
次のメジャーを作成します:
Results tableProduct | Month | If(Sales = Max(TOTAL <Product> Sales), Sales) |
---|
A | 2024-02-01 | 700 |
B | 2024-02-01 | 800 |
C | 2024-03-01 | 710 |
メジャーの結果は、各製品の最大売上高と、この値に達した月を返します。たとえば、Product B は、2024-02-01 で最も大きい売上 (800 ) を記録しました。