共用方式為


GENERATE

適用於:匯出數據行計算數據表量值視覺計算

傳回數據表,其中具有 table1 中每個數據列之間的笛卡兒乘積,以及從 table1評估目前數據 列內容中 table2 所產生的數據表。

語法

GENERATE(<table1>, <table2>)

參數

術語 定義
table1 傳回數據表的任何 DAX 表達式。
table2 傳回數據表的任何 DAX 表達式。

傳回值

數據表,在 table1 數據表 1 中的每個數據列之間具有笛卡兒乘積,以及從 table1 table 1 中評估目前數據列內容中 table2 所產生的數據表

言論

  • 如果 table1 中目前數據列的 table2 評估會傳回空白數據表,則結果數據表將不會包含來自 table 1 的目前數據列。 這與 GENERATEALL() 不同,其中來自 table1 table1 的目前數據列會包含在結果中,而對應至 table2 的數據行 會有該數據列的 Null 值。

  • 來自 table1table 2 的所有數據行名稱都必須不同,否則會傳回錯誤。

  • 在匯出數據行或數據列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

在下列範例中,使用者想要轉銷商頻道依 [區域] 和 [產品類別] 銷售的摘要數據表,如下表所示:

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [轉銷商銷售]
歐洲 輔料 142,227.27 美元
歐洲 自行車 9,970,200.44 美元
歐洲 服裝 365,847.63 美元
歐洲 元件 2,214,440.19 美元
北美洲 輔料 379,305.15 美元
北美洲 自行車 52,403,796.85 美元
北美洲 服裝 1,281,193.26 美元
北美洲 元件 8,882,848.05 美元
太平洋 輔料 12,769.57 美元
太平洋 自行車 710,677.75 美元
太平洋 服裝 22,902.38 美元
太平洋 元件 108,549.71 美元

下列公式會產生上述資料表:

GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory 
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
  1. 第一個 SUMMARIZE 語句 SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])會產生一個領域群組數據表,其中每個數據列都是領域群組,如下所示:

    SalesTerritory[SalesTerritoryGroup]
    北美洲
    歐洲
    太平洋
  2. 第二個 SUMMARIZE 語句 SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))會產生產品類別群組的數據表,其中包含每個群組的轉銷商銷售,如下所示:

    ProductCategory[ProductCategoryName] [轉銷商銷售]
    自行車 63,084,675.04 美元
    元件 11,205,837.96 美元
    服裝 1,669,943.27 美元
    輔料 534,301.99 美元
  3. 不過,當您採用上述數據表,並在來自領域群組數據表的每個數據列內容下進行評估時,您會針對每個領域取得不同的結果。