GENERATEALL
table1 の各行の間のデカルト積を含むテーブルと、table1 の現在の行のコンテキストで table2 を評価した結果であるテーブルを返します。
構文
GENERATEALL(<table1>, <table2>)
パラメーター
用語 | 定義 |
---|---|
table1 | テーブルを返す任意の DAX 式。 |
table2 | テーブルを返す任意の DAX 式。 |
戻り値
table1 の各行の間のデカルト積を含むテーブルと、table1 の現在の行のコンテキストで table2 を評価した結果であるテーブル
解説
table1 の現在の行に対する table2 の評価が空のテーブルを返す場合、table1 の現在の行が結果に含まれ、table2 に対応する列のその行には null 値が含まれます。 これは、table1 の現在の行が結果に含まれない GENERATE() とは異なります。
table1 と table2 のすべての列名は異なる必要があります。そうではない場合、エラーが返されます。
この関数は、計算列または行レベルのセキュリティ (RLS) ルールで使用される場合、DirectQuery モードでの使用はサポートされません。
例
次の例では、ユーザーは次の表のような、再販業者チャネルの地域と製品カテゴリ別の売上高集計テーブルを必要としています。
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Reseller Sales] |
---|---|---|
ヨーロッパ | アクセサリ | $ 142,227.27 |
ヨーロッパ | バイク | $ 9,970,200.44 |
ヨーロッパ | 衣服 | $ 365,847.63 |
ヨーロッパ | Components | $ 2,214,440.19 |
NA | アクセサリ | |
NA | バイク | |
NA | 衣服 | |
NA | Components | |
北米 | アクセサリ | $ 379,305.15 |
北米 | バイク | $ 52,403,796.85 |
北米 | 衣服 | $ 1,281,193.26 |
北米 | Components | $ 8,882,848.05 |
太平洋 | アクセサリ | $ 12,769.57 |
太平洋 | バイク | $ 710,677.75 |
太平洋 | Clothing | $ 22,902.38 |
太平洋 | Components | $ 108,549.71 |
次の数式で上のテーブルが生成されます。
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
最初の SUMMARIZE により、次に示すように担当地域グループのテーブルが生成されます。ここでは、各行が担当地域グループです。
SalesTerritory[SalesTerritoryGroup] 北米 ヨーロッパ 太平洋 NA 2 番目の SUMMARIZE により、次に示すように製品カテゴリ グループのテーブルが生成されます。これには、各グループの再販業者の売上高が含まれます。
ProductCategory[ProductCategoryName] [Reseller Sales] バイク $ 63,084,675.04 コンポーネント $ 11,205,837.96 Clothing $ 1,669,943.27 Accessories $ 534,301.99 ただし、上記のテーブルを取得して、そのテーブルを担当地域グループのテーブルの各行のコンテキストで評価すると、担当地域ごとに異なる結果が得られます。