Ekinlikler
31 Mar 23 - 2 Nis 23
Microsoft Fabric, Power BI, SQL ve yapay zeka topluluğu tarafından yönetilen nihai etkinlik. 31 Mart - 2 Nisan 2025.
Bugün kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Veri Çözümleme İfadeleri (DAX), Excel'de Analysis Services, Power BI ve Power Pivot'ta kullanılan bir formül ifade dilidir. DAX formülleri, tablosal veri modellerindeki ilgili tablo ve sütunlardaki veriler üzerinde gelişmiş hesaplamalar ve sorgular gerçekleştirmek için işlevler, işleçler ve değerler içerir.
Bu makale, DAX'taki en önemli kavramlara yalnızca temel bir giriş sağlar. DAX'ı kullanan tüm ürünler için geçerli olduğu şekilde açıklar. Bazı işlevler belirli ürünler veya kullanım örnekleri için geçerli olmayabilir. Ürününüzün dax uygulamasını açıklayan belgelerine bakın.
DAX formülleri ölçülerde, hesaplanmış sütunlarda, hesaplanan tablolarda ve satır düzeyi güvenlikte kullanılır.
Ölçüler, sonuçların bağlama bağlı olarak değiştiği dinamik hesaplama formülleridir. Ölçüler, Power BI raporu, Excel PivotTable veya PivotChart gibi birden çok öznitelik kullanarak model verilerini birleştirmeyi ve filtrelemeyi destekleyen raporlamada kullanılır. Ölçüler, model tasarımcısında DAX formül çubuğu kullanılarak oluşturulur.
Ölçüdeki bir formül, BAĞ_DEĞ_SAY veya TOPLA gibi Otomatik Toplam özelliği kullanılarak otomatik olarak oluşturulan standart toplama işlevlerini kullanabilir veya DAX formül çubuğunu kullanarak kendi formülünüzü tanımlayabilirsiniz. Adlandırılmış ölçüler, diğer ölçülerde birer bağımsız değişken olarak kullanılabilir.
Formül çubuğunda bir ölçü için formül tanımladığınızda, Araç İpucu özelliği geçerli bağlamda toplam için sonuçların bir önizlemesini gösterir, ancak aksi takdirde sonuçlar hemen hiçbir yerde çıkış yapılmaz. Hesaplamanın (filtrelenmiş) sonuçlarını hemen göremediğiniz için ölçünün sonucu bağlam olmadan belirlenemez. Ölçüyü değerlendirmek için, her hücreyle ilgili verileri almak ve sonra her hücre için ifadeyi değerlendirmek için gereken bağlamı sağlayabilecek bir raporlama istemci uygulaması gerekir. Bu istemci bir Excel PivotTable veya PivotChart, bir Power BI raporu veya SQL Server Management Studio'daki (SSMS) bir DAX sorgusundaki tablo ifadesi olabilir.
İstemciden bağımsız olarak, sonuçlardaki her hücre için ayrı bir sorgu çalıştırılır. Başka bir ifadeyle, PivotTable'daki satır ve sütun başlıklarının her birleşimi veya bir Power BI raporundaki dilimleyici ve filtre seçimlerinin her biri, ölçünün hesaplandığı farklı bir veri alt kümesi oluşturur. Örneğin, bu çok basit ölçü formülünü kullanarak:
Total Sales = SUM([Sales Amount])
Kullanıcı TotalSales ölçüsünü bir rapora yerleştirdiğinde ve ardından bir Product tablosundaki Ürün Kategorisi sütununu Filtreler'e yerleştirdiğinde, her ürün kategorisi için Satış Tutarı toplamı hesaplanır ve görüntülenir.
Hesaplanmış sütunların aksine, ölçünün söz dizimi formülün önündeki ölçünün adını içerir. Az önce sağlanan örnekte, Toplam Satışlar adı formülden önce görünür. Bir ölçü oluşturduktan sonra, ad ve tanımı raporlama istemci uygulaması Alanlar listesinde görünür ve perspektiflere ve rollere bağlı olarak modelin tüm kullanıcıları tarafından kullanılabilir.
Daha fazla bilgi edinmek için bkz:
Power BI Desktop'da
Analysis Services'te Ölçüler
Power Pivot 'da Ölçüler
Hesaplanmış sütun, var olan bir tabloya (model tasarımcısında) eklediğiniz ve sonra sütunun değerlerini tanımlayan bir DAX formülü oluşturduğunuz bir sütundur. Hesaplanan sütun geçerli bir DAX formülü içerdiğinde, formül girildiğinde her satır için değerler hesaplanır. Değerler daha sonra bellek içi veri modelinde depolanır. Örneğin, Bir Tarih tablosunda, formül formül çubuğuna girildiğinde:
= [Calendar Year] & " Q" & [Calendar Quarter]
Tablodaki her satır için bir değer, Takvim Yılı sütunundan (aynı Tarih tablosundaki) değerler alınarak, bir boşluk ve büyük harf Q eklenerek ve ardından Takvim Üç Aylık Dönemi sütunundan (aynı Tarih tablosunda) değerler eklenerek hesaplanır. Hesaplanmış sütundaki her satırın sonucu hemen hesaplanır ve örneğin 2017 Q1olarak görünür. Sütun değerleri yalnızca tablo veya ilişkili herhangi bir tablo işlenirse (yenilenir) veya model bellekten kaldırılırsa ve power BI Desktop dosyasını kapatıp yeniden açarken olduğu gibi yeniden yüklenirse yeniden hesaplanır.
Daha fazla bilgi edinmek için bkz:
Power BI Desktop'ta hesaplanmış sütunlar
Analysis Services'ta Hesaplanan sütunlar
Power Pivot 'de Hesaplanan Sütunlar.
Hesaplanan tablo, aynı modeldeki diğer tabloların tümünden veya bir bölümünden türetilen bir formül ifadesini temel alan hesaplanan bir nesnedir. Veri kaynağından değerleri sorgulayıp yeni tablonuzun sütunlarına yüklemek yerine, DAX formülü tablonun değerlerini tanımlar.
Hesaplanan tablolar rol yapma boyutunda yararlı olabilir. Yabancı anahtar ilişkisine bağlı olarak OrderDate, ShipDate veya DueDate olarak Date tablosu buna örnek olarak verilmiştir. ShipDate için açıkça hesaplanmış bir tablo oluşturarak, sorgular için kullanılabilen, diğer tüm tablolar gibi tam olarak çalıştırılabilir tek başına bir tablo elde edersiniz. Hesaplanan tablolar, filtrelenmiş satır kümesi veya var olan diğer tablolardaki sütunların alt kümesini veya üst kümesini yapılandırırken de yararlıdır. Bu, belirli senaryoları desteklemek için bu tablonun çeşitlemelerini oluştururken özgün tabloyu olduğu gibi tutmanızı sağlar.
Hesaplanan tablolar diğer tablolarla ilişkileri destekler. Hesaplanmış tablonuzdaki sütunlar veri türlerine, biçimlendirmeye sahiptir ve bir veri kategorisine ait olabilir. Hesaplanan tablolar, diğer tüm tablolar gibi adlandırılabilir ve ortaya çıkarılabilir veya gizlenebilir. Hesaplanmış tablolar, veri çektiği tablolardan herhangi biri yenilenir veya güncelleştirilirse yeniden hesaplanır.
Daha fazla bilgi edinmek için bkz:
Power BI Desktop'ta Hesaplanan tablolar
Analysis Services'de Hesaplanan tablolar
Satır düzeyi güvenlikte, bir DAX formülünün boole TRUE
/FALSE
koşulu olarak değerlendirilmesi gerekir ve bu değerlendirme, belirli bir rolün üyelerinin hangi sorgu sonuçlarıyla hangi satırların döndürülebileceğini belirler. Örneğin, Satış rolünün üyeleri için aşağıdaki DAX formülünü içeren Müşteriler tablosu:
= Customers[Country] = "USA"
Satış rolünün üyeleri yalnızca ABD'deki müşterilerin verilerini görüntüleyebilir ve SUM gibi toplamlar yalnızca ABD'deki müşteriler için döndürülür. Satır düzeyi güvenlik, Excel'deki Power Pivot'ta kullanılamaz.
DAX formülünü kullanarak satır düzeyi gizlilik tanımlarken, izin verilen bir satır kümesi oluşturursunuz. Bu, diğer satırlara erişimi engellemez; yalnızca izin verilen satır kümesinin bir parçası olarak geri döndürülmezler. Diğer roller DAX formülü tarafından dışlanan satırlara erişime izin verebilir. Kullanıcı başka bir rolün üyesiyse ve bu rolün satır düzeyi güvenliği söz konusu satır kümesine erişime izin veriyorsa, kullanıcı bu satıra ait verileri görüntüleyebilir.
Satır düzeyi güvenlik formülleri, hem belirtilen satırlara hem de ilgili satırlara uygulanır. Bir tablonun birden çok ilişkisi olduğunda, filtreler etkin olan ilişki için güvenlik uygular. Satır düzeyi güvenlik formülleri, ilgili tablolar için tanımlanan diğer formüllerle kesişir.
Daha fazla bilgi edinmek için bkz:
Power BI ile satır düzeyi güvenlik (RLS)
Analiz Hizmetlerinde Roller
DAX sorguları, SQL Server Management Studio (SSMS) ve DAX Studio (daxstudio.org) gibi açık kaynak araçlarda oluşturulabilir ve çalıştırılabilir. Yalnızca tablosal veri modellerinde oluşturulabilen DAX hesaplama formüllerinden farklı olarak, DAX sorguları Analysis Services Çok Boyutlu modellerinde de çalıştırılabilir. DAX sorgularının yazılma kolaylığı ve çok boyutlu Veri İfadeleri (MDX) sorgularından daha verimli olması genellikle daha kolaydır.
DAX sorgusu, T-SQL'deki SELECT deyimine benzer bir deyimdir. DAX sorgusunun en temel türü, deyimini değerlendirmektir. Mesela
EVALUATE
( FILTER ( 'DimProduct', [SafetyStockLevel] < 200 ) )
ORDER BY [EnglishProductName] ASC
Sonuçlar'da yalnızca 200'den küçük SafetyStockLevel'e sahip olan ürünleri EnglishProductName'e göre artan sırada listeleyen bir tablo döndürür.
Sorgunun bir parçası olarak ölçüler oluşturabilirsiniz. Ölçüler yalnızca sorgunun süresi boyunca bulunur. Daha fazla bilgi edinmek için bkz. DAX sorguları.
DAX formülleri, hesaplanmış sütunlarda ve ölçülerde hesaplamalar oluşturmak ve satır düzeyi güvenlik kullanarak verilerinizin güvenliğini sağlamak için gereklidir. Hesaplanmış sütunlar ve ölçüler için formül oluşturmak için model tasarımcısı penceresinin üst kısmındaki formül çubuğunu veya DAX Düzenleyicisi'ni kullanın. Satır düzeyi güvenliğe yönelik formüller oluşturmak için Rol Yöneticisi veya Rolleri yönet iletişim kutusunu kullanın. Bu bölümdeki bilgiler, DAX formüllerinin temellerini anlamanıza yöneliktir.
DAX formülleri çok basit veya oldukça karmaşık olabilir. Aşağıdaki tabloda, hesaplanmış sütunda kullanılabilecek bazı basit formül örnekleri gösterilmektedir.
Formül | Tanım |
---|---|
= TODAY() |
Hesaplanan sütunun her satırına bugünün tarihini ekler. |
= 3 |
Hesaplanmış sütunun her satırına 3 değerini ekler. |
= [Column1] + [Column2] |
[Sütun1] ve [Sütun2] değerlerinin aynı satırına ekler ve sonuçları aynı satırın hesaplanan sütununa yerleştirir. |
Oluşturduğunuz formülün basit veya karmaşık olmasına bakılmaksızın, formül oluştururken aşağıdaki adımları kullanabilirsiniz:
Her formülün eşittir işaretiyle (=) başlaması gerekir.
bir işlev adı yazabilir veya seçebilir ya da bir ifade yazabilirsiniz.
İstediğiniz işlevin veya adın ilk birkaç harfini yazmaya başlayın ve Otomatik Tamamlama, kullanılabilir işlevlerin, tabloların ve sütunların listesini görüntüler. Otomatik Tamamlama listesinden bir öğeyi formüle eklemek için SEKME tuşuna basın.
Kullanılabilir işlevlerin listesini görüntülemek için Fx düğmesine de tıklayabilirsiniz. Açılan listeden bir işlev seçmek için, öğeyi vurgulamak için ok tuşlarını kullanın ve işlevi formüle eklemek için tamam
Olası tablo ve sütunların açılan listesinden seçerek veya değerleri yazarak fonksiyona bağımsız değişkenleri sağlayın.
Söz dizimi hatalarını denetleyin: Tüm parantezlerin kapalı olduğundan ve sütunlara, tablolara ve değerlere doğru başvurıldığından emin olun.
Formülü kabul etmek için ENTER tuşuna basın.
Not
Hesaplanmış bir sütunda, formülü girdiğinizde ve formül doğrulandığında sütun değerlerle doldurulur. Bir ölçüde ENTER tuşuna basıldığında ölçü tanımı tabloyla birlikte kaydedilir. Formül geçersizse bir hata görüntülenir.
Bu örnekte, Geçerli Çeyrekteki Günadlı ölçüdeki bir formüle bakalım:
Days in Current Quarter = COUNTROWS( DATESBETWEEN( 'Date'[Date], STARTOFQUARTER( LASTDATE('Date'[Date])), ENDOFQUARTER('Date'[Date])))
Bu ölçü, tamamlanmamış bir dönem ile önceki dönem arasında karşılaştırma oranı oluşturmak için kullanılır. Formül, geçen dönemin oranını dikkate almalı ve önceki dönemdeki aynı oran ile karşılaştırmalıdır. Bu durumda, [Geçerli Üç Aylık Dönemden Tarihe Gün]/[Geçerli Üç Aylık Dönemdeki Günler] geçerli dönemde geçen oranı verir.
Bu formül aşağıdaki öğeleri içerir:
Formül öğesi | Açıklama |
---|---|
Days in Current Quarter |
Ölçünün adı. |
= |
Eşittir işareti (=) formülü başlatır. |
COUNTROWS |
COUNTROWS Date tablosundaki satır sayısını sayar |
() |
Açma ve kapatma parantezleri, bağımsız değişkenleri belirtir. |
DATESBETWEEN |
DATESBETWEEN işlevi, Date tablosundaki Date sütunundaki her değerin son tarihi arasındaki tarihleri döndürür. |
'Date' |
Date tablosunu belirtir. Tablolar tek tırnak işareti içinde yer alır. |
[Date] |
Date tablosundaki Date sütununu belirtir. Sütunlar köşeli parantez içindedir. |
, |
|
STARTOFQUARTER |
STARTOFQUARTER işlevi, üç aylık dönemin başlangıç tarihini döndürür. |
LASTDATE |
LASTDATE işlevi, üç aylık dönemin son tarihini döndürür. |
'Date' |
Date tablosunu belirtir. |
[Date] |
Date tablosundaki Date sütununu belirtir. |
, |
|
ENDOFQUARTER |
"ENDOFQUARTER" işlevi |
'Date' |
Date tablosunu belirtir. |
[Date] |
Date tablosundaki Date sütununu belirtir. |
Otomatik Tamamlama, formüldeki her öğe için size seçenekler sağlayarak geçerli bir formül söz dizimi girmenize yardımcı olur.
İç içe işlevler içeren mevcut bir formülün ortasında formül Tamamlamayı kullanabilirsiniz. Ekleme noktasından hemen önceki metin, açılan listedeki değerleri görüntülemek için kullanılır ve ekleme noktasından sonraki metnin tümü değişmeden kalır.
Otomatik Tamamlama işlevlerin kapatma parantezini eklemez veya parantezleri otomatik olarak eşleştirmez. Her işlevin söz dizimsel olarak doğru olduğundan emin olmalısınız, yoksa formülü kaydedemez veya kullanamazsınız.
İşlevleri iç içe yerleştirebilirsiniz; başka bir deyişle, bir işlevin sonuçlarını başka bir işlevin bağımsız değişkeni olarak kullanabilirsiniz. Hesaplanan sütunlarda en fazla 64 işlev düzeyi iç içe yerleştirebilirsiniz. Ancak iç içe geçme, formüller oluşturmayı ve sorun gidermeyi zorlaştırabilir. Birçok işlev yalnızca iç içe yerleştirilmiş işlevler olarak kullanılacak şekilde tasarlanmıştır. Bu işlevler, sonuç olarak doğrudan kaydedilemeyen bir tablo döndürür; bir tablo işlevine giriş olarak sağlanmalıdır. Örneğin, SUMX, AVERAGEX ve MINX işlevlerinin tümü ilk bağımsız değişken olarak bir tablo gerektirir.
İşlev, ifade içindeki adlandırılmış bir formüldür. İşlevlerin çoğu giriş olarak parametre olarak da bilinen gerekli ve isteğe bağlı bağımsız değişkenlere sahiptir. İşlev yürütülürken bir değer döndürülür. DAX, tarih ve saatleri kullanarak hesaplamalar yapmak, koşullu değerler oluşturmak, dizelerle çalışmak, ilişkilere dayalı aramalar yapmak ve özyinelemeli hesaplamalar yapmak için bir tablo üzerinde yineleme yapmak için kullanabileceğiniz işlevler içerir. Excel formüllerini biliyorsanız, bu işlevlerin çoğu çok benzer görünür; ancak, DAX formülleri aşağıdaki önemli yollarla farklıdır:
DAX işlevi her zaman tam bir sütuna veya tabloya başvurur. Tablo veya sütundan yalnızca belirli değerleri kullanmak istiyorsanız, formüle filtre ekleyebilirsiniz.
Hesaplamaları satır satır özelleştirmeniz gerekiyorsa DAX, bağlama göre değişen hesaplamalar yapmak için geçerli satır değerini veya ilgili değeri parametre türü olarak kullanmanıza olanak sağlayan işlevler sağlar. Bu işlevlerin nasıl çalıştığını anlamak için bu makaledeki bağlam
DAX, değer yerine tablo döndüren birçok işlev içerir. Tablo bir raporlama istemcisinde görüntülenmez, ancak diğer işlevlere giriş sağlamak için kullanılır. Örneğin, bir tabloyu alıp içindeki ayrı değerleri sayabilir veya filtrelenmiş tablolar veya sütunlar arasında dinamik toplamları hesaplayabilirsiniz.
DAX işlevleri, çeşitli zaman zekası işlevleri içerir. Bu işlevler tarih aralıklarını tanımlamanıza veya seçmenize ve bu tarihlere veya aralıklara göre dinamik hesaplamalar yapmanıza olanak sağlar. Örneğin, toplamları paralel dönemler arasında karşılaştırabilirsiniz.
Toplama işlevleri, ifade tarafından tanımlandığı gibi bir sütun veya tablodaki tüm satırlar için sayı, toplam, ortalama, minimum veya maksimum gibi bir (skaler) değeri hesaplar. Daha fazla bilgi edinmek için bkz. Toplama işlevleri.
DAX'taki tarih ve saat işlevleri, Microsoft Excel'deki tarih ve saat işlevlerine benzer. Ancak DAX işlevleri, 1 Mart 1900'den itibaren datetime veri türünü temel alır. Daha fazla bilgi edinmek için bkz. Tarih ve saat işlevleri.
DAX'taki filtre işlevleri belirli veri türlerini döndürür, ilgili masallardaki değerleri arar ve ilgili değerlere göre filtreler. Arama işlevleri, veritabanı gibi tabloları ve ilişkileri kullanarak çalışır. Filtreleme işlevleri, dinamik hesaplamalar oluşturmak için veri bağlamını işlemenize olanak sağlar. Daha fazla bilgi edinmek için bkz.filtre işlevleri
DAX'taki finansal işlevler, net bugünkü değer ve getiri oranı gibi finansal hesaplamalar yapan formüllerde kullanılır. Bu işlevler, Microsoft Excel'de kullanılan finansal işlevlere benzer. Daha fazla bilgi edinmek için bkz. Finansal işlevler.
Bilgi işlevi, bağımsız değişken olarak sağlanan hücreye veya satıra bakar ve değerin beklenen türle eşleşip eşleşmediğini bildirir. Örneğin ISERROR işlevi, başvurduğunuz değer bir hata içeriyorsa TRUE
döndürür. Daha fazla bilgi için bkz. Bilgi işlevleri.
Mantıksal işlevler, ifadedeki değerler hakkında bilgi döndürmek için bir ifadeye göre hareket eder. Örneğin, TRUE
işlevi, değerlendirdiğiniz bir ifadenin TRUE
bir değer döndürdüğünü bilmenizi sağlar. Daha fazla bilgi edinmek için bkz.
DAX'taki matematik işlevleri Excel matematiksel ve trigonometrik işlevlerine çok benzer. DAX işlevleri tarafından kullanılan sayısal veri türlerinde bazı küçük farklılıklar vardır. Daha fazla bilgi edinmek için bkz. Matematik ve trigonerlik işlevleri.
Bu işlevler, diğer işlevlerin en çok ait olduğu kategorilerden herhangi biri tarafından tanımlanamayan benzersiz eylemler gerçekleştirir. Daha fazla bilgi edinmek için bkz. Diğer işlevler.
DAX'taki ilişki işlevleri, başka bir ilişkili tablodan değer döndürmenize, ifadede kullanılacak belirli bir ilişkiyi belirtmenize ve çapraz filtreleme yönünü belirtmenize olanak tanır. Daha fazla bilgi edinmek için bkz. İlişki işlevleri.
İstatistiksel işlevler, standart sapma ve permütasyon sayısı gibi istatistiksel dağılımlarla ve olasılıkla ilgili değerleri hesaplar. Daha fazla bilgi edinmek için bkz. İstatistiksel işlevler.
DAX'taki metin işlevleri, Excel'deki karşılıklarına çok benzer. Dizenin bir bölümünü döndürebilir, dize içinde metin arayabilir veya dize değerlerini birleştirebilirsiniz. DAX ayrıca tarih, saat ve sayı biçimlerini denetlemeye yönelik işlevler de sağlar. Daha fazla bilgi edinmek için bkz. Metin işlevleri.
DAX'ta sağlanan akıllı zaman gösterimi işlevleri, takvimler ve tarihler hakkında yerleşik bilgileri kullanan hesaplamalar oluşturmanıza olanak sağlar. Zaman ve tarih aralıklarını toplamalar veya hesaplamalarla birlikte kullanarak, satış, stok vb. için karşılaştırılabilir zaman dönemleri arasında anlamlı karşılaştırmalar oluşturabilirsiniz. Daha fazla bilgi edinmek için bkz. Akıllı zaman gösterimi işlevleri (DAX).
Bu işlevler bir tablo döndürür veya var olan tabloları işler. Örneğin, ADDCOLUMNS kullanarak belirtilen bir tabloya hesaplanmış sütunlar ekleyebilir veya SUMMARIZECOLUMNS işleviyle bir grup kümesi üzerinde özet tablo döndürebilirsiniz. Daha fazla bilgi edinmek için bkz.
VARkullanarak bir ifade içinde değişkenler oluşturabilirsiniz. VAR teknik olarak bir işlev değildir, bir ifadenin sonucunu adlandırılmış değişken olarak depolamak için kullanılan bir anahtar sözcüktür. Daha sonra bu değişken, diğer ölçü ifadelerine argüman olarak geçirilebilir. Mesela:
VAR
TotalQty = SUM ( Sales[Quantity] )
Return
IF (
TotalQty > 1000,
TotalQty * 0.95,
TotalQty * 1.25
)
Bu örnekte TotalQty, diğer ifadelere adlandırılmış değişken olarak geçirilebilir. Değişkenler, tablolar da dahil olmak üzere herhangi bir skaler veri türünde olabilir. DAX formüllerinizde değişkenleri kullanmak inanılmaz derecede güçlü olabilir.
Farklı veri türlerini destekleyebilecek birçok farklı veri kaynağından bir modele veri aktarabilirsiniz. Verileri bir modele aktardığınızda, veriler tablosal model veri türlerinden birine dönüştürülür. Model verileri bir hesaplamada kullanıldığında, hesaplamanın süresi ve çıkışı için veriler bir DAX veri türüne dönüştürülür. BIR DAX formülü oluşturduğunuzda, formülde kullanılan terimler döndürülen değer veri türünü otomatik olarak belirler.
DAX aşağıdaki veri türlerini destekler:
Modeldeki veri türü | DAX'ta veri türü | Açıklama |
---|---|---|
Whole Number |
1, 2 |
Ondalık basamak içermeyen sayılar. Tamsayılar pozitif veya negatif sayılar olabilir, ancak -9.223.372.036.854.775.808 (-2^63) ile 9.223.372.036.854.775.807 (2^63-1) arasında tamsayılar olmalıdır. |
Decimal Number |
64 bit (sekiz bayt) gerçek sayı 1, 2 | Gerçek sayılar ondalık basamakları olan sayılardır. Gerçek sayılar çok çeşitli değerleri kapsar: -1,79E +308 ile -2,23E arasında negatif değerler -308 Sıfır 2,23E -308 ile 1,79E + 308 arasında pozitif değerler Ancak, anlamlı basamak sayısı 17 ondalık basamakla sınırlıdır. |
Boolean |
Boolean | Ya Doğru ya da Yanlış değeri. |
Text |
Dizgi | Unicode karakter veri dizesi. Metin biçiminde temsil edilen dizeler, sayılar veya tarihler olabilir. |
Date |
Tarih/saat | Kabul edilen tarih-saat gösterimindeki tarihler ve saatler. Geçerli tarihlerin tümü 1 Mart 1900'e kadar olan tarihlerdir. |
Currency |
Para birimi | Para birimi veri türü, -922.337.203.685.477.5808 ile 922.337.203.685.477.5807 arasındaki değerlerin dört ondalık basamağı sabit duyarlıklı olmasını sağlar. |
N/A |
Boş | Boş, DAX'ta SQL null değerlerini temsil eden ve değiştiren bir veri türüdür. BLANK işlevini kullanarak boş değer oluşturabilir ve ISBLANK mantıksal işlevini kullanarak boşlukları test edebilirsiniz. |
Tablosal veri modelleri, birçok DAX işlevinin girişi veya çıkışı olarak Tablo veri türünü de içerir. Örneğin, FILTER işlevi bir tabloyu giriş olarak alır ve yalnızca filtre koşullarını karşılayan satırları içeren başka bir tablo çıkarır. Tablo işlevlerini toplama işlevleriyle birleştirerek, dinamik olarak tanımlanan veri kümeleri üzerinde karmaşık hesaplamalar yapabilirsiniz.
Veri türleri genellikle otomatik olarak ayarlanmış olsa da, veri türlerini ve özellikle DAX formüllerine nasıl uygulandıklarını anlamak önemlidir. Formüllerdeki hataların veya beklenmeyen sonuçların nedeni genellikle bağımsız değişkende belirtilen veri türüyle kullanılamayabilecek belirli bir işleç kullanılmasıdır. Örneğin, = 1 & 2
formülü 12 dize sonucu döndürür. Ancak = "1" + "2"
formül, 3'ün tamsayı sonucunu döndürür.
Bağlam, DAX formülleri oluştururken anlaşılması gereken önemli bir kavramdır. Bağlam, bir formülün sonuçları geçerli satır veya hücre seçimini ve ayrıca ilgili verileri yansıtacak şekilde değiştiğinden dinamik analiz gerçekleştirmenizi sağlayan özelliktir. Bağlamı anlamak ve bağlamı etkili bir şekilde kullanmak, yüksek performanslı, dinamik analizler oluşturmak ve formüllerdeki sorunları gidermek için kritik öneme sahiptir.
Tablosal modellerdeki formüller, diğer tasarım öğelerine bağlı olarak farklı bir bağlamda değerlendirilebilir:
Farklı bağlam türleri vardır:
Satır bağlamı "mevcut satır" olarak düşünülebilir. Hesaplanmış sütunda formül oluşturursanız, bu formülün satır bağlamı geçerli satırdaki tüm sütunlardaki değerleri içerir. Tablo başka bir tabloyla ilişkiliyse, içerik geçerli satırla ilişkili diğer tablonun tüm değerlerini de içerir.
Örneğin, aynı tablodan Navlun ve Vergi olmak üzere iki sütundaki değerleri bir araya getiren = [Freight] + [Tax]
hesaplanmış bir sütun oluşturduğunuzu varsayalım. Bu formül, yalnızca belirtilen sütunlardaki geçerli satırdaki değerleri otomatik olarak alır.
Satır bağlamı, ilişkili tablolardaki hangi satırların geçerli satırla ilişkili olduğunu belirlemek için DAX formülleri kullanılarak hesaplanan sütun içinde tanımlanan ilişkiler de dahil olmak üzere tablolar arasında tanımlanmış olan ilişkileri de izler.
Örneğin, aşağıdaki formül, siparişin sevk edildiği bölgeye göre ilişkili bir tablodan vergi değeri getirmek için RELATED işlevini kullanır. Vergi değeri, geçerli tablodaki bölgenin değeri kullanılarak, ilgili tablodaki bölgeye bakılarak ve ilgili tablodan ilgili bölgenin vergi oranı alınarak belirlenir.
= [Freight] + RELATED('Region'[TaxRate])
Bu formül, Region tablosundan geçerli bölgenin vergi oranını alır ve Navlun sütununun değerine ekler. DAX formüllerinde tabloları bağlayan belirli bir ilişkiyi bilmeniz veya belirtmeniz gerekmez.
DAX, bir tablo üzerinde hesaplamaları yineleyen işlevler içerir. Her biri kendi satır bağlamına sahip birden çok geçerli satır, bu işlevlerle ilişkili olabilir. Özünde, bu işlevler bir iç ve dış döngü üzerinde özyinelemeli olarak işlemler gerçekleştiren formüller oluşturmanıza olanak sağlar.
Örneğin, modelinizin bir Products tablosu ve Sales tablosu içerdiğini varsayalım. Kullanıcılar, birden çok ürün içeren işlemlerle dolu olan satış tablosunun tamamını gözden geçirmek ve herhangi bir işlemde her ürün için sipariş edilen en büyük miktarı bulmak isteyebilir.
DAX ile doğru değeri döndüren tek bir formül oluşturabilirsiniz ve bir kullanıcı tablolara veri ekleyişinde sonuçlar otomatik olarak güncelleştirilir.
= MAXX(FILTER(Sales,[ProdKey] = EARLIER([ProdKey])),Sales[OrderQty])
Bu formülün ayrıntılı bir örneği için bkz. EARLIER.
Özetlemek gerekirse EARLIER işlevi, geçerli işlemden önceki işlemden satır bağlamını depolar. İşlev her zaman bellekte iki bağlam kümesi depolar: bir bağlam kümesi formülün iç döngüsü için geçerli satırı, başka bir bağlam kümesi ise formülün dış döngüsü için geçerli satırı temsil eder. DAX, karmaşık toplamalar oluşturabilmeniz için iki döngü arasındaki değerleri otomatik olarak besler.
Sorgu bağlamı, bir formül için örtük olarak alınan veri alt kümesine başvurur. Örneğin, kullanıcı rapora bir ölçü veya alan yerleştirdiğinde altyapı, bağlamı belirlemek için satır ve sütun üst bilgilerini, dilimleyicileri ve rapor filtrelerini inceler. Gerekli sorgular daha sonra doğru veri alt kümesini almak, formül tarafından tanımlanan hesaplamaları yapmak ve ardından rapordaki değerleri doldurmak için model verilerine karşı çalıştırılır.
Bağlam, formülü yerleştirdiğiniz yere bağlı olarak değiştiğinden, formülün sonuçları da değişebilir. Örneğin, Sales tablosunun Profit sütunundaki değerleri toplayan bir formül oluşturduğunuzu varsayalım: = SUM('Sales'[Profit])
. Bu formülü Sales tablosunun içindeki bir hesaplanmış sütunda kullanırsanız, formülün sorgu bağlamı her zaman Sales tablosunun veri kümesinin tamamı olduğundan, formülün sonuçları tablonun tamamı için aynı olur. Sonuçlar tüm bölgeler, tüm ürünler, tüm yıllar vb. için kar elde eder.
Ancak, kullanıcılar genellikle aynı sonucu yüzlerce kez görmek istemez, ancak bunun yerine belirli bir yılın, belirli bir ülkenin, belirli bir ürünün veya bunların bir bileşiminin kar elde etmek ve ardından genel toplamı elde etmek ister.
Bir raporda, alanlar filtrelenerek, eklenerek veya kaldırılarak ve dilimleyiciler kullanılarak bağlam değiştirilir. Her değişiklik için ölçünün değerlendirildiği sorgu bağlamı. Bu nedenle, bir ölçüde kullanılan formül, her hücre için farklı bir sorgu bağlamında değerlendirilir.
Filtre bağlamı, her sütunda veya ilgili tablodan alınan değerlerde izin verilen değerler kümesidir. Filtreler tasarımcıdaki sütuna veya sunu katmanına (raporlar ve PivotTable'lar) uygulanabilir. Filtreler, formül içindeki filtre ifadeleri tarafından açıkça da tanımlanabilir.
Sütun veya tabloda izin verilen değer kümesi üzerinde filtre kısıtlamalarını belirttiğinizde, filtre bağlamı, formülün bağımsız değişkenleri kullanılarak eklenir. Filtre bağlamı, satır bağlamı veya sorgu bağlamı gibi diğer bağlamların üzerine uygulanır.
Tablosal modellerde filtre bağlamı oluşturmanın birçok yolu vardır. Power BI raporları gibi modeli kullanabilen istemciler bağlamında, kullanıcılar satır ve sütun başlıklarına dilimleyiciler veya rapor filtreleri ekleyerek anında filtreler oluşturabilir. Ayrıca doğrudan formül içinde filtre ifadeleri belirtebilir, ilgili değerleri belirtebilir, giriş olarak kullanılan tabloları filtreleyebilir veya hesaplamalarda kullanılan değerlerin bağlamını dinamik olarak alabilirsiniz. Ayrıca, belirli sütunlardaki filtreleri tamamen temizleyebilir veya seçmeli olarak temizleyebilirsiniz. Bu, genel toplamları hesaplayan formüller oluştururken çok yararlıdır.
Formüller içinde filtre oluşturma hakkında daha fazla bilgi edinmek için bkz. FILTER İşlevi (DAX).
Genel toplamlar oluşturmak için filtrelerin nasıl temizlendiğini gösteren bir örnek için bkz. ALL İşlevi (DAX).
Formüller içindeki filtreleri seçmeli olarak temizleme ve uygulama örnekleri için bkz. ALLEXCEPT.
BIR DAX formülü oluşturduğunuzda, formül önce geçerli söz dizimi için test edilir ve ardından formüle dahil edilen sütun ve tabloların adlarının geçerli bağlamda bulunadığından emin olmak için test edilir. Formül tarafından belirtilen herhangi bir sütun veya tablo bulunamazsa bir hata döndürülür.
Doğrulama sırasında bağlam (ve yeniden hesaplama işlemleri), önceki bölümlerde açıklandığı gibi modeldeki kullanılabilir tablolar, tablolar arasındaki tüm ilişkiler ve uygulanmış olan filtreler kullanılarak belirlenir.
Örneğin, yeni bir tabloya veri aktardıysanız ve başka tablolarla ilgili değilse (ve filtre uygulamadıysanız), geçerli bağlam tablodaki tüm sütun kümesidir. Tablo diğer tablolara ilişkilerle bağlıysa, geçerli bağlam ilgili tabloları içerir. Tablodan Dilimleyicilere sahip bir rapora sütun eklerseniz ve belki bazı rapor filtreleri eklerseniz, formülün bağlamı rapordaki her bir hücrenin veri alt kümesidir.
Bağlam, formüllerle ilgili sorunları gidermeyi de zorlaştırabilecek güçlü bir kavramdır. Bağlamın nasıl çalıştığını görmek için basit formüller ve ilişkilerle başlamanızı öneririz. Aşağıdaki bölümde, formüllerin sonuçları dinamik olarak döndürmek için farklı bağlam türlerini nasıl kullandığına ilişkin bazı örnekler verilmiştir.
DAX dili formüllerde dört farklı tür hesaplama işleci kullanır:
TRUE
YANLIŞ' değerini döndürmek için karşılaştırma operatörleri.DAX formüllerinde kullanılan işleçler hakkında ayrıntılı bilgi için bkz: DAX işleçleri.
Tablosal veri modellerindeki tablolar Excel tablolarına benzer, ancak verilerle ve formüllerle çalışma biçimlerinden farklıdır:
Adını kullanarak herhangi bir tabloya ve sütuna başvurabilirsiniz. Örneğin, aşağıdaki formül tam adını kullanarak iki tablodan gelen sütunlara nasıl başvurulacağını göstermektedir:
= SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount])
Bir formül değerlendirildiğinde, model tasarımcısı önce genel söz dizimini denetler ve ardından sağladığınız sütunların ve tabloların adlarını geçerli bağlamdaki olası sütunlar ve tablolarla karşılaştırarak denetler. Ad belirsizse veya sütun veya tablo bulunamıyorsa, formülde bir hata alırsınız (hatanın oluştuğu hücrelerde veri değeri yerine #ERROR dizesi). Tablolar, sütunlar ve diğer nesneler için adlandırma gereksinimleri hakkında daha fazla bilgi edinmek için bkz. DAX söz diziminde Adlandırma Gereksinimleri.
Tablolar arasında ilişkiler oluşturarak, diğer tablolardaki ilgili değerlerin hesaplamalarda kullanılabilmesini sağlarsınız. Örneğin, geçerli kurumsal bayi ile ilgili tüm sevkiyat kayıtlarını belirlemek ve ardından her birinin sevkiyat maliyetlerini toplamak için bir hesaplanmış sütun kullanabilirsiniz. Ancak çoğu durumda ilişki gerekli olmayabilir. LOOKUPVALUE işlevini, search_column ve search_value bağımsız değişkenlerinde belirtilen ölçütleri karşılayan satırın result_columnName değerini döndürmek için formülde kullanabilirsiniz.
Birçok DAX işlevi, başvurduğunuz sütunları bulmak ve anlamlı sonuçlar döndürmek için tablolar arasında veya birden çok tablo arasında bir ilişki olmasını gerektirir. Diğer işlevler ilişkiyi tanımlamaya çalışır; ancak, en iyi sonuçlar için her zaman mümkün olduğunda bir ilişki oluşturmanız gerekir. Tablosal veri modelleri tablolar arasında birden çok ilişkiyi destekler. Karışıklığı veya yanlış sonuçları önlemek için, aynı anda yalnızca bir ilişki etkin ilişki olarak atanır, ancak hesaplamalardaki verilerdeki farklı bağlantılardan geçiş yapmak için gerekli etkin ilişkiyi değiştirebilirsiniz. USERELATIONSHIP işlevi, belirli bir hesaplamada kullanılacak bir veya daha fazla ilişkiyi belirtmek için kullanılabilir.
İlişkileri kullanırken bu formül tasarım kurallarını gözlemlemek önemlidir:
Tablolar bir ilişki tarafından bağlandığında, anahtar olarak kullanılan iki sütunun eşleşen değerlere sahip olduğundan emin olmanız gerekir. Bilgi tutarlılığı zorlanmaz, bu nedenle bir anahtar sütununda eşleşmeyen değerlere sahip olmak ve yine de bir ilişki oluşturmak mümkündür. Böyle bir durumda, boş değerlerin veya eşleşmeyen değerlerin formüllerin sonuçlarını etkileyebileceğini unutmayın.
Modelinizdeki tabloları ilişkiler kullanarak bağladığınızda, formüllerinizin değerlendirildiği kapsam veya bağlamıgenişler. Yeni tabloların, yeni ilişkilerin eklenmesinden veya etkin ilişkideki değişikliklerden kaynaklanan bağlam değişiklikleri, sonuçlarınızın tahmin etmeyebileceğiniz şekilde değişmesine neden olabilir. Daha fazla bilgi edinmek için bu makaledeki bağlam
İşlem ve yeniden hesaplama iki ayrı ama ilişkili işlemdir. Karmaşık formüller, büyük miktarlarda veri veya dış veri kaynaklarından elde edilen veriler içeren bir model tasarlarken bu kavramları iyice anlamanız gerekir.
İşlem (yenileme), modeldeki verileri dış veri kaynağından alınan yeni verilerle güncelleştiriyor.
Yeniden Hesaplama, formüllerin kendilerinde yapılan değişiklikleri yansıtacak ve temel alınan verilerdeki değişiklikleri yansıtacak şekilde formüllerin sonuçlarını güncelleştirme işlemidir. Yeniden hesaplama, performansı aşağıdaki yollarla etkileyebilir:
Hesaplanmış sütundaki değerler hesaplanır ve modelde depolanır. Hesaplanan sütundaki değerleri güncelleştirmek için modeli üç işleme komutundan birini kullanarak işlemeniz gerekir: İşlem Tam, İşlem Verileri veya İşlem Yeniden Hesaplama. Formülü her değiştirdiğinizde, formülün sonucu her zaman sütunun tamamı için yeniden hesaplanmalıdır.
Ölçüler tarafından hesaplanan değerler, kullanıcı ölçüyü PivotTable'a eklediği veya raporu açtığında dinamik olarak değerlendirilir; kullanıcı bağlamı değiştirdikçe ölçü tarafından döndürülen değerler değişir. Ölçünün sonuçları her zaman bellek içi önbellekteki en son sonuçları yansıtır.
Yeniden hesaplamanın sonucu farklı bir değer döndürmediği ve bu nedenle satırı rol üyeleri tarafından sorgulanabilir veya sorgulanamaz hale getirmediği sürece işleme ve yeniden hesaplamanın satır düzeyi güvenlik formülleri üzerinde hiçbir etkisi olmaz.
DAX sürekli geliştirilmektedir. Yeni ve güncellenmiş işlevler, genellikle aylık olarak sunulan bir sonraki güncellemeyle yayımlanır. Hizmetler önce güncelleştirilir ve ardından Visual Studio (SSDT) için Power BI Desktop, Excel, SQL Server Management Studio (SSMS) ve Analysis Services proje uzantısı gibi yüklü uygulamalar güncelleştirilir. SQL Server Analysis Services, bir sonraki toplu güncelleştirmeyle güncellenecektir. Yeni işlevler ilk olarak Power BI Desktop güncelleştirmeleriyle çakışan DAX işlev başvurusunda duyurulur ve açıklanır.
Tüm işlevler SQL Server Analysis Services ve Excel'in önceki sürümlerinde desteklenmez.
Formül tanımlarken bir hata alırsanız, formül ya sözdizimsel hata, anlamsal hataveya hesaplama hatasıiçerebilir.
Sözdizimsel hataları çözmek en kolay olanıdır. Bunlar genellikle eksik parantez veya virgül içerir.
Söz dizimi doğru olduğunda diğer hata türü oluşur, ancak başvuruda bulunılan değer veya sütun formül bağlamında anlamlı değildir. Bu tür anlamsal ve hesaplama hataları aşağıdaki sorunlardan herhangi birinden kaynaklanabilir:
İlk dört durumda DAX, geçersiz formülü içeren sütunun tamamına bayrak ekler. Son örnekte DAX, sütunun işlenmemiş durumda olduğunu göstermek için sütunu gri gösterir.
Power BI Desktop ücretsiz bir veri modelleme ve raporlama uygulamasıdır. Model tasarımcısı, DAX hesaplama formülleri oluşturmaya yönelik bir DAX düzenleyicisi içerir.
'da Power Pivot
Excel model tasarımcısındaki Power Pivot
Analysis Services projeleri uzantısı (VSIX) ile Visual Studio, Analysis Services model projeleri oluşturmak için kullanılır. Proje uzantısıyla yüklenen tablosal model tasarımcısı bir DAX düzenleyicisi içerir.
SQL Server Management Studio (SSMS), Analysis Services ile çalışmaya yönelik temel bir araçtır. SSMS, hem tablosal hem de çok boyutlu modelleri sorgulamak için bir DAX sorgu düzenleyicisi içerir.
DAX Studio, Excel'de Analysis Services, Power BI Desktop ve Power Pivot modellerinde DAX sorguları oluşturmaya ve çalıştırmaya yönelik bir açık kaynak istemci aracıdır.
Tablosal Düzenleyici, tablosal model meta verilerindeki her nesnenin sezgisel, hiyerarşik bir görünümünü sağlayan açık kaynak bir araçtır. Tablosal Düzenleyici, ölçüleri, hesaplanan sütunu ve hesaplanan tablo ifadelerini düzenlemenin kolay bir yolunu sağlayan söz dizimi vurgulamalı bir DAX Düzenleyicisi içerir.
DAX'ı öğrenirken, veri modellerinizi oluşturmak için kullanacağınız uygulamayı kullanmak en iyisidir. Excel'deki Analysis Services, Power BI Desktop ve Power Pivot'un tümü, DAX kullanarak ölçü, hesaplanmış sütun ve satır filtresi oluşturma dersleri içeren makale ve öğreticilere sahiptir. Bazı ek kaynaklar şunlardır:
Power BI Desktop öğrenme yolunda DAX'i kullanın.
DAX için Kesin Kılavuz Alberto Ferrari ve Marco Russo (Microsoft Press). Bu kapsamlı kılavuz, ikinci sürümünde, yeni başlayan veri modelleyicileri ve BI uzmanları için yenilikçi yüksek performanslı teknikler için temel bilgiler sağlar.
DAX, uzmanlıklarını her zaman paylaşmaya istekli canlı bir topluluğa sahiptir. Microsoft Power BI Community, DAX için özel bir tartışma forumuna sahiptir, DAX Komutları ve İpuçları.
Ekinlikler
31 Mar 23 - 2 Nis 23
Microsoft Fabric, Power BI, SQL ve yapay zeka topluluğu tarafından yönetilen nihai etkinlik. 31 Mart - 2 Nisan 2025.
Bugün kaydolunEğitim
Modül
Power BI Desktop modellerine hesaplanan tablo ve hesaplanmış sütun ekleme - Training
Bu modülün sonunda, anlam modelinize hesaplanan tablolar ve hesaplanmış sütunlar ekleyebilirsiniz. Ayrıca hesaplanmış sütun formüllerini değerlendirmek için kullanılan satır bağlamını da tanımlayabileceksiniz. Power Query kullanarak tabloya sütun eklemek mümkün olduğundan, özel sütunlar yerine hesaplanmış sütunlar oluşturmanın en iyi Power Query olduğunu da öğreneceksiniz.