SUMMARIZE 関数 (DAX)
グループのセットに対して要求された合計の概要テーブルを返します。
構文
SUMMARIZE(<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
パラメーター
table
データのテーブルを返す任意の DAX 式。groupBy_columnName
(省略可能) 見つかった値に基づいて概要グループを作成するために使用される既存の列の修飾名。 このパラメーターに式を指定することはできません。name
合計列または集計列の名前。二重引用符で囲みます。expression
単一のスカラー値を返す任意の DAX 式。式は、行/コンテキストごとに複数回評価されます。
戻り値
引数 groupBy_columnName で選択した列と引数 name でデザインした集計列から構成されるテーブル。
説明
名前を定義するそれぞれの列には対応する式が必要です。そうでないと、エラーが返されます。 最初の引数 name は、結果の列の名前を定義します。 2 番目の引数 expression は、その列の各行の値を取得するために実行される計算を定義します。
groupBy_columnName は、table 内または table の関連テーブル内に存在する必要があります。
それぞれの name は、二重引用符 (") で囲みます。
この関数は、1 つまたは複数の groupBy_columnName 列の値に基づいて、選択された行のセットを概要行のセットにグループ化します。 グループごとに 1 つの行が返されます。
使用例
次の例は、カレンダー年度および製品カテゴリ名でグループ化された再販業者の販売の概要を返します。この結果テーブルに基づいて、年度および製品カテゴリ別の再販業者の販売を分析できます。
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 |
SUMMARIZE の詳細設定オプション
SUMMARIZE と ROLLUP の組み合わせ
ROLLUP() 構文を追加すると、groupBy_columnName 列の結果にロール アップ行が追加され、SUMMARIZE 関数の動作が変更されます。
SUMMARIZE(<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, ROLLUP(<groupBy_columnName>[,< groupBy_columnName>…])][, <name>, <expression>]…)
ROLLUP パラメーター
- groupBy_columnName
見つかった値に基づいて概要グループを作成するために使用される既存の列の修飾名。 このパラメーターに式を指定することはできません。
メモ: 他の SUMMARIZE パラメーターについては既に説明されているため、ここでは反復を避けるために説明を省略します。
解説
- ROLLUP 式に含まれている列は、groupBy_columnName 列の一部として参照できません。
例
次の例では、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
ROLLUPGROUP() を使用して、小計のグループを計算できます。 ROLLUP の代わりに ROLLUPGROUP を使用した場合、groupBy_columnName 列の結果にロール アップ行が追加され、同じ結果が得られます。 ただし、ROLLUP 構文の内部で ROLLUPGROUP() を使用することで、ロール アップ行の小計が分割されることを防止できます。
次の例では、すべての年度の全カテゴリの総計のみが表示され、各年度の全カテゴリの小計は表示されません。
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 |
SUMMARIZE と ISSUBTOTAL の組み合わせ
ユーザーは、Summarize 関数内で、ISSUBTOTAL の引数として指定された列の小計値が行に含まれる場合に True を返し、それ以外の場合は False を返す別の列を作成できます。
SUMMARIZE(<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, ROLLUP(<groupBy_columnName>[,< groupBy_columnName>…])][, <name>, {<expression>|ISSUBTOTAL(<columnName>)}]…)
ISSUBTOTAL パラメーター
- columnName
SUMMARIZE 関数の table 内または table の関連テーブル内の任意の列の名前。
戻り値
引数として指定された列の小計値が行に含まれる場合は True、それ以外の場合は False。
解説
ISSUBTOTAL は、SUMMARIZE 関数の式部分でのみ使用できます。
ISSUBTOTAL の前に、該当する name 列を指定する必要があります。
例
次の例では、特定の 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 |