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 という順番でランクを付けていきます。

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

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

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

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

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

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 を返します。

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

こちらの例では、「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