Veri Çözümleme İfadeleri (DAX) ilk başta biraz korkutucu gelebilir, ancak adın sizi kandırmasına izin vermeyin. DAX ile ilgili temel bilgileri anlamak oldukça kolaydır. Her şeyden önce - DAX bir programlama dili DEĞILDIR. DAX bir formül dilidir. DAX kullanarak Hesaplanan Sütunlar ve Ölçüler (hesaplanan alanlar olarak da bilinir) için özel hesaplamalar tanımlayabilirsiniz. DAX, Excel formüllerinde kullanılan işlevlerden bazılarını ve ilişkisel verilerle çalışmak ve dinamik toplama gerçekleştirmek için tasarlanmış ek işlevleri içerir.
DAX Formüllerini Anlama
DAX formülleri Excel formüllerine çok benzer. Bir tane oluşturmak için bir eşittir işareti, ardından bir işlev adı veya ifadesi ve gerekli değerler veya bağımsız değişkenler yazarsınız. Excel gibi DAX da dizelerle çalışmak, tarih ve saat kullanarak hesaplamalar yapmak veya koşullu değerler oluşturmak için kullanabileceğiniz çeşitli işlevler sağlar.
Ancak, DAX formülleri aşağıdaki önemli yollarla farklıdır:
-
Hesaplamaları satır satır özelleştirmek istiyorsanız DAX, bağlama göre değişiklik gösteren hesaplamalar gerçekleştirmek için geçerli satır değerini veya ilgili değeri kullanmanıza olanak sağlayan işlevler içerir.
-
DAX, sonuç olarak tek bir değer yerine tablo döndüren bir işlev türü içerir. Bu işlevler, diğer işlevlere giriş sağlamak için kullanılabilir.
-
Akıllı Zaman Gösterimi İşlevleri DAX'ta tarih aralıklarını kullanarak hesaplamalara izin verin ve sonuçları paralel dönemler arasında karşılaştırın.
DAX Formülleri Nerede Kullanılır?
Power Pivot 'da hesaplanan cbirleşimlerinde veya hesaplanan field'lerde formüller oluşturabilirsiniz.
Hesaplanmış Sütunlar
Hesaplanmış sütun, var olan bir Power Pivot tablosuna eklediğiniz bir sütundur. Değerleri sütuna yapıştırmak veya içeri aktarmak yerine, sütun değerlerini tanımlayan bir DAX formülü oluşturursunuz. Power Pivot tablosunu bir PivotTable'a (veya PivotChart'a) eklerseniz, hesaplanan sütun diğer veri sütunlarında olduğu gibi kullanılabilir.
Hesaplanmış sütunlardaki formüller, Excel'de oluşturduğunuz formüllere çok benzer. Ancak Excel'in aksine, tablodaki farklı satırlar için farklı bir formül oluşturamazsınız; bunun yerine, DAX formülü sütunun tamamına otomatik olarak uygulanır.
Sütun bir formül içerdiğinde, değer her satır için hesaplanır. Sonuçlar, formülü oluşturur oluşturmaz sütun için hesaplanır. Sütun değerleri yalnızca temel alınan veriler yenilenirse veya el ile yeniden hesaplama kullanılırsa yeniden hesaplanır.
Ölçüleri ve diğer hesaplanmış sütunları temel alan hesaplanmış sütunlar oluşturabilirsiniz. Ancak, hesaplanmış sütun ve ölçü için aynı adı kullanmaktan kaçının, bu da kafa karıştırıcı sonuçlara yol açabilir. Bir sütuna başvururken, ölçünün yanlışlıkla çağrılmasını önlemek için tam sütun başvurusu kullanmak en iyisidir.
Daha ayrıntılı bilgi için bkz. Power Pivot'ta Hesaplanan Sütunlar.
Önlem -ler
Ölçü, Power Pivot verileri kullanan bir PivotTable'da (veya PivotChart'ta) kullanılmak üzere özel olarak oluşturulmuş bir formüldür. Ölçüler BAĞ_DEĞ_SAY veya TOPLA gibi standart toplama işlevlerini temel alabilir veya DAX kullanarak kendi formülünüzü tanımlayabilirsiniz. PivotTable'ın Değerler alanında ölçü kullanılır. Hesaplanan sonuçları PivotTable'ın farklı bir alanına yerleştirmek istiyorsanız, bunun yerine bir hesaplanmış sütun kullanın.
Açık ölçü için bir formül tanımladığınızda, ölçüyü PivotTable'a ekleyene kadar hiçbir şey olmaz. Ölçüyü eklediğinizde, formül PivotTable'ın Değerler alanındaki her hücre için değerlendirilir. Satır ve sütun başlıklarının her birleşimi için bir sonuç oluşturulduğundan, ölçünün sonucu her hücrede farklı olabilir.
Oluşturduğunuz ölçünün tanımı, kaynak veri tablosuyla birlikte kaydedilir. PivotTable Alanları listesinde görünür ve çalışma kitabının tüm kullanıcıları tarafından kullanılabilir.
Daha ayrıntılı bilgi için bkz. Power Pivot'ta Ölçüler.
Formül Çubuğunu Kullanarak Formül Oluşturma
excel gibiPower Pivot, yazma ve söz dizimi hatalarını en aza indirmek için formül oluşturmayı ve düzenlemeyi kolaylaştırmak için bir formül çubuğu ve Otomatik Tamamlama işlevselliği sağlar.
Tablonun adını girmek için Tablonun adını yazmaya başlayın. Formül Otomatik Tamamlama, bu harflerle başlayan geçerli adları içeren bir açılan liste sağlar.
Sütunun adını girmek için Köşeli ayraç yazın ve geçerli tablodaki sütun listesinden sütunu seçin. Başka bir tablodan bir sütun için, tablo adının ilk harflerini yazmaya başlayın ve ardından Otomatik Tamamlama açılan listesinden sütunu seçin.
Daha fazla ayrıntı ve formül oluşturma yönergeleri için bkz. Power Pivot'ta Hesaplamalar için Formül Oluşturma.
Otomatik Tamamlama Kullanma İpuçları
Formül Otomatik Tamamlama'yı iç içe işlevlerle var olan bir formülün ortasında 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.
Sabitler için oluşturduğunuz tanımlı adlar Otomatik Tamamlama açılan listesinde görüntülenmez, ancak yine de yazabilirsiniz.
Power Pivot işlevlerin kapatma parantezini eklemez veya parantezleri otomatik olarak eşleştirmez. Her işlevin söz dizimsel olarak doğru olduğundan veya formülü kaydedemediğinden veya kullanamayacağından emin olmalısınız.
Formülde Birden Çok İşlev Kullanma
İş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 yerleştirme, formül oluşturmayı veya sorun gidermeyi zorlaştırabilir.
Birçok DAX işlevi yalnızca iç içe yerleştirilmiş işlevler olarak kullanılmak üzere 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.
Not: İşlevlerin iç içe yerleştirilmeleriyle ilgili bazı sınırlar, performansın sütunlar arasındaki bağımlılıkların gerektirdiği çok sayıda hesaplamadan etkilenmemesini sağlamak için ölçüler içinde bulunur.
DAX İşlevleri ile Excel İşlevlerini Karşılaştırma
DAX işlev kitaplığı Excel işlev kitaplığını temel alır, ancak kitaplıkların birçok farklılığı vardır. Bu bölümde, Excel işlevleriyle DAX işlevleri arasındaki farklar ve benzerlikler özetlenmektedir.
-
Birçok DAX işlevi, Excel işlevleriyle aynı ada ve genel davranışa sahiptir, ancak farklı giriş türlerini alacak şekilde değiştirilmiştir ve bazı durumlarda farklı bir veri türü döndürebilir. Genel olarak, bir Excel formülünde DAX işlevlerini kullanamaz veya bazı değişiklikler yapmadan Power Pivot 'de Excel formüllerini kullanamazsınız.
-
DAX işlevleri hiçbir zaman bir hücre başvuru veya aralığı başvuru olarak almaz, ancak bunun yerine DAX işlevleri başvuru olarak bir sütun veya tablo alır.
-
DAX tarih ve saat işlevleri bir tarih saat veri türü döndürür. Buna karşılık, Excel tarih ve saat işlevleri tarihi seri numarası olarak temsil eden bir tamsayı döndürür.
-
Yeni DAX işlevlerinin çoğu bir değer tablosu döndürür veya giriş olarak bir değer tablosunu temel alarak hesaplamalar yapar. Buna karşılık, Excel'in tablo döndüren bir işlevi yoktur, ancak bazı işlevler dizilerle çalışabilir. Tüm tablo ve sütunlara kolayca başvurabilme özelliği, Power Pivot 'de yeni bir özelliktir.
-
DAX, Excel'deki dizi ve vektör arama işlevlerine benzer yeni arama işlevleri sağlar. Ancak, DAX işlevleri tablolar arasında bir ilişki kurulmasını gerektirir.
-
Bir sütundaki verilerin her zaman aynı veri türünde olması beklenir. Veriler aynı türde değilse, DAX sütunun tamamını tüm değerleri en uygun veri türüne dönüştürür.
DAX Veri Türleri
Farklı veri türlerini destekleyebilecek birçok farklı veri kaynağından verileri bir Power Pivot veri modeline aktarabilirsiniz. Verileri içeri aktardığınızda veya yüklediğinizde ve sonra verileri hesaplamalarda veya PivotTable'larda kullandığınızda, veriler Power Pivot veri türlerinden birine dönüştürülür. Veri türlerinin listesi için bkz. Veri Modellerindeki veri türleri.
Tablo veri türü, DAX'ta birçok yeni işlevin girişi veya çıkışı olarak kullanılan yeni bir veri türüdür. Örneğin, FİlTRE 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. Daha fazla bilgi için bkz. Power Pivot'ta toplamalar.
Formüller ve İlişkisel Model
Power Pivot penceresi, birden çok veri tablosuyla çalışabileceğiniz ve tabloları ilişkisel modelde bağlayabileceğiniz bir alandır. Bu veri modelinde tablolar ilişkilere göre birbirine bağlanır ve bu da diğer tablolardaki sütunlarla bağıntılar oluşturmanıza ve daha ilginç hesaplamalar oluşturmanıza olanak sağlar. Örneğin, ilişkili bir tablonun değerlerini toplayan ve sonra bu değeri tek bir hücreye kaydeden formüller oluşturabilirsiniz. Ya da ilişkili tablodaki satırları denetlemek için tablolara ve sütunlara filtre uygulayabilirsiniz. Daha fazla bilgi için bkz. Veri Modelindeki tablolar arasındaki ilişkiler.
Tabloları ilişkileri kullanarak bağlayabildiğiniz için PivotTable'larınız farklı tablolardaki birden çok sütundan veri de içerebilir.
Ancak formüller tabloların ve sütunların tamamıyla çalışabileceğinden, hesaplamaları Excel'dekinden farklı tasarlamanız gerekir.
-
Genel olarak, bir sütundaki DAX formülü her zaman sütundaki değer kümesinin tamamına uygulanır (hiçbir zaman yalnızca birkaç satıra veya hücreye uygulanmaz).
-
Power Pivot tablolarında her satırda her zaman aynı sayıda sütun olması ve sütundaki tüm satırların aynı veri türünü içermesi gerekir.
-
Tablolar bir ilişkiyle bağlandığında, anahtar olarak kullanılan iki sütunun çoğunlukla eşleşen değerlere sahip olduğundan emin olmanız beklenir. Power Pivot bilgi tutarlılığını zorlamadığından, bir anahtar sütununda eşleşmeyen değerler olması ve yine de bir ilişki oluşturmanız mümkündür. Ancak, boş veya eşleşmeyen değerlerin varlığı formüllerin sonuçlarını ve PivotTable'ların görünümünü etkileyebilir. Daha fazla bilgi için bkz . Power Pivot Formüllerinde aramalar.
-
İlişkileri kullanarak tabloları bağladığınızda, formüllerinizin değerlendirildiği kapsamı veya cmetin değerini büyütürsiniz. Örneğin, PivotTable'daki formüller PivotTable'daki tüm filtrelerden veya sütun ve satır başlıklarından etkilenebilir. Bağlamı işleyen formüller yazabilirsiniz, ancak bağlam da sonuçlarınızın tahmin etmeyebileceğiniz şekillerde değişmesine neden olabilir. Daha fazla bilgi için bkz. DAX Formüllerinde Bağlam.
FormülLerin Sonuçlarını Güncelleştirme
Data r efresh ve yeniden hesaplama karmaşık formüller, büyük miktarlarda veri veya dış veri kaynaklarından elde edilen veriler içeren bir veri modeli tasarlarken anlamanız gereken iki ayrı ama ilgili işlemdir.
Verileri yenilemek, çalışma kitabınızdaki verileri dış veri kaynağındaki yeni verilerle güncelleştirme işlemidir. Verileri belirttiğiniz aralıklarla el ile yenileyebilirsiniz. Ya da çalışma kitabını bir SharePoint sitesinde yayımladıysanız, dış kaynaklardan otomatik yenileme zamanlayabilirsiniz.
Yeniden hesaplama , formüllerin kendilerinde yapılan değişiklikleri yansıtmak ve temel alınan verilerdeki değişiklikleri yansıtmak için formüllerin sonuçlarını güncelleştirme işlemidir. Yeniden hesaplama performansı aşağıdaki yollarla etkileyebilir:
-
Hesaplanan sütun için, formülü her değiştirdiğinizde formülün sonucu her zaman sütunun tamamı için yeniden hesaplanmalıdır.
-
Ölçü için, ölçü PivotTable veya PivotChart bağlamında yerleştirilinceye kadar formülün sonuçları hesaplanmaz. Veriler üzerindeki filtreleri etkileyen herhangi bir satır veya sütun başlığını değiştirdiğinizde veya PivotTable'ı el ile yenilediğinizde de formül yeniden hesaplanır.
Formüllerle İlgili Sorunları Giderme
Formül yazarken oluşan hatalar
Bir formül tanımlarken hata alırsanız, formülde bir bozulma, anlam hatası veya hesaplama hatası olabilir.
En kolay çözüm, bozulmamış hatalardır. Bunlar genellikle eksik parantez veya virgül içerir. Tek tek işlevlerin söz dizimi hakkında yardım için bkz. DAX İşlev Başvurusu.
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 semantik ve hesaplama hatalarının nedeni aşağıdaki sorunlardan biri olabilir:
-
Formül var olmayan bir sütuna, tabloya veya işleve başvurur.
-
Formül doğru gibi görünür, ancak veri altyapısı verileri getirdiğinde tür uyuşmazlığı bulur ve bir hata oluşturur.
-
Formül, bir işleve yanlış sayıda veya parametre türü geçirir.
-
Formül, hata içeren farklı bir sütuna başvurur ve bu nedenle değerleri geçersizdir.
-
Formül, işlenmemiş bir sütuna başvurur; başka bir deyişle, meta verileri vardır ancak hesaplamalar için kullanılacak gerçek veri yoktur.
İlk dört durumda DAX, geçersiz formülü içeren sütunun tamamına bayrak ekler. Son durumda DAX, sütunun işlenmemiş durumda olduğunu belirtmek için sütunu griye döndürür.
Sütun değerlerini derecelendirme veya sıralama sırasında yanlış veya olağan dışı sonuçlar
NaN (Sayı Değil) değerini içeren bir sütunu sıralarken veya sıralarken yanlış veya beklenmeyen sonuçlar alabilirsiniz. Örneğin, bir hesaplama 0'ı 0'a böldüğünde Bir NaN sonucu döndürülür.
Bunun nedeni, formül altyapısının sayısal değerleri karşılaştırarak sıralama ve derecelendirme gerçekleştirmesi; Ancak, NaN sütundaki diğer sayılarla karşılaştırılamaz.
Doğru sonuçları sağlamak için, NaN değerlerini test etmek ve sayısal bir 0 değeri döndürmek için EĞER işlevini kullanarak koşullu deyimleri kullanabilirsiniz.
Analysis Services Tablolu Modelleri ve DirectQuery Modu ile Uyumluluk
Genel olarak, Power Pivot 'da oluşturduğunuz DAX formülleri Analysis Services tablolu modelleriyle tamamen uyumludur. Ancak, Power Pivot modelinizi bir Analysis Services örneğine geçirir ve ardından modeli DirectQuery modunda dağıtırsanız bazı sınırlamalar vardır.
-
Modeli DirectQuery modunda dağıtırsanız bazı DAX formülleri farklı sonuçlar döndürebilir.
-
Bazı formüller, modeli DirectQuery moduna dağıttığınızda doğrulama hatalarına neden olabilir çünkü formül ilişkisel veri kaynağında desteklenmeyen bir DAX işlevi içerir.
Daha fazla bilgi için SQL Server 2012 BooksOnline'daki Analysis Services tablosal modelleme belgelerine bakın.