SUMMARIZECOLUMNS
Şunun için geçerlidir: Hesaplanan sütun
Hesaplanan tablo
Ölçü
Görseli hesaplaması
Bir grup kümesi üzerinde bir özet tablosu döndürür.
Sözdizimi
SUMMARIZECOLUMNS( <groupBy_columnName> [, < groupBy_columnName >]…, [<filterTable>]…[, <name>, <expression>]…)
Parametreler
Süre | Tanım |
---|---|
groupBy_columnName | Döndürülen tabloya ayrı değerlerin eklendiği bir temel tabloya tam sütun başvurusu (Tablo[Sütun]). Her groupBy_columnName sütunu çapraz birleştirilir (farklı tablolar) veya sonraki belirtilen sütunlarla otomatik olarak var olur (aynı tablo). |
filterTable | groupBy_columnName bağımsız değişkenleri olarak belirtilen tüm sütunların filtre bağlamlarına eklenen tablo ifadesi. Filtre tablosunda bulunan değerler, çapraz birleştirme/otomatik varolma işlemi gerçekleştirilmeden önce filtrelemek için kullanılır. |
Adı | Belirtilen sonraki ifade için kullanılacak sütun adını temsil eden bir dize. |
ifade | Tek bir değer (tablo değil) döndüren herhangi bir DAX ifadesi. |
Dönüş değeri
Belirtilen gruplandırma temelinde sağlanan sütunlardan değerlerin birleşimlerini içeren tablo. Yalnızca sağlanan ifadelerden en az birinin boş olmayan bir değer döndüreceği satırlar döndürülen tabloya eklenir. Tüm ifadeler bir satır için BLANK/NULL olarak değerlendirilirse, bu satır döndürülen tabloya dahil değildir.
Açıklamalar
Bu işlev, sonuçlar için herhangi bir sıralama düzenini garanti etmez.
groupBy_columnName parametresinde bir sütun birden çok kez belirtilemez. Örneğin, aşağıdaki formül geçersiz.
SUMMARIZECOLUMNS( Sales[StoreId], Sales[StoreId] )
Bu işlev, hesaplanan sütunlarda veya satır düzeyi güvenlik (RLS) kurallarında kullanıldığında DirectQuery modunda kullanılmak üzere desteklenmez.
Filtre bağlamı
Aşağıdaki sorguyu göz önünde bulundurun:
SUMMARIZECOLUMNS (
'Sales Territory'[Category],
FILTER('Customer', 'Customer' [First Name] = "Alicia")
)
Bu sorguda, ölçü olmadan groupBy sütunları FİlTRE ifadesinden herhangi bir sütun içermez (örneğin, Customer tablosundan). Filtre groupBy sütunlarına uygulanmaz. Satış Bölgesi ve Müşteri tabloları, Bayi satış olgu tablosu aracılığıyla dolaylı olarak ilişkili olabilir. Bunlar doğrudan ilişkili olmadığından, filtre ifadesi bir hayır işlemidir ve groupBy sütunları etkilenmez.
Ancak, bu sorguyla:
SUMMARIZECOLUMNS (
'Sales Territory'[Category], 'Customer' [Education],
FILTER('Customer', 'Customer'[First Name] = "Alicia")
)
groupBy sütunları filtreden etkilenen bir sütun içerir ve bu filtre groupBy sonuçlarına uygulanır.
IGNORE ile
IGNORE söz dizimi, BLANK/NULL değerlendirmesinden belirli ifadeler çıkarılarak SUMMARIZECOLUMNS işlevinin davranışını değiştirmek için kullanılabilir. IGNORE kullanmayan tüm ifadelerin BLANK/NULL döndüreceği satırlar, IGNORE kullanan ifadelerin BLANK/NULL sonucunu verip vermediğinden bağımsız olarak dışlanır. IGNORE yalnızca SUMMARIZECOLUMNS ifadesinde kullanılabilir.
Örnek
SUMMARIZECOLUMNS(
Sales[CustomerId], "Total Qty",
IGNORE( SUM( Sales[Qty] ) ),
"BlankIfTotalQtyIsNot3", IF( SUM( Sales[Qty] )=3, 3 )
)
Bu işlem Sales[CustomerId] sütununu toplar ve verilen gruplandırmadaki tüm müşteriler için bir alt toplam oluşturur. IGNORE olmadan sonuç şu şekildedir:
CustomerId | Toplam Miktar | BlankIfTotalQtyIsNot3 |
---|---|---|
A | 5 | |
K | 3 | 3 |
C | 3 | 3 |
IGNORE ile
CustomerId | Toplam Miktar | BlankIfTotalQtyIsNot3 |
---|---|---|
K | 3 | 3 |
C | 3 | 3 |
Yoksayılan tüm ifadeler,
SUMMARIZECOLUMNS(
Sales[CustomerId], "Blank",
IGNORE( BLANK() ), "BlankIfTotalQtyIsNot5",
IGNORE( IF( SUM( Sales[Qty] )=5, 5 ) )
)
Her iki ifade de bazı satırlar için boş döndürse de, boş döndüren tanımlanamayan ifadeler olmadığından bu ifadeler eklenir.
CustomerId | Boş | BlankIfTotalQtyIsNot5 |
---|---|---|
A | 5 | |
K | ||
C |
NONVISUAL ile
NONVISUAL işlevi SUMMARIZECOLUMNS işlevindeki bir değer filtresini ölçü değerlerini etkilemez, yalnızca groupBy sütunlarına uygulanır olarak işaretler. NONVISUAL yalnızca SUMMARIZECOLUMNS ifadesinde kullanılabilir.
Örnek
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]
[Visual Total Sales] değerinin tüm yılların toplamı olduğu sonucu verir:
DimDate[CalendarYear] | [Sales] | [Visual Total Sales] |
---|---|---|
2007 | 9,791,060.30 | 29,358,677.22 |
2008 | 9,770,899.74 | 29,358,677.22 |
Buna karşılık, NONVISUAL işlevi olmayan aynı sorgu:
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]
[Visual Total Sales] öğesinin seçilen iki yıl içindeki toplam değeri olduğu sonucu verir:
DimDate[CalendarYear] | [Sales] | [Visual Total Sales] |
---|---|---|
2007 | 9,791,060.30 | 19,561,960.04 |
2008 | 9,770,899.74 | 19,561,960.04 |
ROLLUPADDISSUBTOTAL ile
ROLLUPADDISSUBTOTAL söz diziminin eklenmesi, groupBy_columnName sütunlarını temel alarak sonucta toplama/alt toplam satırları ekleyerek SUMMARIZECOLUMNS işlevinin davranışını değiştirir. ROLLUPADDISSUBTOTAL yalnızca SUMMARIZECOLUMNS ifadesinde kullanılabilir.
Tek alt toplamlı örnek
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]
Aşağıdaki tabloyu döndürür,
Kategori | Alt kategori | IsCategorySubtotal | IsSubcategorySubtotal | Toplam Miktar |
---|---|---|---|---|
True | True | 60398 | ||
Aksesuarlar | Yanlış | Doğru | 36092 | |
Aksesuarlar | Bisiklet Rafları | False | False | 328 |
Bisikletler | Dağ Bisikletleri | False | False | 4970 |
Giysi | Yanlış | Doğru | 9101 |
Birden çok alt toplam içeren örnek
SUMMARIZECOLUMNS (
Regions[State], ROLLUPADDISSUBTOTAL ( Sales[CustomerId], "IsCustomerSubtotal" ),
ROLLUPADDISSUBTOTAL ( Sales[Date], "IsDateSubtotal"), "Total Qty", SUM( Sales[Qty] )
)
Satışlar duruma göre, müşteriye göre, tarihe göre ve 1 için alt toplamlarla gruplandırılır. Eyalete göre satışlar, 2. tarihe göre. Eyalete Göre Satışlar, Müşteri 3. Hem müşteriye hem de tarihe göre eyalete göre satışa yol açan bir şekilde toplanmış.
Aşağıdaki tabloyu döndürür,
CustomerID | IsCustomerSubtotal | Durum | Toplam Miktar | Tarih | IsDateSubtotal |
---|---|---|---|---|---|
A | FALSE | WA | 5 | 10.07.2014 | |
K | FALSE | WA | 1 | 10.07.2014 | |
K | FALSE | WA | 2 | 7/11/2014 | |
C | FALSE | VEYA | 2 | 10.07.2014 | |
C | FALSE | VEYA | 1 | 7/11/2014 | |
TRUE | WA | 6 | 10.07.2014 | ||
TRUE | WA | 2 | 7/11/2014 | ||
TRUE | VEYA | 2 | 10.07.2014 | ||
TRUE | VEYA | 1 | 7/11/2014 | ||
A | FALSE | WA | 5 | TRUE | |
K | FALSE | WA | 3 | TRUE | |
C | FALSE | VEYA | 3 | TRUE | |
TRUE | WA | 8 | TRUE | ||
TRUE | VEYA | 3 | TRUE |
ROLLUPGROUP ile
SUMMARIZE işlevinde olduğu gibi ROLLUPGROUP da ROLLUPADDISSUBTOTAL ile birlikte kullanılarak hangi özet gruplarının/taneciklerin (alt toplamlar) dahil edilmesi gerektiğini belirterek döndürülen alt toplam satırlarının sayısı azaltılabilir. ROLLUPGROUP yalnızca SUMMARIZECOLUMNS veya SUMMARIZE ifadesinde kullanılabilir.
Birden çok alt toplam içeren örnek
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL( Sales[CustomerId], "IsCustomerSubtotal" ),
ROLLUPADDISSUBTOTAL(ROLLUPGROUP(Regions[City], Regions[State]), "IsCityStateSubtotal"),"Total Qty", SUM( Sales[Qty] )
)
Yine City ve State'e göre gruplandırılır, ancak bir alt toplam bildirilirken bir araya getirildiğinde aşağıdaki tablo döndürülüyor:
Durum | CustomerId | IsCustomerSubtotal | Toplam Miktar | City | IsCityStateSubtotal |
---|---|---|---|---|---|
WA | A | FALSE | 2 | Bellevue | FALSE |
WA | K | FALSE | 2 | Bellevue | FALSE |
WA | A | FALSE | 3 | Çankaya | FALSE |
WA | K | FALSE | 1 | Çankaya | FALSE |
VEYA | C | FALSE | 3 | Portland | FALSE |
WA | TRUE | 4 | Bellevue | FALSE | |
WA | TRUE | 4 | Çankaya | FALSE | |
VEYA | TRUE | 3 | Portland | FALSE | |
A | FALSE | 5 | FALSE | ||
K | FALSE | 3 | TRUE | ||
C | FALSE | 3 | TRUE | ||
TRUE | 11 | TRUE |
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin