SUMMARIZECOLUMNS
Berlaku untuk:Hitung kolomTerhitung Tabelterhitung Mengukurperhitungan Visual
Mengembalikan tabel ringkasan di atas sekumpulan grup.
Sintaks
SUMMARIZECOLUMNS( <groupBy_columnName> [, < groupBy_columnName >]…, [<filterTable>]…[, <name>, <expression>]…)
Parameter
Term | Definisi |
---|---|
groupBy_columnName | Referensi kolom yang sepenuhnya memenuhi syarat (Tabel[Kolom]) ke tabel dasar yang nilainya berbeda disertakan dalam tabel yang dikembalikan. Setiap kolom groupBy_columnName digabungkan silang (tabel yang berbeda) atau ada secara otomatis (tabel yang sama) dengan kolom yang ditentukan berikutnya. |
filterTable | Ekspresi tabel yang ditambahkan ke konteks filter semua kolom yang ditentukan sebagai argumen groupBy_columnName. Nilai yang ada dalam tabel filter digunakan untuk memfilter sebelum gabungan silang/ada otomatis dilakukan. |
nama | String yang mewakili nama kolom yang akan digunakan untuk ekspresi berikutnya yang ditentukan. |
expression | Ekspresi DAX apa pun yang mengembalikan satu nilai (bukan tabel). |
Nilai hasil
Tabel yang menyertakan kombinasi nilai dari kolom yang disediakan berdasarkan pengelompokan yang ditentukan. Hanya baris yang setidaknya salah satu ekspresi yang disediakan yang mengembalikan nilai tidak kosong yang disertakan dalam tabel yang dikembalikan. Jika semua ekspresi mengevaluasi ke BLANK/NULL untuk baris, baris tersebut tidak disertakan dalam tabel yang dikembalikan.
Keterangan
Fungsi ini tidak menjamin urutan pengurutan apa pun untuk hasilnya.
Kolom tidak dapat ditentukan lebih dari sekali dalam parameter groupBy_columnName. Misalnya, rumus berikut tidak valid.
SUMMARIZECOLUMNS( Sales[StoreId], Sales[StoreId] )
Fungsi ini tidak didukung untuk digunakan dalam mode DirectQuery saat digunakan dalam kolom terhitung atau aturan keamanan tingkat baris (RLS).
Konteks filter
Pertimbangkan kueri berikut:
SUMMARIZECOLUMNS (
'Sales Territory'[Category],
FILTER('Customer', 'Customer' [First Name] = "Alicia")
)
Dalam kueri ini, tanpa mengukur kolom groupBy tidak berisi kolom apa pun dari ekspresi FILTER (misalnya, dari tabel Pelanggan). Filter tidak diterapkan ke kolom groupBy. Tabel Wilayah Penjualan dan Pelanggan mungkin secara tidak langsung terkait melalui tabel fakta penjualan Penjual. Karena tidak terkait langsung, ekspresi filter adalah no-op dan kolom groupBy tidak terpengaruh.
Namun, dengan kueri ini:
SUMMARIZECOLUMNS (
'Sales Territory'[Category], 'Customer' [Education],
FILTER('Customer', 'Customer'[First Name] = "Alicia")
)
Kolom groupBy berisi kolom yang terpengaruh oleh filter dan filter tersebut diterapkan ke hasil groupBy.
Dengan IGNORE
Sintaks IGNORE dapat digunakan untuk mengubah perilaku fungsi SUMMARIZECOLUMNS dengan menghilangkan ekspresi tertentu dari evaluasi BLANK/NULL. Baris yang semua ekspresinya tidak menggunakan IGNORE return BLANK/NULL akan dikecualikan terlepas dari apakah ekspresi yang menggunakan IGNORE dievaluasi ke BLANK/NULL atau tidak. IGNORE hanya dapat digunakan dalam ekspresi SUMMARIZECOLUMNS.
Contoh
SUMMARIZECOLUMNS(
Sales[CustomerId], "Total Qty",
IGNORE( SUM( Sales[Qty] ) ),
"BlankIfTotalQtyIsNot3", IF( SUM( Sales[Qty] )=3, 3 )
)
Ini menggulung kolom Sales[CustomerId], membuat subtotal untuk semua pelanggan dalam pengelompokan yang diberikan. Tanpa IGNORE, hasilnya adalah:
ID Pelanggan | Total Qty | BlankIfTotalQtyIsNot3 |
---|---|---|
A | 5 | |
B | 3 | 3 |
C | 3 | 3 |
Dengan IGNORE,
ID Pelanggan | Total Qty | BlankIfTotalQtyIsNot3 |
---|---|---|
B | 3 | 3 |
C | 3 | 3 |
Semua ekspresi diabaikan,
SUMMARIZECOLUMNS(
Sales[CustomerId], "Blank",
IGNORE( BLANK() ), "BlankIfTotalQtyIsNot5",
IGNORE( IF( SUM( Sales[Qty] )=5, 5 ) )
)
Meskipun kedua ekspresi mengembalikan kosong untuk beberapa baris, ekspresi tersebut disertakan karena tidak ada ekspresi yang tidak diabaikan yang mengembalikan kosong.
ID Pelanggan | Kosong | BlankIfTotalQtyIsNot5 |
---|---|---|
A | 5 | |
B | ||
C |
Dengan NONVISUAL
Fungsi NONVISUAL menandai filter nilai dalam fungsi SUMMARIZECOLUMNS sebagai tidak memengaruhi nilai pengukuran, tetapi hanya berlaku untuk kolom groupBy. NONVISUAL hanya dapat digunakan dalam ekspresi SUMMARIZECOLUMNS.
Contoh
DEFINE
MEASURE FactInternetSales[Sales] = SUM(FactInternetSales[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
DimDate[CalendarYear],
NONVISUAL(TREATAS({2007, 2008}, DimDate[CalendarYear])),
"Sales", [Sales],
"Visual Total Sales", CALCULATE([Sales], ALLSELECTED(DimDate[CalendarYear]))
)
ORDER BY [CalendarYear]
Mengembalikan hasil di mana [Visual Total Sales] adalah total sepanjang tahun:
DimDate[CalendarYear] | [Penjualan] | [Visual Total Sales] |
---|---|---|
2007 | 9,791,060.30 | 29,358,677.22 |
2008 | 9,770,899.74 | 29,358,677.22 |
Sebaliknya, kueri yang sama tanpa fungsi NONVISUAL:
DEFINE
MEASURE FactInternetSales[Sales] = SUM(FactInternetSales[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
DimDate[CalendarYear],
TREATAS({2007, 2008}, DimDate[CalendarYear]),
"Sales", [Sales],
"Visual Total Sales", CALCULATE([Sales], ALLSELECTED(DimDate[CalendarYear]))
)
ORDER BY [CalendarYear]
Mengembalikan hasil di mana [Visual Total Sales] adalah total selama dua tahun yang dipilih:
DimDate[CalendarYear] | [Penjualan] | [Visual Total Sales] |
---|---|---|
2007 | 9,791,060.30 | 19,561,960.04 |
2008 | 9,770,899.74 | 19,561,960.04 |
Dengan ROLLUPADDISSUBTOTAL
Penambahan sintaks ROLLUPADDISSUBTOTAL memodifikasi perilaku fungsi SUMMARIZECOLUMNS dengan menambahkan baris rollup/subtotal ke hasil berdasarkan kolom groupBy_columnName. ROLLUPADDISSUBTOTAL hanya dapat digunakan dalam ekspresi SUMMARIZECOLUMNS.
Contoh dengan subtotal tunggal
DEFINE
VAR vCategoryFilter =
TREATAS({"Accessories", "Clothing"}, Product[Category])
VAR vSubcategoryFilter =
TREATAS({"Bike Racks", "Mountain Bikes"}, Product[Subcategory])
EVALUATE
SUMMARIZECOLUMNS
(
ROLLUPADDISSUBTOTAL
(
Product[Category], "IsCategorySubtotal", vCategoryFilter,
Product[Subcategory], "IsSubcategorySubtotal", vSubcategoryFilter
),
"Total Qty", SUM(Sales[Qty])
)
ORDER BY
[IsCategorySubtotal] DESC, [Category],
[IsSubcategorySubtotal] DESC, [Subcategory]
Mengembalikan tabel berikut,
Kategori | Subkategori | IsCategorySubtotal | IsSubcategorySubtotal | Total Qty |
---|---|---|---|---|
Benar | Benar | 60398 | ||
Aksesori | Salah | Benar | 36092 | |
Aksesori | Rak Sepeda | Salah | Salah | 328 |
Sepeda | Sepeda Gunung | Salah | Salah | 4970 |
Pakaian | Salah | Benar | 9101 |
Contoh dengan beberapa subtotal
SUMMARIZECOLUMNS (
Regions[State], ROLLUPADDISSUBTOTAL ( Sales[CustomerId], "IsCustomerSubtotal" ),
ROLLUPADDISSUBTOTAL ( Sales[Date], "IsDateSubtotal"), "Total Qty", SUM( Sales[Qty] )
)
Penjualan dikelompokkan menurut status, menurut pelanggan, berdasarkan tanggal, dengan subtotal untuk 1. Penjualan menurut negara bagian, berdasarkan tanggal 2. Penjualan menurut Negara Bagian, oleh Pelanggan 3. Diluncurkan pada pelanggan dan tanggal yang mengarah ke penjualan menurut status.
Mengembalikan tabel berikut,
CustomerID | IsCustomerSubtotal | Status | Total Qty | Tanggal | IsDateSubtotal |
---|---|---|---|---|---|
A | SALAH | WA | 5 | 7/10/2014 | |
B | SALAH | WA | 1 | 7/10/2014 | |
B | SALAH | WA | 2 | 7/11/2014 | |
C | SALAH | ATAU | 2 | 7/10/2014 | |
C | SALAH | ATAU | 1 | 7/11/2014 | |
BENAR | WA | 6 | 7/10/2014 | ||
BENAR | WA | 2 | 7/11/2014 | ||
BENAR | ATAU | 2 | 7/10/2014 | ||
BENAR | ATAU | 1 | 7/11/2014 | ||
A | SALAH | WA | 5 | BENAR | |
B | SALAH | WA | 3 | BENAR | |
C | SALAH | ATAU | 3 | BENAR | |
BENAR | WA | 8 | BENAR | ||
BENAR | ATAU | 3 | BENAR |
Dengan ROLLUPGROUP
Seperti fungsi SUMMARIZE, ROLLUPGROUP dapat digunakan bersama dengan ROLLUPADDISSUBTOTAL untuk menentukan grup/granularitas ringkasan (subtotal) mana yang akan disertakan, mengurangi jumlah baris subtotal yang dikembalikan. ROLLUPGROUP hanya dapat digunakan dalam ekspresi SUMMARIZECOLUMNS atau SUMMARIZE .
Contoh dengan beberapa subtotal
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL( Sales[CustomerId], "IsCustomerSubtotal" ),
ROLLUPADDISSUBTOTAL(ROLLUPGROUP(Regions[City], Regions[State]), "IsCityStateSubtotal"),"Total Qty", SUM( Sales[Qty] )
)
Masih dikelompokkan menurut Kota dan Negara Bagian, tetapi digulung bersama-sama saat melaporkan subtotal mengembalikan tabel berikut,
Status | ID Pelanggan | IsCustomerSubtotal | Total Qty | Kota | IsCityStateSubtotal |
---|---|---|---|---|---|
WA | A | SALAH | 2 | Bellevue | SALAH |
WA | B | SALAH | 2 | Bellevue | SALAH |
WA | A | SALAH | 3 | Jakarta | SALAH |
WA | B | SALAH | 1 | Jakarta | SALAH |
ATAU | C | SALAH | 3 | Portland | SALAH |
WA | BENAR | 4 | Bellevue | SALAH | |
WA | BENAR | 4 | Jakarta | SALAH | |
ATAU | BENAR | 3 | Portland | SALAH | |
A | SALAH | 5 | SALAH | ||
B | SALAH | 3 | BENAR | ||
C | SALAH | 3 | BENAR | ||
BENAR | 11 | BENAR |
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk