Kurs
Büyük veri kümeleriyle boğuşmayın. DAX SUMMARIZE() işlevini kullanarak verileri gruplama ve toplulaştırma sanatında ustalaşın; bu sayede gizli kalıpları ortaya çıkarabilir ve daha iyi kararlar alabilirsiniz. DAX SUMMARIZE() ile, daha büyük veri kümeniz içinde mini bir rapor oluşturabilir, hangi bilgileri gruplayacağınızı ve hangi sayıların toplanacağını seçebilirsiniz. Gerçekten, son derece kullanışlıdır.
Okumaya devam edin; ben de size DAX SUMMARIZE() işlevini ayrıntılı olarak anlatacağım; böylece çok sayıda senaryoda etkili bir şekilde kullanabilirsiniz. Eğer DAX'ta yeniyseniz ve daha fazla kaynağa ihtiyacınız varsa, daha genel bir bakış için Power BI DAX Başlangıç Eğitimi içeriğimize de göz atın. Ayrıca gerçek bir eğitim için Power BI'da DAX'a Giriş kursumuzu alabilirsiniz; kursta temel tekniklerin yanı sıra daha gelişmiş teknikler de yer alır, bu nedenle her seviyeden profesyoneller için uygundur.
DAX SUMMARIZE() İşlevi Nedir?
DAX SUMMARIZE() işlevi, verilerinizi seçtiğiniz sütunlara göre gruplar ve ardından her grup için toplamları veya diğer özetleri hesaplar.
Örneğin; ürünler, bölgeler ve satış tutarları hakkında bilgiler içeren büyük bir satış verisi listeniz olduğunu düşünün. Burada SUMMARIZE() kullanarak tüm bu verileri ürüne veya bölgeye göre gruplayabilir ve her grup için toplam satışları görebilirsiniz.
DAX ile şu Microsoft araçlarında karşılaşacaksınız:
- Power BI (iş analitiği için son derece popüler)
- Excel, özellikle Power Pivot
- SQL Server Analysis Services (SSAS)
Bir kez SUMMARIZE()'ı anladığınızda, daha iyi raporlar oluşturarak ve verilerinize daha derinlemesine inerek değerli içgörüler elde etmek için verilerinizi verimli bir şekilde düzenleyebilirsiniz. Bu nedenle, bir dahaki sefere büyük bir veri kümesiyle çalışıp hızlıca anlamlandırmanız gerektiğinde SUMMARIZE() işlevini kullanın.
DAX SUMMARIZE() ve Veri Gruplama
İşte SUMMARIZE() işlevinin, belirtilen sütunlara ve toplamaya dayalı olarak nasıl özet tablolar oluşturduğuna dair bir özet:
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
Yukarıdaki sözdiziminde:
-
table, verilerinizin kaynak tablosudur. -
groupBy_columnName, gruplamak istediğiniz sütun(lar)dır. -
name, yeni hesaplanan sütununuzun adıdır. -
expression, gerçekleştirmek istediğiniz hesaptır.
SUMMARIZE()'ı veri kümeniz içindeki herhangi bir tablo veya sütunla kullanabilirsiniz; bu da onu oldukça esnek kılar.
Temel gruplama
Şimdi SUMMARIZE() ile temel gruplamaya basit bir örnekle bakalım.
Önce veri setini Power BI'a aktarın. Bunu yapmak için Giriş sekmesi > Veri Al yolunu izleyin. Açılır menüden kaydettiğiniz dosyaya karşılık gelen seçeneği belirleyip yükleyin. Bu örnekte Year, Product ve SalesAmount sütunlarına sahip bir veri setim var. Bunu şimdi Power BI'a aktaracağım.

sales adlı bir tablo. Görsel: Yazar.
Veriler içe aktarıldıktan sonra Modelleme sekmesi > Yeni tablo yoluna gidin. Ardından, Year sütununa göre gruplamak ve Total Sales değerini toplamak için aşağıdaki formülü girin.
SummaryTable =
SUMMARIZE(
sales,
sales[Year],
"Total Sales", SUM(sales[SalesAmount])
)

Formül çubuğu. Görsel: Yazar.
Bu formülde:
-
SummarizedTableyeni bir tablo oluşturur. -
SUMMARIZE(verileri gruplamaya ve özetlemeye başlar. -
SalesData,kaynak tablodur. -
SalesData[Year],Year sütununa göre gruplar. -
"Total Sales", SUM(SalesData[SalesAmount])her yıl için SalesAmount toplamını veren Total Sales adlı yeni bir sütun oluşturur.

Özet sonuçlar. Görsel: Yazar.
Burada SUMMARIZE() işlevi, verileri Year sütununa göre gruplandırarak bir özet tablo oluşturur ve her yıl için SalesAmount değerlerini toplayarak Total Sales hesaplar.
Çoklu gruplama
SUMMARIZE() daha karmaşık gruplamaları da işleyebilir. Bunu bir örnekle anlayalım. Burada Year, Product, Region ve SalesAmount sütunlarına sahip bir veri setim var.

sales_data adlı bir tablo. Görsel: Yazar.
Burada Year ve Region sütunlarına göre gruplayarak her kombinasyon için Total Sales değerini hesaplıyorum.
SummarizedTable =
SUMMARIZE(
sales_data,
sales_data[Year],
sales_data[Region],
"Total Sales", SUM(sales_data[SalesAmount])
)
Bu formülde:
-
sales_data, verilerinizin depolandığı tablodur. -
sales_data[Year], Year bazında gruplamak için ilk sütundur. -
sales_data[Region], Bölge bazında gruplamak için ikinci sütundur. -
"Total Sales", satış toplamı için özel sütun adıdır. -
SUM(SalesData[SalesAmount])her grup için satışları toplar.

Birden çok sütunun özetlenmesi. Görsel: Yazar.
Burada çoklu gruplama, satış trendlerini hem Region hem de Year bazında görselleştirmemize yardımcı oldu. North ve East bölgeleri 2021'den 2023'e büyüme gösteriyor. South 2022'de yüksek satışlara sahipken, West yalnızca 2022-2023 için veriye sahip.
DAX SUMMARIZE() ile İleri Teknikler
SUMMARIZE() yararlı olsa da, daha da gelişmiş veri analizi yetenekleri için diğer DAX işlevleriyle birleştirebilirsiniz. Öyleyse, karmaşık toplulaştırmalar ve özetler için SUMMARIZE()'dan nasıl yararlanılabileceğini görmek üzere bazı örnekleri inceleyelim.
SUMMARIZE() ile ROLLUP() Kullanımı
SUMMARIZE() içindeki ROLLUP() özelliği, özet tablolarınıza ara toplam satırları ekleyerek farklı gruplama düzeylerinde ara toplamları gösterir ve daha ayrıntılı hiyerarşik özetler sunar. Finans alanında ya da ilgili analiz rollerinde çalışıyorsanız, çok düzeyli toplulaştırmalar yapmak için özellikle kullanışlıdır.
-
SUMMARIZE()içinde gruplama sütunlarınızdan sonraROLLUP()anahtar sözcüğünü ekleyin. -
ROLLUP()hesaplamasına hangi sütunların dahil edileceğini belirtin.
SUMMARIZE(<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, ROLLUP(<groupBy_columnName>[,< groupBy_columnName>…])][, <name>, <expression>]…)
Örneğin bu veri seti, belirli bir Region içindeki her bir Product için Sales ve Quantity değerlerini gösteriyor. Şimdi Region ve Product bazında, ara toplamlar ve genel toplamlarla birlikte satış özetini bulmam gerekiyor.

sales_rollup adlı bir tablo. Görsel: Yazar.
Bunu yapmak için aşağıdaki formülü kullanıyorum:
SalesWithRollup =
SUMMARIZE(
sales_rollup,
ROLLUP(sales_rollup[Region], sales_rollup[Product]),
"Total Sales", SUM(sales_rollup[Sales]),
"Total Quantity", SUM(sales_rollup[Quantity])
)

ROLLUP() işlevini kullanma. Görsel: Yazar.
Gördüğünüz gibi — burada SUMMARIZE() işlevi satış verilerini Region ve Product bazında gruplandırarak Total Sales ve Total Quantity hesaplar. ROLLUP(), farklı ayrıntı düzeylerinde satış performansına hiyerarşik bir özet sunmak için ara toplam ve genel toplam satırları ekler.
SUMMARIZE() ve ADDCOLUMNS() Birlikte Kullanımı
SUMMARIZE()'ı ADDCOLUMNS() ile genişleterek gruplanmış veriler içinde özel hesaplanmış sütunlar da ekleyebilirsiniz. Bu, özet tablonuza ölçüler veya karmaşık hesaplamalar eklemek istediğinizde faydalıdır.
Örneğin, aynı veri setini kullanıp bu kez yeni bir sütun eklemek için aşağıdaki formülü uyguluyorum:
SalesWithAddColumns =
ADDCOLUMNS(
SUMMARIZE(
sales_rollup,
sales_rollup[Region],
sales_rollup[Product],
"Total Sales", SUM(sales_rollup[Sales]),
"Total Quantity", SUM(sales_rollup[Quantity])
),
"Average Sales per Unit",
DIVIDE(SUM(sales_rollup[Sales]), SUM(sales_rollup[Quantity]), 0)
)

SUMMARIZE() ve ADDCOLUMNS() kombinasyonu. Görsel: Yazar.
Burada SUMMARIZE() işlevi satışları Region ve Product bazında gruplandırarak Total Sales ve Total Quantity hesaplar. Ardından ADDCOLUMNS(), her grup için toplam satışı toplam miktara bölerek Average Sales per Unit değerini hesaplar.
Yaygın DAX Sorunları ve Çözüm Yolları
SUMMARIZE() kullanırken birkaç sorunla karşılaşabilirsiniz. Ancak endişelenmeyin, hepimiz yaşadık — şimdi bazı yaygın zorlukları ve bunlarla nasıl başa çıkacağınızı anlatacağım.
Belirsiz sonuçlardan kaçınma
Bazen SUMMARIZE() mantıklı gelmeyen sonuçlar verebilir. Bu genellikle veri modeliniz veya ilişkileriniz net olmadığında olur. Bunu önlemek için şunları yapın:
-
Veri modelinizi iki kez kontrol edin: Tüm tablolarınızın doğru şekilde bağlandığından emin olun.
-
Açık sütun adları kullanın: Farklı tablolar arasında yinelenen adlardan kaçının.
-
Tablo adlarını belirtin: Sütunlara atıf yaparken karışıklığı önlemek için tablo adını da ekleyin (ör.
Orders[OrderDate]).
Performansla ilgili hususlar
SUMMARIZE() faydalı bir işlev olsa da, büyük veri kümelerini işlerken kaynak tüketimi yüksek olabilir ve işleri yavaşlatabilir. Bu, özellikle işlevi karmaşık ölçüler içinde veya çok sayıda gruplanmış sütunla kullanıyorsanız raporlarınızın yenilenmesinin biraz daha uzun sürebileceği anlamına gelir.
Sorgularınızı hızlı tutmak için bazı ipuçları:
-
Hesaplanan sütunları değerlendirin: Sık kullanılan özetler için her seferinde
SUMMARIZE()kullanmak yerine hesaplanan sütunlar oluşturun. -
Gereksiz sütunları kaldırın: Birincil anahtarlar veya diğerlerinden türetilebilen sütunlar gibi analizinize ilgisiz sütunları eleyin.
-
Filtreler kullanın: İşlenecek veri miktarını azaltmak için DAX
SUMMARIZE()'ı özetlemeden önceFilter()ile birlikte kullanın.
SUMMARIZE() için DAX Alternatifleri
SUMMARIZE() kullanışlı bir işlev olsa da, bazen diğer araçlar işi daha iyi yapabilir. Birkaç alternatife ve ne zaman kullanmak isteyebileceğinize bakalım.
SUMMARIZECOLUMNS()
SUMMARIZECOLUMNS(), büyük verilerle veya karmaşık durumlarda çalışırken özet tabloları daha kolay oluşturmayı sağlayan başka bir DAX işlevidir. SUMMARIZE()'a benzer, ancak bazı farklılıkları vardır.
-
Filtreleri doğrudan
SUMMARIZECOLUMNS()'a ekleyebilirsiniz; bu da onu daha hızlı kılar. -
SUMMARIZECOLUMNS()ile çıktınıza ölçüleri doğrudan dahil edebilirsiniz.ADDCOLUMNS()gibi ek işlevlere gerek yoktur. -
SUMMARIZECOLUMNS()boş satırları otomatik olarak ele alır, bu yüzden onlar hakkında endişelenmenize gerek yoktur.
SUMMARIZECOLUMNS(
<groupBy_columnName> [, <groubBy_columnName>] …, [<filterTable>] … [, <name>, <expression>] …
)
Örneğin bir veri setim var ve çalışan maaşlarını Region ve Department bazında özetlerken, adı Raven olan çalışanları filtrelemek istiyorum. Farklı bölge ve departmanlarda Raven için toplam maaşı hesaplamak üzere SUMMARIZECOLUMNS() işlevini kullanacağım.

employee_data adlı bir tablo. Görsel: Yazar.
Bunun için aşağıdaki formülü kullanıyorum:
SalarySummary =
SUMMARIZECOLUMNS(
employee_data[Name],
employee_data[Region],
employee_data[Department],
FILTER(employee_data, employee_data[Name] = "Raven"),
"Total Salary", SUM(employee_data[Salary])
)
Yukarıdaki formülde:
-
SalarySummary, oluşturulan hesaplanmış tabloya verilen isimdir. -
SUMMARIZECOLUMNS(...)belirtilen sütunlara ve hesaplamalara dayalı olarak bir özet tablo oluşturur. -
employee_data[Name], employee_data[Region], employee_data[Department], verilerin gruplandırılacağı sütunlardır. -
FILTER(employee_data, employee_data[Name] = "Raven"), sonuçları yalnızca Name değeri Raven olan satırlarla sınırlar. -
"Total Salary", SUM(employee_data[Salary])sonuçta hesaplanan bir sütun oluşturur. -
SUM(employee_data[Salary])her grup için tüm Salary değerlerinin toplamını hesaplar.

Sonuçları özetlemek için SUMMARIZECOLUMNS kullanın. Görsel: Yazar.
Gördüğünüz gibi — SUMMARIZECOLUMNS() işlevi veri setini filtreler ve Raven'ın maaş toplamlarını farklı lokasyonlar ve departmanlar bazında hesaplar.
GROUPBY()
GROUPBY(), yalnızca verileri gruplamanız ve bu gruplar üzerinde hesaplamalar yapmanız gerektiğinde bazen SUMMARIZE()'ın yerine geçebilecek bir başka işlevidir. Basit gruplama işlemleri için SUMMARIZE()'dan daha verimli olabilir.
SUMMARIZE() ilişkili tablolar arasında çalışabilirken, GROUPBY() tek bir tablo içinde gruplama ve toplulaştırmaya odaklanır; bu da belirli senaryolarda performansı iyileştirir.
Bir örnek görelim. Ürünleri, kategorileri, satılan birimleri ve birim fiyatlarını izlemek için bir envanter veri seti oluşturmam ve ardından her bir kategori için toplam geliri hesaplamak üzere verileri kategori bazında gruplamam gerekiyor.

Envanter tablosu. Görsel: Yazar.
Bunun için aşağıdaki formülü kullanıyorum:
SummaryGroupBY =
GROUPBY(
Inventory,
Inventory[Category],
"Total Revenue",
SUMX(
CURRENTGROUP(),
Inventory[Units Sold] * Inventory[Unit Price]
)
)
Yukarıdaki formülde:
-
GROUPBY(), verileri Category bazında gruplar. -
CURRENTGROUP(), her kategori grubunu ifade eder (ör. elektronik, mobilya veya beyaz eşya). -
SUMX(), her grup için Units Sold ile Unit Price çarpımını toplayarak toplam geliri hesaplar.

Verileri gruplamak için GROUPBY kullanımı. Görsel: Yazar.
Gördüğünüz gibi — GROUPBY() işlevi, her kategorideki kalem için Units Sold ile Unit Price çarpımını alıp bu bireysel gelirleri özetleyerek Total Revenue değerini kolayca hesaplar.
DAX SUMMARIZE() Hakkında Son Düşünceler
Artık DAX'taki SUMMARIZE() işlevinin Power BI, Excel ve diğer araçlarda verileri gruplamanıza ve analiz etmenize nasıl yardımcı olduğunu biliyorsunuz. Temel gruplamadan ROLLUP() ve ADDCOLUMNS() gibi ileri tekniklere kadar SUMMARIZE(), içgörü dolu özetler oluşturmayı sağlar.
Pratik mükemmelleştirir; bu teknikleri kendi verilerinizle deneyerek nasıl faydalı içgörüler ortaya çıkarabildiğini görün. DAX becerilerinizi daha da parlatmak isterseniz, gerçek bir güç kullanıcısı olmak için Power BI'da DAX'a Giriş kursumuza kaydolun.
Karmaşık konuları basitleştirmeyi seven bir içerik stratejistiyim. Splunk, Hackernoon ve Tiiny Host gibi şirketlerin hedef kitleleri için ilgi çekici ve bilgilendirici içerikler üretmelerine yardımcı oldum.
DAX Summarize() SSS
SUMMARIZE() büyük/küçük harfe duyarlı mı?
DAX genel olarak büyük/küçük harfe duyarlı değildir; bu nedenle SUMMARIZE() içinde kullanılan sütun adlarının, orijinal verideki harf duyarlılığıyla eşleşmesi gerekmez.
SUMMARIZE() kullanırken yaygın hatalar nelerdir?
Yaygın hatalar arasında sözdizimi hataları, var olmayan sütun adları ve büyük veri kümelerinde yaşanan performans sorunları yer alır. Bu sorunlardan kaçınmak için her zaman işlevin argümanlarını ve veri modelinizi iki kez kontrol edin.
Bağlam açısından SUMMARIZE() ve SUMMARIZECOLUMNS() nasıl farklılaşır?
SUMMARIZE(), toplulaştırmalar için hem satır hem filtre bağlamını korurken, SUMMARIZECOLUMNS() yalnızca filtre bağlamına sahiptir.

