Dax-functions-dax-groupby-function

提供:Dev Guides
移動先:案内検索

DAXその他-GROUPBY関数

説明

選択された列のセットを持つテーブルを返します。 DAX CURRENTGROUP関数が追加する拡張列の集計関数内で使用されることを許可します。 GROUPBYは、グループ化されたデータを再利用して、パフォーマンスを向上させます。

DAX GROUPBY関数は、DAX SUMMARIZE関数に似ています。 ただし、GROUPBYは、追加する拡張列に対して暗黙的なCALCULATEを実行しません。

DAX GROUPBY関数はExcel 2016で新しく追加されました。

構文

GROUPBY (<table>, [<groupBy_columnName1>], [<name>, <expression>] …)

パラメーター

Sr.No. Term & Definition
1

table

データのテーブルを返す任意のDAX式。

2

groupBy_columnName1

データがグループ化されるテーブル(または関連テーブル)の既存の列の名前。

このパラメーターを式にすることはできません。

3

name

GroupBy列のリストに追加される新しい列に付けられた名前。二重引用符で囲みます。

4

expression

GroupBy値の各セットに対して式が評価される、単一のスカラー値を返す任意のDAX式。

  • SUMX、AVERAGEX、MINX、MAXXなどの「X」集計関数を含めることができます。 これらの関数のいずれかがこの方法で使用される場合、テーブルパラメーター(テーブル式)はCURRENTGROUP関数で置き換えることができます。 (詳細については、備考セクションを参照してください)。
  • ただし、CURRENTGROUP関数は、式のテーブルスキャンの最上位レベルでのみ使用できます。 つまり
  • ABSはスキャンを実行しないため、ABS(SUMX(CURRENTGROUP()、[Column]))は許可されます。
  • ただし、SUMX(<table>、SUMX(CURRENTGROUP()…))は許可されません。
  • DAX CALCULATE関数と計算フィールドは式では使用できません

戻り値

groupBy_columnNameパラメーター用に選択された列と、nameパラメーターで指定された列でグループ化された表。

備考

GROUPBY関数は次のことを行います-

  • 指定されたテーブル(および「1対1」方向のすべての関連テーブル)から開始します。
  • すべてのGroupBy列(手順1のテーブルに存在する必要がある)を使用してグループ化を作成します。
  • 各グループは結果の1行ですが、元のテーブルの行のセットを表します。
  • グループごとに、追加される拡張列を評価します。 SUMMARIZE関数とは異なり、暗黙のCALCULATEは実行されず、グループはフィルターコンテキストに配置されません。

パラメーター

  • 名前を定義する各列には、対応する式が必要です。 それ以外の場合、エラーが返されます。
  • 最初のパラメーターnameは、結果の列の名前を定義します。 2番目のパラメーター式は、その列の各行の値を取得するために実行される計算を定義します。
  • 各名前は二重引用符で囲む必要があります。
  • groupBy_columnNameは、テーブルまたは関連テーブルに存在する必要があります。
  • この関数は、選択された行のセットを、1つ以上のgroupBy_columnName列の値によって要約行のセットにグループ化します。 グループごとに1行が返されます。

CURRENTGROUP()

  • CURRENTGROUP関数は、GROUPBY関数内の列を定義する式でのみ使用できます。
  • CURRENTGROUPは、GROUPBY結果の現在の行に属するGROUPBYのテーブルパラメーターから行のセットを返します。
  • CURRENTGROUP関数はパラメーターを使用せず、AverageX、CountAX、CountX、GeoMeanX、MaxX、MinX、ProductX、StDevX.S、StDevX.P、SumX、VarX.S、VarXのいずれかの集約関数の最初のパラメーターとしてのみサポートされます.P。

= GROUPBY (
   Sales,Sales[Salesperson],Products[Product],"Total Sales",
   SUMX (CURRENTGROUP (),[Sales Amount])
)