次の方法で共有


GROUPBY

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

手記

この関数は、意味のない結果を返す可能性があるため、視覚的な計算 使用することはお勧めしません。

GROUPBY 関数は、SUMMARIZE 関数に似ています。 ただし、GROUPBY では、追加する拡張列に対して暗黙的な CALCULATE は行われません。 GROUPBY では、追加する拡張列の集計関数内で新しい関数 (CURRENTGROUP) を使用できます。 GROUPBY は、1 つのテーブル スキャンで複数の集計を実行するために使用されます。

構文

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

パラメーター

用語 定義
table データのテーブルを返す任意の DAX 式。
groupBy_columnName データをグループ化するテーブル (または関連テーブル) 内の既存の列の名前。 このパラメーターを式にすることはできません。
name GroupBy 列の一覧に追加される新しい列に指定された名前を二重引用符で囲みます。
expression 最初の引数が CURRENTGROUPされている X 集計関数の 1 つ ()。 サポートされている X 集計関数の完全な一覧については、後述の「CURRENTGROUP」セクションを参照してください。

戻り値

groupBy_columnName引数に対して選択された列と、名前引数で指定された拡張列を含むテーブル。

備考

  • GROUPBY 関数は次の処理を行います。

    1. 指定したテーブル (および "to-1" 方向のすべての関連テーブル) から始めます。

    2. すべての GroupBy 列を使用してグループ化を作成します (手順 1. の表に存在する必要があります)。

    3. 各グループは結果の 1 行ですが、元のテーブル内の行のセットを表します。

    4. グループごとに、追加する拡張列を評価します。 SUMMARIZE 関数とは異なり、暗黙的な CALCULATE は実行されず、グループはフィルター コンテキストに配置されません。

  • 名前を定義する各列には、対応する式が必要です。それ以外の場合は、エラーが返されます。 最初の引数 name は、結果の列の名前を定義します。 2 番目の引数式は、その列の各行の値を取得するために実行される計算を定義します。

  • groupBy_columnName は、テーブル内または関連テーブル内にある必要があります。

  • 各名前は二重引用符で囲む必要があります。

  • この関数は、選択した一連の行を、1 つ以上のgroupBy_columnName列の値によって集計行のセットにグループ化します。 グループごとに 1 行が返されます。

  • GROUPBY は主に、DAX テーブル式の中間結果に対して集計を実行するために使用されます。 モデル内の物理テーブルに対して効率的な集計を行う場合は、SUMMARIZECOLUMNS または SUMMARIZE 関数の使用を検討してください。

  • この関数は、計算列または行レベル セキュリティ (RLS) 規則で使用する場合、DirectQuery モードでは使用できません。

CURRENTGROUP

CURRENTGROUP は、GROUPBY 関数内の拡張列を定義する式でのみ使用できます。 実際には、CURRENTGROUP は、GROUPBY 結果の現在の行に属する GROUPBY のテーブル引数から一連の行を返します。 CURRENTGROUP 関数は引数を受け取りず、AVERAGEXCOUNTAXCOUNTXGEOMEANXMAXXMINXPRODUCTXSTDEVX.SSTDEVX.PSUMXVARX.SVARX.Pのいずれかの集計関数の最初の引数としてのみサポートされます。

次の例では、まず、SUMMARIZECOLUMNS 関数を使用して、物理テーブルに対して国および製品カテゴリ別にグループ化された売上合計を計算します。 次に、GROUPBY 関数を使用して、最初の手順の中間結果をスキャンして、製品カテゴリ全体の各国の最大売上を見つけます。

DEFINE
VAR SalesByCountryAndCategory =
SUMMARIZECOLUMNS(
Geography[Country],
Product[Category],
"Total Sales", SUMX(Sales, Sales[Price] * Sales[Qty])
)

EVALUATE
GROUPBY(
SalesByCountryAndCategory,
Geography[Country],
"Max Sales", MAXX(CURRENTGROUP(), [Total Sales])
)

SUMMARIZE 関数SUMMARIZECOLUMNS 関数