次の方法で共有


SUMMARIZE

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

グループのセットについて要求された合計のサマリー テーブルを返します。

構文

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

パラメーター

用語 定義
table データのテーブルを返す任意の DAX 式。
groupBy_ColumnName (省略可能)概要グループの作成に使用される既存の列の修飾名。その中に見つかった値に基づいています。 このパラメーターを式にすることはできません。
name 合計列または集計列に指定された名前を二重引用符で囲みます。
expression 1 つのスカラー値を返す任意の DAX 式。式は (行/コンテキストごとに) 複数回評価されます。

戻り値

groupBy_columnName 引数に対して選択された列と、名前引数によって設計された集計列を含むテーブル。

解説

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

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

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

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

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

次の例では、暦年を中心にグループ化されたリセラーの売上の概要と製品カテゴリ名を返します。この結果テーブルでは、年および製品カテゴリ別のリセラーの売上を分析できます。

SUMMARIZE(ResellerSales_USD
      , DateTime[CalendarYear]
      , ProductCategory[ProductCategoryName]
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
      )

次の表は、テーブルを受け取ることを想定している関数が受け取るデータのプレビューを示しています。

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
2008 Bikes 12968255.42 36167.6592
2005 Bikes 6958251.043 4231.1621
2006 Bikes 18901351.08 178175.8399
2007 Bikes 24256817.5 276065.992
2008 コンポーネント 2008052.706 39.9266
2005 コンポーネント 574256.9865 0
2006 コンポーネント 3428213.05 948.7674
2007 コンポーネント 5195315.216 4226.0444
2008 Clothing 366507.844 4151.1235
2005 Clothing 31851.1628 90.9593
2006 Clothing 455730.9729 4233.039
2007 Clothing 815853.2868 12489.3835
2008 Accessories 153299.924 865.5945
2005 Accessories 18594.4782 4.293
2006 Accessories 86612.7463 1061.4872
2007 Accessories 275794.8403 4756.6546

ROLLUP

ROLLUP 構文を追加すると、groupBy_columnName列の結果にロールアップ行を追加することで、SUMMARIZE 関数の動作が変更されます。 ROLLUP は、SUMMARIZE 式内でのみ使用できます。

次の例では、SUMMARIZE 関数呼び出しの Group-By 列にロールアップ行を追加します。

SUMMARIZE(ResellerSales_USD
      , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)

次のテーブルが返されます。

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
2008 Bikes 12968255.42 36167.6592
2005 Bikes 6958251.043 4231.1621
2006 Bikes 18901351.08 178175.8399
2007 Bikes 24256817.5 276065.992
2008 コンポーネント 2008052.706 39.9266
2005 コンポーネント 574256.9865 0
2006 コンポーネント 3428213.05 948.7674
2007 コンポーネント 5195315.216 4226.0444
2008 Clothing 366507.844 4151.1235
2005 Clothing 31851.1628 90.9593
2006 Clothing 455730.9729 4233.039
2007 Clothing 815853.2868 12489.3835
2008 Accessories 153299.924 865.5945
2005 Accessories 18594.4782 4.293
2006 Accessories 86612.7463 1061.4872
2007 Accessories 275794.8403 4756.6546
2008 15496115.89 41224.3038
2005 7582953.67 4326.4144
2006 22871907.85 184419.1335
2007 30543780.84 297538.0745
76494758.25 527507.9262

ROLLUPGROUP

ROLLUP 構文内に ROLLUPGROUP を追加すると、ロールアップ行の小計の一部を防ぐことができます。 ROLLUPGROUP は、ROLLUPROLLUPADDISSUBTOTAL、または ROLLUPISSUBTOTAL 式内でのみ使用できます。

次の例では、すべてのカテゴリを含む各年の小計のないすべての年とカテゴリの総計のみを示しています。

SUMMARIZE(ResellerSales_USD
      , ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)

次のテーブルが返されます。

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
2008 Bikes 12968255.42 36167.6592
2005 Bikes 6958251.043 4231.1621
2006 Bikes 18901351.08 178175.8399
2007 Bikes 24256817.5 276065.992
2008 コンポーネント 2008052.706 39.9266
2005 コンポーネント 574256.9865 0
2006 コンポーネント 3428213.05 948.7674
2007 コンポーネント 5195315.216 4226.0444
2008 Clothing 366507.844 4151.1235
2005 Clothing 31851.1628 90.9593
2006 Clothing 455730.9729 4233.039
2007 Clothing 815853.2868 12489.3835
2008 Accessories 153299.924 865.5945
2005 Accessories 18594.4782 4.293
2006 Accessories 86612.7463 1061.4872
2007 Accessories 275794.8403 4756.6546
76494758.25 527507.9262

ISSUBTOTAL

ISSUBTOTALを使用すると、ISSUBTOTALの引数として指定された列の小計値が行に含まれている場合は True を返し、それ以外の場合は False を返す、SUMMARIZE 式に別の列を作成できます。 ISSUBTOTAL は、SUMMARIZE 式内でのみ使用できます。

次の例では、指定された SUMMARIZE 関数呼び出しの ROLLUP 列ごとに ISSUBTOTAL 列が生成されます。

SUMMARIZE(ResellerSales_USD
      , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
      , "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear])
      , "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName])
)

次のテーブルが返されます。

[Is Sub Total for DateTimeCalendarYear] [Is Sub Total for ProductCategoryName] DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
FALSE FALSE
FALSE FALSE 2008 Bikes 12968255.42 36167.6592
FALSE FALSE 2005 Bikes 6958251.043 4231.1621
FALSE FALSE 2006 Bikes 18901351.08 178175.8399
FALSE FALSE 2007 Bikes 24256817.5 276065.992
FALSE FALSE 2008 コンポーネント 2008052.706 39.9266
FALSE FALSE 2005 コンポーネント 574256.9865 0
FALSE FALSE 2006 コンポーネント 3428213.05 948.7674
FALSE FALSE 2007 コンポーネント 5195315.216 4226.0444
FALSE FALSE 2008 Clothing 366507.844 4151.1235
FALSE FALSE 2005 Clothing 31851.1628 90.9593
FALSE FALSE 2006 Clothing 455730.9729 4233.039
FALSE FALSE 2007 Clothing 815853.2868 12489.3835
FALSE FALSE 2008 Accessories 153299.924 865.5945
FALSE FALSE 2005 Accessories 18594.4782 4.293
FALSE FALSE 2006 Accessories 86612.7463 1061.4872
FALSE FALSE 2007 Accessories 275794.8403 4756.6546
FALSE TRUE
FALSE TRUE 2008 15496115.89 41224.3038
FALSE TRUE 2005 7582953.67 4326.4144
FALSE TRUE 2006 22871907.85 184419.1335
FALSE TRUE 2007 30543780.84 297538.0745
TRUE TRUE 76494758.25 527507.9262

SUMMARIZECOLUMNS