Bagikan melalui


HASILKAN

Berlaku untuk: Kolom terhitung Tabel terhitung Ukur perhitungan Visual

Mengembalikan tabel dengan produk Kartesius antara setiap baris dalam tabel1 dan tabel yang dihasilkan dari mengevaluasi tabel2 dalam konteks baris saat ini dari table1.

Sintaks

GENERATE(<table1>, <table2>)  

Parameter

Term Definisi
table1 Ekspresi DAX apa pun yang mengembalikan tabel.
table2 Ekspresi DAX apa pun yang mengembalikan tabel.

Nilai hasil

Tabel dengan produk Kartesius antara setiap baris dalam table1 dan tabel yang dihasilkan dari mengevaluasi table2 dalam konteks baris saat ini dari table1

Keterangan

  • Jika evaluasi tabel2 untuk baris saat ini dalam table1 mengembalikan tabel kosong, maka tabel hasil tidak akan berisi baris saat ini dari table1. Ini berbeda dari GENERATEALL() di mana baris saat ini dari table1 akan disertakan dalam hasil dan kolom yang sesuai dengan table2 akan memiliki nilai null untuk baris tersebut.

  • Semua nama kolom dari table1 dan table2 harus berbeda atau kesalahan dikembalikan.

  • Fungsi ini tidak didukung untuk digunakan dalam mode DirectQuery saat digunakan dalam kolom terhitung atau aturan keamanan tingkat baris (RLS).

Contoh

Dalam contoh berikut, pengguna menginginkan tabel ringkasan penjualan menurut Wilayah dan Kategori Produk untuk saluran Penjual, seperti tabel berikut:

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [Penjualan Penjual]
Eropa Aksesori $ 142.227,27
Eropa Sepeda $ 9.970.200,44
Eropa Pakaian $ 365.847,63
Eropa Komponen $ 2.214.440,19
Amerika Utara Aksesori $ 379.305,15
Amerika Utara Sepeda $ 52.403.796,85
Amerika Utara Pakaian $ 1.281.193,26
Amerika Utara Komponen $ 8.882.848,05
Pasifik Aksesori $ 12.769,57
Pasifik Sepeda $ 710.677,75
Pasifik Pakaian $ 22.902,38
Pasifik Komponen $ 108.549,71

Rumus berikut menghasilkan tabel di atas:

GENERATE(  
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])  
,SUMMARIZE(ProductCategory   
, [ProductCategoryName]  
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  
)  
)  
  1. Pernyataan SUMMARIZE pertama, SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup]), menghasilkan tabel grup wilayah, di mana setiap baris adalah grup wilayah, seperti yang ditunjukkan di bawah ini:

    SalesTerritory[SalesTerritoryGroup]
    Amerika Utara
    Eropa
    Pasifik
    NA
  2. Pernyataan SUMMARIZE kedua, SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])), menghasilkan tabel grup Kategori Produk dengan penjualan Penjual untuk setiap grup, seperti yang ditunjukkan di bawah ini:

    ProductCategory[ProductCategoryName] [Penjualan Penjual]
    Sepeda $ 63.084.675,04
    Komponen $ 11.205.837,96
    Pakaian $ 1.669.943,27
    Aksesori $ 534.301,99
  3. Namun, ketika Anda mengambil tabel di atas dan mengevaluasinya di bawah konteks setiap baris dari tabel grup wilayah, Anda mendapatkan hasil yang berbeda untuk setiap wilayah.