GENERATEALL

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

table1 の各行の間のデカルト積を含むテーブルと、table1 の現在の行のコンテキストで table2 を評価した結果であるテーブルを返します。

構文

GENERATEALL(<table1>, <table2>)  

パラメーター

用語 定義
table1 テーブルを返す任意の DAX 式。
table2 テーブルを返す任意の DAX 式。

戻り値

table1 の各行の間のデカルト積を含むテーブルと、table1 の現在の行のコンテキストで table2 を評価した結果であるテーブル

解説

  • table1 の現在の行に対する table2 の評価が空のテーブルを返す場合、table1 の現在の行が結果に含まれ、table2 に対応する列のその行には null 値が含まれます。 これは、table1 の現在の行が結果に含まれない GENERATE() とは異なります。

  • table1table2 のすべての列名は異なる必要があります。そうではない場合、エラーが返されます。

  • この関数は、計算列または行レベルのセキュリティ (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])  
)  
)  
  1. 最初の SUMMARIZE により、次に示すように担当地域グループのテーブルが生成されます。ここでは、各行が担当地域グループです。

    SalesTerritory[SalesTerritoryGroup]
    北米
    ヨーロッパ
    太平洋
    NA
  2. 2 番目の SUMMARIZE により、次に示すように製品カテゴリ グループのテーブルが生成されます。これには、各グループの再販業者の売上高が含まれます。

    ProductCategory[ProductCategoryName] [Reseller Sales]
    バイク $ 63,084,675.04
    コンポーネント $ 11,205,837.96
    Clothing $ 1,669,943.27
    Accessories $ 534,301.99
  3. ただし、上記のテーブルを取得して、そのテーブルを担当地域グループのテーブルの各行のコンテキストで評価すると、担当地域ごとに異なる結果が得られます。