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

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

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

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

数値、日付、又は時間軸

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

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

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

キーワードは DESCENDINGASCENDING です。詳細については、以下の「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) は有効になりますが、この場合、関数では常にゼロが返されます。

Polaris では空白値のランクは 0 ですが、Classic では利用可能な最低ランクが割り当てられます。

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 <ads-icons dimension-lists /> 内の関連するリスト アイテムの順番どおりにランク付けされます。

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

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

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

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

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

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

次の例では、列にリスト「Salespeople」があり、行にリスト アイテムがあります。

この例は、Ranking groups パラメーターを使用せずに、営業担当者ごとの売上を追跡し、売上に基づいてボーナス ポイントを DESCENDING (降順) で累積するのに役立ちます。


AliceBobCarolDanEllieFelix
Sales200300400500600700
Bonus points51020152580

Result

RANKCUMULATE(Bonus points, Sales, DESCENDING)

15515014012010580

この例は、営業担当者ごとの売上を追跡し、「Region」ごとに売上に基づいてボーナス ポイントを ASCENDING (昇順) で累積するのに役立ちます。ここでは「Region」がリストになっています。


AliceBobCarolDanEllieFelix
Sales200300400500600700
Bonus points51020152580
RegionWestSouthWestEastSouthNorth

Result

RANKCUMULATE(Bonus points, Sales, ASCENDING, TRUE, Region)

51025153580