次の方法で共有


RANK

適用対象: 計算列計算テーブルメジャービジュアル計算

指定したパーティション内の現在のコンテキストのランキングを、指定した順序で並べ替え、返します。 一致するものが見つからない場合、ランクは空白になります。

構文

RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

パラメーター

用語 定義
ties (省略可能)2 つ以上の行が関連付けられているときにランク付けを処理する方法を定義します。
指定した場合、サポートされる値は DENSE または SKIP です。
省略した場合:
- 既定値は SKIP
relation (省略可能)出力行が返されるテーブル式。
指定した場合、orderBy および partitionBy 内のすべての列は、その列から取得する必要があります。
省略した場合:
- orderBy を明示的に指定する必要があります。
- すべての orderBy 列と partitionBy 列は完全修飾で、単一のテーブルから取得する必要があります。
- orderBy および partitionByのすべての列の ALLSELECTED() が既定値になります。
axis (省略可能)視覚図形の軸。 ビジュアル計算でのみ使用でき、relationを置き換えます。
orderBy (省略可能)各パーティションの並べ替え方法を定義する列を含む ORDERBY() 句。
省略した場合:
- relation を明示的に指定する必要があります。
- 既定では、partitionByでまだ指定されていない relation 内のすべての列によって並べ替えられます。
blanks (省略可能)relation または axisを並べ替えるときに空白値を処理する方法を定義する列挙体。
サポートされている値は次のとおりです。
  • DEFAULT (既定値)、数値の動作が空白値である場合は、0 から負の値の間で並べ替えます。 文字列の動作は空白値であり、空の文字列を含むすべての文字列の前に並べ替えられます。
  • FIRST、昇順または降順の並べ替え順序に関係なく、空白は常に先頭に並べ替えられます。
  • LAST、昇順または降順の並べ替え順序に関係なく、空白は常に末尾に並べ替えられます。

注意: 個々の式に対する ORDERBY() 関数の blanks パラメーターと空白の両方が指定されている場合、個々の orderBy 式の blanks は関連する orderBy 式に優先され、blanks を指定しない orderBy 式は親関数の blanks パラメーターを受け取ります。
partitionBy (省略可能)relation のパーティション分割方法を定義する列を含む PARTITIONBY() 句。 省略すると、relation は 1 つのパーティションとして扱われます。
matchBy (省略可能)データの照合方法と現在の行の識別方法を定義する列を含む MATCHBY() 句。
reset (省略可能)ビジュアル計算でのみ使用できます。 計算がリセットされるかどうか、およびビジュアル図形の列階層のレベルを示します。 使用できる値は、現在の視覚図形の列へのフィールド参照、NONE (既定値)、LOWESTPARENTHIGHESTPARENT、または整数です。 動作は、整数符号 (
- 0 または省略した場合) に依存し、計算はリセットされません。 NONEに相当します。
- 正の場合、整数はグレインに関係なく、最も高い列から始まる列を識別します。 HIGHESTPARENT は 1 に相当します。
- 負の値の場合、整数は現在のグレインを基準にして、最下位から始まる列を識別します。 LOWESTPARENT は -1 に相当します。

戻り値

現在のコンテキストのランク番号。

備考

  • orderBypartitionBy、および matchBy 列には、動作する現在の行を定義するのに役立つ、対応する外部値が必要です。次の動作を使用します。

    • 対応する外部列が 1 つだけ存在する場合は、その値が使用されます。
    • 対応する外部列がない場合は、次のようにします。
      • RANK は、最初に、対応する外部列がないすべての orderBypartitionBy、および matchBy 列を決定します。
      • 親コンテキスト内のこれらの列の既存の値の組み合わせ RANK すべてについて、RANK が評価され、行が返されます。
      • RANKの最終的な出力はランク番号です。
  • matchBy が存在する場合、RANK は matchBy の列を使用し、partitionBy を使用して現在の行を表します。

  • orderBy 内で指定された列と partitionByrelation内のすべての行を一意に識別できない場合、2 つ以上の行が同じランク付けになる可能性があり、順位付けは ties パラメーターによって決定されます。

  • RANK は、合計行の空白値を返します。 式を徹底的にテストすることをお勧めします。

  • RANK は、SUMXと比較 SUMRANKX とは比較されません。

  • reset はビジュアル計算でのみ使用でき、orderBy または partitionByと組み合わせて使用することはできません。 reset が存在する場合は、axis を指定できますが、relation 指定できません。

例 1 - 計算列

次の DAX クエリ:

EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "Rank",
    RANK(
    	DENSE,
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
        LAST,
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

StateProvinceName と City によって、同じ EnglishCountryRegionName を持つ各 geography をランク付けするテーブルを返します。 空白 orderBy 列の値は末尾に並べ替えられます。

例 2 - ビジュアル計算

次の視覚的な計算 DAX クエリです。

SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))

毎年の売上合計と履歴全体の両方で、毎月ランク付けする 2 つの列を作成します。

次のスクリーンショットは、ビジュアル マトリックスと最初のビジュアル計算式を示しています。

視覚的な計算 を する

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER