RANKCUMULATE 関数は、値をランク付けしてからそのランク順で値を累積します。グループごとに個別にランク付けを実行できます。

たとえば、RANKCUMULATE 関数を使用して、勤続年数順に従業員の売上収益を累積的に合計できます。この操作の例については「例」セクションを参照してください。

RANKCUMULATE(Cumulation values, Ranking values [, Direction] [, Include value] [, Ranking groups])

引数データ型説明
Cumulation values (必須)数値、ライン アイテム、プロパティ、又は式ランク付け基準に基づいて累積する数値です。
Ranking values (必須)

数値、日付、又は時間軸

ライン アイテム、プロパティ、又は式を使用できます。

累積の基となるランク付け基準です。
Directionキーワード

ランク付けする順序を決定します。

キーワードは DESCENDING と ASCENDING です。以下の「Direction 引数のキーワード」セクションにはさらに詳しい情報があります。

Include valueブール値

値をランク付けするかどうかを決定します。

デフォルト値である TRUE では、値がランキング対象になります。

値が FALSE の場合、ランキングから値が除外され、結果として 0 が返されます。

Ranking groups数値、ブール値、日付、時間軸、リスト。テキストは Classic でのみサポートされています。指定した場合、値は Ranking groups 引数の各値とは無関係にランク付けされます。

RANKCUMULATE 関数は数値を返します。

キーワード説明
DESCENDINGこのキーワードを使用すると、RANKCUMULATE 関数は最も高いソース値に 1 、2 番目に高いソース値に 2 という順番でランクを付けていきます。 
ASCENDING

Direction 引数を省略した場合のデフォルトのキーワードです。

このキーワードを使用すると、RANKCUMULATE 関数は最も低いソース値に 1 、2 番目に低いソース値に 2 という順番でランクを付けていきます。

RANKCUMULATE(Revenue, Transaction Date, DESCENDING, Eligible transaction?, Region)

RANKCUMULATE 関数の Ranking values 引数には、数値形式、日付形式、又は時間軸形式のライン アイテム、プロパティ、又は式を使用できます。ただし、結果は常に数値で返されます。

Direction 引数にデフォルトのキーワードである ASCENDING を使用して RANKCUMULATE 関数で値をランク付けした場合、最も低い値が 1 位、2 番目に低い値が 2 位という順番でランク付けされます。RANKCUMULATE を何と組み合わせるかによって次のように動作が変わります。

  • 数値: 最も大きい数値が 1 位としてランク付けされます。
  • 日付: 最も先の将来の日付が 1 位としてランク付けされます。
  • 時間軸: 最も先の将来の時間軸が 1 位としてランク付けされます。

Cumulation values 引数の二つの値が Ranking values 引数で同じランクになった場合、General Lists 内の関連するリスト アイテムの順番どおりにランク付けされます。

RANKCUMULATE 関数を使ってユーザー リストを参照できます。ただし、ユーザー リスト内の特定のユーザーは、内容が変化して式が無効になる可能性がある本番データであるため参照できません。

Classic 計算エンジンでは、サーバーの動作を遅くする大規模なデータ セットのランク付けを防ぐために、Anaplan では 5,000 万セルまでというセルの上限が設定されています。5,000 万個以上のセルを対象に RANKCUMULATE 関数が使用されると、モデルはロールバックされ、通知が表示されます。

5,000 万セルという上限は、集計値または時間バージョンのリストには適用されません。つまり、集計されていないセルが 5,000 万個未満の場合、セルの数が 5,000 万個以上あるライン アイテムで RANKCUMULATE 関数を使用できます。

RANKCUMULATE 関数の対象となるセルの数が増えるにつれ、計算にかかる時間も比例して長くなります。

Ranking values 引数に正の無限大、負の無限大、又は NaN (非数) を使用すると、RANKCUMULATE 関数は 0 を返します。

累積ソースが大きなデータ セットの場合、小数点以下の桁数が多い数値を追加すると、最下位の桁で浮動小数点エラーが発生する可能性があります。

Polaris では、ターゲットがライン アイテム サブセットでディメンション化されている場合、又は関数でライン アイテム サブセットを参照している場合は RANKCUMULATE を使用できません。

Polaris にはセルの上限がありません。Classic ではセルの上限が 5,000 万個までとなっています。

Polaris では無限大がサポートされていませんが、Classic ではサポートされています。Classic では、累積ソースに無限大が含まれる場合、それ以降の結果は累積が終了するまでその無限大になります。ただし、逆の無限大がその後に来る場合、結果は NaN (非数) になります。Polaris では無限大の代わりに NaN が返されます。

Polaris では空白が整列されないため、ランク付けできません。RANKCUMULATE では、ランキング値が空白の場合にゼロが返されます。

Polaris では、ランキング値を BLANK リテラルにすることができます。たとえば、RANKCUMULATE(1, BLANK) は有効になります (ただし、この場合、関数では常にゼロが返されます)。

こちらの例では、「Salespersons」リストを含むモジュールが列にあり、ライン アイテムの数が行にあります。

この例では、RANKCUMULATE を使用して、各営業担当者の勤続年数順に売上を累積的に合計しています。表の一番下にある反復式では、次の目的のために Include value 引数と Ranking groups 引数を使用しています。

  • 累積的ランク付けの対象にする営業担当者の売上を決定する。
  • 累積的ランク付けを地域ごとに細かく分類する。

二つのライン アイテムでは、RANK 関数を使用して、RANKCUMULATE で値を累積した順序がわかるようになっています。


BenGrahamRashidLauraRitaDavidMasakiKieranAlisaKarenMartinaOswald
RegionNorthNorthNorthSouthSouthSouthEastEastEastWestWestWest
Sales258,796235,884190,750228,315171,494234,276230,213222,777201,855271,162267,401209,368
Years of service6981211913145151114

Rank by years of service

RANK(Years of Service, DESCENDING)

118105684212162
Include in cumulation?

Cumulated sales by longest tenure

RANKCUMULATE(Sales, Years of Service, DESCENDING)

2,520,4361,836,6142,261,6401,161,8351,333,3292,070,890933,520493,9392,722,291271,1621,600,730703,307

Cumulated sales by tenure for selected employees

RANKCUMULATE(Sales, Years of Service, DESCENDING, Include in cumulation?)

685,430235,884426,634228,315399,8090452,990222,777654,845271,1620480,530

Cumulative sales by tenure for each region

RANKCUMULATE(Sales, Years of Service, DESCENDING, TRUE, Region)

685,430235,884426,634228,315399,809634,085452,990222,777654,845271,162747,931480,530