Bağlam, bir formülün sonuçlarının geçerli satır veya hücre seçimini ve ayrıca ilgili verileri yansıtacak şekilde değiştirebileceği dinamik analiz gerçekleştirmenizi sağlar. Bağlamı anlamak ve bağlamı etkili bir şekilde kullanmak, yüksek performanslı formüller oluşturmak, dinamik analizler yapmak ve formüllerdeki sorunları gidermek için çok önemlidir.
Bu bölüm farklı bağlam türlerini tanımlar: satır bağlamı, sorgu bağlamı ve filtre bağlamı. Hesaplanmış sütunlardaki ve PivotTable'lardaki formüller için bağlamı nasıl değerlendiren açıklanmaktadır.
Bu makalenin son bölümünde, formüllerin sonuçlarının bağlama göre nasıl değiştiğini gösteren ayrıntılı örneklerin bağlantıları sağlanır.
Bağlamı Anlama
Power Pivot 'deki formüller PivotTable'a uygulanan filtrelerden, tablolar arasındaki ilişkilerden ve formüllerde kullanılan filtrelerden etkilenebilir. Bağlam, dinamik analiz gerçekleştirmeyi mümkün kılar. Bağlamı anlamak, formül oluşturmak ve sorun gidermek için önemlidir.
Farklı bağlam türleri vardır: satır bağlamı, sorgu bağlamı ve filtre bağlamı.
Satır bağlamı "geçerli satır" olarak düşünülebilir. Hesaplanmış bir sütun oluşturduysanız, satır bağlamı her bir satırdaki değerlerden ve geçerli satırla ilişkili sütunlardaki değerlerden oluşur. Ayrıca, geçerli satırdan bir değer alan ve ardından tablonun tamamından işlem gerçekleştirirken bu değeri kullanan bazı işlevler (EARLIER ve EARLIEST) vardır.
Sorgu bağlamı, satır ve sütun üst bilgilerine bağlı olarak PivotTable'daki her hücre için örtük olarak oluşturulan verilerin alt kümesini ifade eder.
Filtre bağlamı, satıra uygulanmış olan veya formül içindeki filtre ifadeleriyle tanımlanan filtre kısıtlamalarına bağlı olarak her sütunda izin verilen değer kümesidir.
Satır Bağlamı
Hesaplanan 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 ilgili diğer tablonun tüm değerlerini de içerir.
Örneğin, aynı tablodan iki sütunu bir araya getiren =[Navlun] + [Vergi] adlı bir hesaplanmış sütun oluşturduğunuzu varsayalım. Bu formül, excel tablosundaki formüller gibi davranır ve bu formül aynı satırdaki değerlere otomatik olarak başvurur. Tabloların aralıklardan farklı olduğunu unutmayın: Aralık gösterimini kullanarak geçerli satırdan önceki satırdaki bir değere başvuramazsınız ve tablo veya hücredeki rastgele tek bir değere başvuramazsınız. Her zaman tablo ve sütunlarla çalışmanız gerekir.
Satır bağlamı, ilişkili tablolardaki hangi satırların geçerli satırla ilişkili olduğunu belirlemek için tablolar arasındaki ilişkileri otomatik olarak 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.
= [Navlun] + RELATED('Region'[TaxRate])
Bu formül, Bölge tablosundan geçerli bölgenin vergi oranını alır. Tabloları bağlayan anahtarı bilmeniz veya belirtmeniz gerekmez.
Birden Çok Satır Bağlamı
Ayrıca, DAX bir tablo üzerinde hesaplamaları yineleyen işlevler içerir. Bu işlevlerin birden çok geçerli satırı ve geçerli satır bağlamı olabilir. Programlama terimleriyle iç ve dış döngüde yinelenen formüller oluşturabilirsiniz.
Örneğin, çalışma kitabınızda Ürünler tablosu ve Satış tablosu olduğunu varsayalım. 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 isteyebilirsiniz.
Excel'de, bu hesaplama için bir dizi ara özet gerekir ve veriler değişirse yeniden oluşturulması gerekir. Excel'in güçlü bir kullanıcısıysanız, işi yapacak dizi formülleri oluşturabilirsiniz. Alternatif olarak, ilişkisel bir veritabanında iç içe alt seçim yazabilirsiniz.
Ancak DAX ile doğru değeri döndüren tek bir formül oluşturabilirsiniz ve tablolara veri eklediğinizde sonuçlar otomatik olarak güncelleştirilir.
=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])
Bu formülün ayrıntılı bir kılavuzu için bkz. EARLIER İşlevi.
Kısacası, EARLIER işlevi geçerli işlemden önceki işlemden satır bağlamını depolar. İşlev her zaman iki bağlam kümesini bellekte 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ı
Sorgu bağlamı, bir formül için örtük olarak alınan verilerin alt kümesini ifade eder. PivotTable'daki bir hücreye ölçü veya başka bir değer alanı bıraktığınızda, Power Pivot altyapısı bağlamı belirlemek için satır ve sütun üst bilgilerini, Dilimleyicileri ve rapor filtrelerini inceler. Ardından Power Pivot PivotTable'daki her hücreyi doldurmak için gerekli hesaplamaları yapar. Alınan veri kümesi, her hücre için sorgu bağlamıdır.
Bağlam, formülü yerleştirdiğiniz yere bağlı olarak değişebileceğinden formülün sonuçları, formülü çok sayıda gruplandırma ve filtre içeren bir PivotTable'da mı, yoksa filtresiz ve minimum bağlamlı hesaplanmış bir sütunda mı kullandığınıza bağlı olarak da değişir.
Örneğin, Sales tablosunun Profit sütunundaki değerleri toplayan bu basit formülü oluşturduğunuzu varsayalım:
=TOPLA('Satışlar'[Kar])
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ınız tüm bölgeler, tüm ürünler, tüm yıllar vb. için kar elde eder.
Ancak, genellikle aynı sonucu yüzlerce kez görmek istemezsiniz, ancak bunun yerine belirli bir yılın, belirli bir ülkenin veya bölgenin, belirli bir ürünün veya bunların bir bileşiminin kârını almak ve ardından genel bir toplam elde etmek istersiniz.
PivotTable'da, sütun ve satır üst bilgilerini ekleyerek veya kaldırarak ve Dilimleyiciler ekleyerek veya kaldırarak bağlamı değiştirmek kolaydır. Yukarıdakine benzer bir formülü ölçü olarak oluşturabilir ve ardından PivotTable'a bırakabilirsiniz. PivotTable'a sütun veya satır başlıkları eklediğinizde ölçünün değerlendirildiği sorgu bağlamını değiştirirsiniz. Dilimleme ve filtreleme işlemleri bağlamı da etkiler. Bu nedenle, PivotTable'da kullanılan formül her hücre için farklı bir sorgu bağlamında değerlendirilir.
Filtre Bağlamı
Filtre bağlamı, bir sütunda veya tabloda izin verilen değer kümesinde filtre kısıtlamaları belirttiğinizde, formüldeki bağımsız değişkenler kullanılarak eklenir. Filtre bağlamı, satır bağlamı veya sorgu bağlamı gibi diğer bağlamların üzerine uygulanır.
Örneğin PivotTable, sorgu bağlamındaki önceki bölümde açıklandığı gibi, her hücre için değerlerini satır ve sütun başlıklarına göre hesaplar. Ancak PivotTable'a eklediğiniz ölçüler veya hesaplanmış sütunlar içinde, formül tarafından kullanılan değerleri denetlemek için filtre ifadeleri belirtebilirsiniz. Belirli sütunlardaki filtreleri de seçmeli olarak temizleyebilirsiniz.
Formüller içinde filtre oluşturma hakkında daha fazla bilgi için bkz . Filtre işlevleri.
Genel toplamlar oluşturmak için filtrelerin nasıl temizlendiğini gösteren bir örnek için bkz. ALL İşlevi.
Formüller içindeki filtreleri seçmeli olarak temizleme ve uygulama örnekleri için bkz. ALLEXCEPT İşlevi.
Bu nedenle, formüllerin sonuçlarını yorumlarken filtre bağlamını bilmeniz için PivotTable'da kullanılan ölçülerin veya formüllerin tanımını gözden geçirmeniz gerekir.
Formüllerde Bağlamı Belirleme
Bir formül oluşturduğunuzda, Excel için Power Pivot önce genel söz dizimini denetler, sonra da sağladığınız sütunların ve tabloların adlarını geçerli bağlamdaki olası sütunlara ve tablolara göre denetler. Power Pivot formül tarafından belirtilen sütunları ve tabloları bulamazsa bir hata alırsınız.
Bağlam, önceki bölümlerde açıklandığı gibi, çalışma kitabındaki kullanılabilir tablolar, tablolar arasındaki ilişkiler ve uygulanmış olan filtreler kullanılarak belirlenir.
Örneğin, yeni bir tabloya veri aktardıysanız ve herhangi bir filtre uygulamadıysanız, tablodaki sütun kümesinin tamamı geçerli bağlamın bir parçasıdır. İlişkilerle bağlantılı birden çok tablonuz varsa ve sütun başlıkları eklenerek ve Dilimleyiciler kullanılarak filtrelenmiş bir PivotTable'da çalışıyorsanız, bağlam ilgili tabloları ve verilerdeki tüm filtreleri içerir.
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ı ve ardından PivotTable'larda basit formüllerle denemeler yapmaya 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 de verilmiştir.
Formüllerdeki Bağlam Örnekleri
-
RELATED işlevi, geçerli satırın bağlamını ilişkili sütuna değer içerecek şekilde genişletir. Bu sayede aramalar gerçekleştirebilirsiniz. Bu konudaki örnekte filtreleme ve satır bağlamının etkileşimi gösterilmektedir.
-
FİlTRE işlevi, geçerli bağlama eklenecek satırları belirtmenize olanak tanır. Bu konudaki örneklerde, toplamaları gerçekleştiren diğer işlevlere filtre ekleme işlemi de gösterilmektedir.
-
ALL işlevi, bir formül içindeki bağlamı ayarlar. Sorgu bağlamı sonucunda uygulanan filtreleri geçersiz kılmak için bunu kullanabilirsiniz.
-
ALLEXCEPT işlevi, belirttiğiniz filtre dışındaki tüm filtreleri kaldırmanıza olanak tanır. Her iki konu da formül oluşturma ve karmaşık bağlamları anlama konusunda size yol gösteren örnekler içerir.
-
EARLIER ve EARLIEST işlevleri, bir iç döngüden bir değere başvururken hesaplamalar yaparak tablolar arasında döngü yapmanıza olanak sağlar. Özyineleme kavramını ve iç ve dış döngüleri biliyorsanız, EARLIER ve EARLIEST işlevlerinin sağladığı gücü takdir edersiniz. Bu kavramlarda yeniyseniz, iç ve dış bağlamların hesaplamalarda nasıl kullanıldığını görmek için örnekteki adımları dikkatle izlemeniz gerekir.
Bilgi Tutarlılığı
Bu bölümde, ilişkilerle bağlantılı Power Pivot tablolardaki eksik değerlerle ilgili bazı gelişmiş kavramlar ele alınmaktadır. Birden çok tablo ve karmaşık formül içeren çalışma kitaplarınız varsa ve sonuçları anlama konusunda yardım almak istiyorsanız bu bölüm sizin için yararlı olabilir.
İlişkisel veri kavramlarını yeni kullanıyorsanız, önce İlişkilere Genel Bakış giriş konusunu okumanızı öneririz.
Bilgi Tutarlılığı ve Power Pivot İlişkileri
Power Pivot, geçerli bir ilişki tanımlamak için iki tablo arasında bilgi tutarlılığının zorunlu kılınmasını gerektirmez. Bunun yerine, her bire çok ilişkisinin "bir" ucunda boş bir satır oluşturulur ve ilgili tablodan eşleşmeyen tüm satırları işlemek için kullanılır. Etkili bir şekilde SQL dış birleşimi gibi davranır.
PivotTable'larda, verileri ilişkinin bir tarafına göre gruplandırıyorsanız, ilişkinin birçok tarafındaki eşleşmeyen veriler birlikte gruplandırılır ve boş satır başlığıyla toplamlara eklenir. Boş başlık kabaca "bilinmeyen üye" ile eşdeğerdir.
Bilinmeyen Üyeyi Anlama
Bilinmeyen üye kavramı, SQL Server Analysis Services gibi çok boyutlu veritabanı sistemleriyle çalıştıysanız size tanıdık geliyor olabilir. Terim sizin için yeniyse, aşağıdaki örnekte bilinmeyen üyenin ne olduğu ve hesaplamaları nasıl etkilediği açıklanmaktadır.
Her mağaza için aylık satışları toplayan bir hesaplama oluşturduğunuzu, ancak Sales tablosundaki bir sütunda mağaza adı için bir değer eksik olduğunu varsayalım. Mağaza ve Satış tablolarının mağaza adıyla bağlantılı olduğu göz önünde bulundurulduğunda formülde ne olmasını beklersiniz? PivotTable grubu veya mevcut bir mağazayla ilgili olmayan satış rakamlarını nasıl görüntülemeli?
Bu sorun, büyük olgu veri tablolarının olguları kategorilere ayırmak ve hesaplamak için kullanılan depolar, bölgeler ve diğer öznitelikler hakkında bilgi içeren boyut tablolarıyla mantıksal olarak ilişkili olması gereken veri ambarlarında yaygın bir sorundur. Sorunu çözmek için, var olan bir varlıkla ilgisi olmayan tüm yeni olgular geçici olarak bilinmeyen üyeye atanır. Bu nedenle, ilgisiz olgular PivotTable'da boş bir başlık altında gruplandırılmış olarak görünür.
Boş Değerlerin Işlenmesi ile Boş Satır Karşılaştırması
Boş değerler, bilinmeyen üyeye uyum sağlamak için eklenen boş satırlardan farklıdır. Boş değer null değerleri, boş dizeleri ve diğer eksik değerleri temsil etmek için kullanılan özel bir değerdir. Boş değer ve diğer DAX veri türleri hakkında daha fazla bilgi için bkz. Veri Modellerindeki veri türleri.