Veri Çözümleme İfadeleri (DAX) ilk başta biraz korkutucu gelebilir, ancak isminin sizi aldatmasına izin vermeyin. DAX ile ilgili temel bilgileri anlamak gerçekten oldukça kolaydır. Her şeyden önce, DAX bir programlama dili DEĞİLDİR. DAX bir formül dilidir. Hesaplanan Sütunlar ve Ölçüler (hesaplanan alanlar olarak da bilinir) için özel hesaplamalar tanımlamak üzere DAX'ı kullanabilirsiniz. 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şlevler içerir.
DAX Formüllerini Anlama
DAX formülleri Excel formüllerine çok benzer. Eşittir işareti oluşturmak için, bir eşittir işareti yazıp arkasına işlev adını veya ifadesini ve gerekli değerleri veya bağımsız değişkenleri yazarsınız. Excel gibi DAX da dizelerle çalışmak, tarih ve saatleri kullanarak hesaplamalar yapmak veya koşullu değerler oluşturmak için kullanabileceğiniz çeşitli işlevler sunar.
Bununla birlikte, DAX formülleri aşağıdaki önemli yönlerden farklıdır:
- Hesaplamaları satır satır özelleştirmek istiyorsanız, DAX'ta bağlama göre değişen hesaplamalar yapmak için geçerli satır değerini veya ilgili bir değeri kullanmanıza olanak tanıyan işlevler bulunur.
- DAX, sonuç olarak tek bir değer yerine bir tablo döndüren bir işlev türü içerir. Bu işlevler, diğer işlevlere girdi sağlamak için kullanılabilir.
- DAX'taki Akıllı Zaman Gösterimi İşlevleri, tarih aralıkları kullanarak hesaplamalara olanak tanır ve paralel dönemler arasında sonuçları karşılaştırır.
DAX Formülleri nerede kullanılır?
Power Pivot'ta hesaplanan sütunlarda veya hesaplanan alanlarda formüller oluşturabilirsiniz.
Hesaplanan Sütunlar
Hesaplanan sütun, var olan bir Power Pivot tablosuna eklediğiniz sütundur. Sütundaki değerleri yapıştırmak veya içeri aktarmak yerine sütun değerlerini tanımlayan bir DAX formülü oluşturun. Power Pivot tablosunu bir PivotTable'a (veya PivotChart'a) eklerseniz, hesaplanan sütun da aynı diğer veri sütunları gibi kullanılabilir.
Hesaplanmış sütunlardaki formüller, Excel'de oluşturduğunuz formüllere çok benzer. Ancak Excel'den farklı olarak, bir tablodaki farklı satırlar için farklı bir formül oluşturamazsınız; bunun yerine DAX formülü otomatik olarak tüm sütuna uygulanır.
Bir sütun bir formül içerdiğinde, değer her satır için hesaplanır. Siz formülü oluşturur oluşturmaz sütun için sonuçlar 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çülere ve diğer hesaplanan sütunlara dayalı hesaplanan sütunlar oluşturabilirsiniz. Ancak, kafa karıştırıcı sonuçlara yol açabileceğinden, hesaplanan sütun ve hesaplama için aynı adı kullanmaktan kaçının. Bir sütuna başvururken, yanlışlıkla bir ölçünün çağrılmasını önlemek için tam nitelikli bir sütun başvurusu kullanmak en iyisidir.
Daha ayrıntılı bilgi için bkz: Power Pivot'ta Hesaplanan Sütunlar.
Ölçü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 COUNT veya SUM gibi standart toplama işlevlerine dayanabilir ya da DAX kullanarak kendi formülünüzü tanımlayabilirsiniz. PivotTable'ın Değerler alanında bir ölçü kullanılır. Hesaplanan sonuçları PivotTable'ın farklı bir alanına yerleştirmek isterseniz, bunun yerine hesaplanan sütun kullanın.
Açık bir ölçü için formül tanımladığınızda, ölçüyü bir PivotTable'a ekleyene kadar hiçbir şey olmaz. Ölçüyü eklediğinizde, PivotTable'ın Değerler alanındaki her hücre için formül hesaplanır. Satır ve sütun başlıklarının her bileşimi için bir sonuç oluşturulduğundan, hesaplamanın sonucu her hücrede farklı olabilir.
Oluşturduğunuz ölçünün tanımı, kaynak veri tablosuyla birlikte kaydedilir. PivotTable Alanları listesinde gösterilir 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 gibi Power Pivot da formül oluşturmayı ve düzenlemeyi kolaylaştıran bir formül çubuğunun yanı sıra yazım ve söz dizimi hatalarını en aza indirmek için Otomatik Tamamlama işlevi sağlar.
Tablo adı girmek için Tablonun adını yazmaya başlayın. Formülü Otomatik Tamamlama, söz konusu harflerle başlayan geçerli adların bulunduğu bir açılan liste sağlar.
Sütun adı girmek için Bir köşeli ayraç yazın ve geçerli tablodaki sütunlar listesinden sütunu seçin. Başka bir tablonun sütunu için, tablo adının ilk harflerini yazmaya başlayın ve sonra Otomatik Tamamlama açılan listesinden sütunu seçin.
Diğer ayrıntılar ve formülleri oluşturma kılavuzu için, Power Pivot'ta Hesaplamalar için Formüller Oluşturma konusuna bakın.
Otomatik Tamamlama'yı kullanma ipuçları
Formülü Otomatik Tamamlama özelliğini, iç içe işlevler içeren var olan bir formülün ortasında kullanabilirsiniz. Açılır listede değerleri görüntülemek için, ekleme noktasından hemen önceki metin 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 bunları yazabilirsiniz.
Power Pivot işlevlere kapatma parantezi eklemez veya parantezleri otomatik olarak eşleştirmez. Her işlevin sözdizimsel olarak doğru olduğundan emin olmalısınız; yoksa formülü kaydedemez veya kullanamazsınız.
Formülde birden çok iş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 kullanırsınız. Hesaplanmış sütunlarda işlevleri en çok 64 düzeyde iç içe yerleştirebilirsiniz. Ancak, iç içe yerleştirme, formül oluşturmayı veya formül sorunlarını gidermeyi zorlaştırabilir.
Pek çok DAX işlevi, yalnızca iç içe geçmiş 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 girdi 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
Performansın sütunlar arasındaki bağımlılıkların gerektirdiği birçok hesaplamadan etkilenmemesini sağlamak için, ölçülerin içinde işlevlerin iç içe kullanılmasına ilişkin bazı sınırlar bulunur.
DAX İşlevleri ile Excel İşlevlerini Karşılaştırma
DAX işlev kitaplığı Excel işlev kitaplığını temel alır, ama kitaplıklar arasında birçok farklılık vardır. Bu bölümde Excel işlevleriyle DAX işlevleri arasındaki farklar ve benzerlikler özetlenir.
- Pek çok DAX işlevi, Excel işlevleriyle aynı ada ve aynı genel davranışa sahiptir, ancak farklı türde girişler alacak ve bazı durumlarda farklı bir veri türü döndürebilecek şekilde değiştirilmişlerdir. Genel olarak, bazı değişiklikler yapmadan Excel formüllerinde DAX işlevlerini veya Power Pivot'ta Excel formüllerini kullanamazsınız.
- DAX işlevleri hiçbir zaman hücre başvurusunu veya aralığı başvuru olarak almaz, bunun yerine DAX işlevleri bir sütunu veya tabloyu başvuru olarak alır.
- DAX tarih ve saat işlevleri bir tarihsaat veri türü döndürür. Buna karşılık, Excel tarih ve saat işlevleri bir tarihi seri numarası olarak gösteren bir tamsayı döndürür.
- Yeni DAX işlevlerinin çoğu ya bir değer tablosu döndürür ya da girdi olarak bir değer tablosuna dayalı hesaplamalar yapar. Buna karşılık, Excel'de tablo döndüren bir işlev yoktur ancak bazı işlevler dizilerle çalışabilir. Tabloların ve sütunların tamamına kolayca başvurabilme yeteneği Power Pivot'taki yeni bir özelliktir.
- DAX, Excel'deki dizi ve vektör arama işlevlerine benzer yeni arama işlevleri sağlar. Bununla birlikte, DAX işlevleri tablolar arasında bir ilişki kurulmasını gerektirir.
- Sütundaki verilerin her zaman aynı veri türünde olması beklenir. Verilerin türü aynı değilse, DAX sütunun tamamını, tüm değerleri en iyi barındıran veri türüyle değiştirir.
DAX Veri Türleri
Power Pivot veri modeline, farklı veri türlerini destekleyebilecek birçok farklı veri kaynağından veri aktarabilirsiniz. Verileri içeri aktardığınızda veya yüklediğinizde ve ardından 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ü, birçok yeni işlevde giriş veya çıkış olarak kullanılan DAX'taki yeni bir veri türüdür. Örneğin, FİLTRE işlevi bir tabloyu girdi olarak alır ve yalnızca filtre koşullarına uyan satırları içeren başka bir tablo çıkarır. Tablo işlevleriyle toplama işlevlerini birleştirerek, dinamik olarak tanımlanmış veri kümeleri üzerinde karmaşık hesaplamalar gerçekleştirebilirsiniz. Daha fazla bilgi için bkz: Power Pivot'ta Toplamalar.
Formüller ve İlişkisel Model
Power Pivot penceresi, birden fazla veri tablosuyla çalışabileceğiniz ve tabloları ilişkisel modele bağlayabileceğiniz bir alandır. Bu veri modelinde, tablolar birbirine ilişkilerle bağlıdır ve bu sayede diğer tablolardaki sütunlarla bağıntılar oluşturabilir ve daha ilginç hesaplamalar oluşturabilirsiniz. Örneğin, ilişkili bir tablonun değerlerini toplayan ve bu değeri tek bir hücreye kaydeden formüller oluşturabilirsiniz. Ya da ilişkili tablodan satırları denetlemek için, tablolara ve sütunlara filtre uygulayabilirsiniz. Daha fazla bilgi için bkz: Veri Modelinde tablolar arasındaki ilişkiler.
İlişkileri kullanarak tabloları bağlayabildiğiniz için PivotTable'larınız farklı tablolarda bulunan birden çok sütundan veriler de içerebilir.
Bununla birlikte, formüller tabloların ve sütunların tamamında çalışabileceğinden, hesaplamaları Excel'dekinden farklı bir şekilde tasarlamanız gerekir.
- Genel olarak, bir sütundaki DAX formülü her zaman sütundaki değer kümesinin tamamına uygulanır (yalnızca birkaç satıra veya hücreye uygulanmaz).
- Power Pivot'taki tabloların her satırda her zaman aynı sayıda sütunu olması ve bir sütundaki tüm satırların aynı veri türünü içermesi gerekir.
- Tablolar bir ilişkiyle birbirine bağlandığında, anahtar olarak kullanılan iki sütunun çoğunlukla birbiriyle eşleşen değerlere sahip olduğundan emin olmanız beklenir. Power Pivot bilgi tutarlılığını zorunlu kılmadığından, anahtar sütununda eşleşmeyen değerler bulunup yine de ilişki oluşturmak mümkündür. Bununla birlikte, 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 bağlamı genişletirsiniz. Ö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 sonuçlarınızın tahmin edemeyeceğiniz şekillerde değişmesine de neden olabilir. Daha fazla bilgi için DAX Formüllerinde Bağlam bölümüne bakın.
Formüllerin sonuçlarını güncelleştirme
Veri yenileme 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ı ancak birbiriyle ilgili işlemlerdir.
Verileri yenileme, çalışma kitabınızdaki verileri bir dış veri kaynağından gelen yeni verilerle güncelleştirme işlemidir. Verileri belirttiğiniz aralıklarla el ile yenileyebilirsiniz. Çalışma kitabını bir SharePoint sitesinde yayımladıysanız dış kaynaklardan otomatik yenileme de zamanlayabilirsiniz.
Yeniden hesaplama , formüllerin sonuçlarını, formüllerin kendisinde yapılan değişiklikleri ve bu değişiklikleri temel alınan verilerde yansıtacak şekilde güncelleştirme işlemidir. Yeniden hesaplama, performansı aşağıdaki şekillerde etkileyebilir:
- Hesaplanan bir sütun için, formülü her değiştirişinizde formülün sonucunun tüm sütun için yeniden hesaplanması gerekir.
- Ölçü için, ölçü PivotTable veya PivotChart bağlamına yerleştirilmedikçe formülün sonuçları hesaplanmaz. Verilerdeki filtreleri etkileyen herhangi bir satır veya sütun başlığını değiştirdiğinizde ya da PivotTable'ı el ile yenilediğinizde de formül yeniden hesaplanır.
Formül sorunlarını giderme
Formül yazarken hatalar
Formülü tanımlarken hata alırsanız, formülde bir sözdizimi hatası, anlam hatası veya hesaplama hatası olabilir.
Sözdizimsel hatalar çözülmesi en kolay olanlardır. Genellikle eksik parantez veya virgül içerirler. Tek tek işlevlerin söz dizimi konusunda yardım için DAX İşlev Başvurusu'na bakın.
Diğer hata türü, söz diziminin doğru olduğu ancak başvurulan değer veya sütunun formül bağlamında bir anlam ifade etmediği durumlarda oluşur. Bu tür anlam ve hesaplama hatalarına aşağıdaki sorunlardan herhangi biri neden olabilir:
- Formül var olmayan bir sütuna, tabloya veya işleve başvuruyor.
- Formül doğru gibi görünür, ancak veri altyapısı verileri getirdiğinde bir tür uyuşmazlığı bulur ve bir hata verir.
- Formül işleve yanlış sayıda veya türde parametre geçiriyor.
- Formül hata içeren farklı bir sütuna başvuruyordur ve bu nedenle değerleri geçersizdir.
- Formül işlenmemiş bir sütuna başvuruyor; yani meta verileri var, ancak hesaplamalar için kullanılacak gerçek veriler yok.
İ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 belirtmek için sütunu grileştirir.
Sütun değerlerini sıralarken veya sıralarken yanlış veya olağandışı sonuçlar
NaN (Sayı Değil) değerini içeren bir sütunu sıraladığınızda veya sıraladığınızda, yanlış veya beklenmeyen sonuçlar alabilirsiniz. Örneğin, bir hesaplama 0'ı 0'a böldüğünde, bir NaN sonucu verilir.
Bunun nedeni, formül motorunun sayısal değerleri karşılaştırarak sıralama ve sıralama yapmasıdır; ancak NaN sütunundaki diğer sayılarla karşılaştırılamaz.
Doğru sonuçlar elde etmek için, EĞER işlevini kullanarak koşullu deyimler kullanarak NaN değerlerini test edebilir ve sayısal bir 0 değeri döndürebilirsiniz.
Analysis Services Tablolu Modelleri ve DirectQuery Modu ile Uyumluluk
Genel olarak, Power Pivot'ta oluşturduğunuz DAX formülleri Analysis Services tablolu modelleriyle tamamen uyumludur. Bununla birlikte, Power Pivot modelinizi bir Analysis Services örneğine geçirir ve ardından modeli DirectQuery modunda dağıtırsanız bazı sınırlamalar olacaktı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ğına karşı desteklenmeyen bir DAX işlevi içerir.
Daha fazla bilgi için SQL ServerSQL Server 2012 BooksOnline bölümündeki Analysis Services tablo modelleme belgelerine bakın.