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

MERINGKAS