Bagikan melalui


GENERATEALL

Berlaku untuk: kolom terhitungTabel terhitungUkurPerhitungan visual

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

Sintaksis

GENERATEALL(<table1>, <table2>)

Parameter

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

Mengembalikan nilai

Tabel dengan produk Kartesius di antara setiap baris dalam tabel 1 dan tabel yang dihasilkan dari mengevaluasi tabel2 dalam konteks baris saat ini dari tabel 1

Komentar

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

  • 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 Aksesoris $ 142.227,27
Eropa Sepeda $ 9.970.200,44
Eropa Pakaian $ 365.847,63
Eropa Komponen $ 2.214.440,19
NA Aksesoris
NA Sepeda
NA Pakaian
NA Komponen
Amerika Utara Aksesoris $ 379.305,15
Amerika Utara Sepeda $ 52.403.796,85
Amerika Utara Pakaian $ 1.281.193,26
Amerika Utara Komponen $ 8.882.848,05
Pacific Aksesoris $ 12.769,57
Pacific Sepeda $ 710.677,75
Pacific Pakaian $ 22.902,38
Pacific Komponen $ 108.549,71

Rumus berikut menghasilkan tabel di atas:

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

    SalesTerritory[SalesTerritoryGroup]
    Amerika Utara
    Eropa
    Pacific
    NA
  2. SUMMARIZE kedua 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
    Aksesoris $ 534.301,99
  3. Namun, saat Anda mengambil tabel di atas dan mengevaluasi tabel di bawah konteks setiap baris dari tabel grup wilayah, Anda mendapatkan hasil yang berbeda untuk setiap wilayah.