Aracılığıyla paylaş


Formüllerdeki Verilere Filtre Uygulama

Hesaplamalarda kullanılan kaynak verilerinden gelen değerleri sınırlamak için formüller içinde filtreler oluşturulabilir. Bu, formül girdisi olarak bir tablo belirterek ve sonra filtre ifadesi tanımlayarak yapılır. Sağladığınız filtre ifadesi verileri sorgulamak ve kaynak verilerin yalnızca alt kümesini döndürmek için kullanılır. Formülün sonuçları her güncelleştirildiğinde, verilerinizin geçerli bağlamına bağlı olarak filtre dinamik olarak uygulanır. Bu bölümde, Veri Çözümleme İfadeleri (DAX) formüllerinde filtrelerin nasıl oluşturulacağı açıklanmaktadır.

Formülde Kullanılan Bir Tabloda Filtre Oluşturma

Girdi olarak tablo alan formüllerde filtreler uygulayabilirsiniz. Belirtilen tablodan bir satır alt kümesini tanımlamak için, tablo adı girmek yerine FILTER işlevini kullanırsınız. Ardından bu alt küme özel toplamalar gibi işlemler için başka bir işleve geçirilir.

Örneğin, bayilerle ilgili sipariş bilgilerini içeren bir veri tablonuz olduğunu ve her bayinin satış miktarını hesaplamak istediğinizi varsayalım. Ancak, yalnızca yüksek değerli ürünlerinizden birden fazla satış yapmış olan bayilerin satış rakamlarını göstermek istiyorsunuz. DAX örnek çalışma kitabını temel alan aşağıdaki formülde, filtre kullanılarak bu hesaplamanın nasıl oluşturulabileceğinin bir örneği gösterilmektedir:

=SUMX( 
     FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Quantity] > 5 &&
     'ResellerSales_USD'[ProductStandardCost_USD] > 100), 
     'ResellerSales_USD'[SalesAmt]
     )
  • Formülün birinci bölümü, bağımsız değişken olarak bir tabloyu alan PowerPivot toplama işlevlerinden birini belirtir. SUMX tablo üzerinden bir toplam hesaplar.

  • Formülün ikinci bölümü, FILTER(table, expression), kullanılan SUMX veriyi belirtir. SUMX tablo sonucu veren bir tablo veya ifade gerektirir. Burada, tablodaki tüm verileri kullanmak yerine, tablodan hangi satırların kullanılacağını belirtmek için FILTER işlevini kullanırsınız.

    Filtre ifadesinin iki bölümü vardır: ilk bölüm filtre uygulanacak tablonun adını belirtir. İkinci bölüm ise filtre koşulu olarak kullanılacak ifadeyi tanımlar. Bu örnekte, 5 birimden fazla satış yapan bayiler ve bedeli 100 dolardan fazla olan ürünler için filtre uyguluyorsunuz. && işleci, satırın filtrelenmiş alt kümeye dahil olması için koşulun iki bölümünün de doğru olması gerektiğini belirten bir mantıksal EVET işlecidir.

  • Formülün üçüncü bölümü SUMX işlevine hangi değerlerin toplanacağını bildirir. Bu örnekte yalnızca satış tutarını kullanıyorsunuz.

Bir tablo döndüren FILTER gibi işlevlerin tabloyu veya satırları hiçbir zaman PowerPivot çalışma kitabına doğrudan döndürmediğini, her zaman başka bir işlevin içinde yer aldığını unutmayın. FILTER ve filtreleme için kullanılan diğer işlevler hakkında daha fazla bilgi ve diğer örnekler için, bkz. Filtre işlevleri (DAX).

[!NOT]

Filtre ifadesi içinde kullanıldığı bağlamdan etkilenir. Örneğin, ölçüde bir filtre kullanırsanız ve ölçü PivotTable'da veya PivotChart'ta kullanılırsa, döndürülen verilerin alt kümesi kullanıcının PivotTable'da uygulamış olduğu diğer filtrelerden veya Dilimleyicilerden etkilenebilir. Bağlam hakkında daha fazla bilgi için, bkz. DAX Formüllerinde Bağlam.

Yinelenenleri Kaldıran Filtreler

Belirli değerleri filtrelemeye ek olarak, başka bir tablodan veya sütundan benzersiz bir değer kümesi döndürebilirsiniz. Sütundaki benzersiz değerlerin sayısını saymak veya diğer işlemler için benzersiz değer listesini kullanmak istediğinizde, bu yararlı olabilir. DAX farklı değerler döndürmek için iki işlev sağlar: DISTINCT İşlevi ve VALUES İşlevi.

  • DISTINCT işlevi, işlevin bağımsız değişkeni olarak belirtilen tek bir sütunu inceler ve yalnızca farklı değerleri içeren yeni bir sütun döndürür.

  • VALUES işlevi aynı zamanda benzersiz değerler listesi döndürür, ancak bir de Bilinmeyen üyeyi döndürür. Bir ilişki ile birleştirilmiş iki tablodan gelen değerleri kullanırken, bir tabloda bir değerin eksik olup diğerinde varolduğu durumlarda, bu kullanışlıdır. Bilinmeyen üye hakkında daha fazla bilgi için, bkz. DAX Formüllerinde Bağlam.

Bu işlevlerin ikisi de tam bir değer sütunu döndürür; bu nedenle, işlevleri daha sonra başka bir işleve geçirilen bir değer listesi almak için kullanırsınız. Örneğin, belirli bir bayi tarafından satılan farklı ürünlerin listesini almak için aşağıdaki formülü kullanabilirsiniz (bunun benzersiz bir ürün anahtarı kullanır ve sonra COUNTROWS işlevini kullanarak listedeki ürünleri sayarsınız):

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

Bağlam Filtreleri Nasıl Etkiler

PivotTable'a veya PivotChart'a DAX formülü eklendiğinde, formülün sonuçları bağlamdan etkilenir. PowerPivot tablosunda çalışıyorsanız, bağlam geçerli satır ve onun değerleridir. PivotTable'da veya PivotChart'ta çalışıyorsanız, bağlam dilimleme veya filtreleme gibi işlemlerle tanımlanan veri kümesi veya alt kümesi anlamına gelir. PivotTable'ın veya PivotChart'ın tasarımı da kendi bağlamını getirir. Örneğin, satışları bölgeye veya yıla göre gruplandıran bir PivotTable oluşturursanız, PivotTable'da yalnızca o bölgeler ve yıllar için geçerli olan veriler görünür. Bu nedenle, PivotTable'a eklediğiniz tüm ölçüler sütun ve satır başlıklarının ve varsa ölçü formülündeki filtrelerin bağlamında hesaplanır.

Daha fazla bilgi için, bkz. DAX Formüllerinde Bağlam.

Filtreleri Kaldırma

Karmaşık formüllerle çalışırken, geçerli filtrelerin hangileri olduğunu tam olarak bilmek veya formülün filtre bölümünü değiştirmek isteyebilirsiniz. DAX, filtrelerin kaldırılmasını ve geçerli filtre bağlamının parçası olarak hangi sütunların korunacağının denetlenmesini sağlayan birkaç işlev sunar. Bu bölümde, bu işlevlerin formüldeki sonuçları nasıl etkilediğine genel bir bakış sağlanmaktadır.

ALL İşlevi ile Tüm Filtreleri Geçersiz Kılma

Daha önce uygulanmış olan tüm filtreleri geçersiz kılmak ve toplamayı veya başka bir işlemi gerçekleştiren işleve tablodaki tüm satırları döndürmek için ALL işlevini kullanabilirsiniz. ALL, işlevinde bağımsız değişken olarak tablo yerine bir veya daha fazla sütun kullanırsanız, ALL işlevi tüm bağlam filtrelerini yoksayarak tüm satırları döndürür.

[!NOT]

İlişkisel veritabanı terminolojisi bilginiz varsa, ALL işlevinin, tüm tabloların doğal sol dış birleştirmesini oluşturduğunu düşünebilirsiniz.

Örneğin, bir Sales ve Products tablolarınız olduğunu ve geçerli ürünün satış toplamının tüm ürünlerin satışlarına bölümünü hesaplayan bir formül oluşturmak istediğinizi varsayalım. Formülün ölçü içinde kullanılması durumunda, PivotTable kullanıcısının belirli bir ürünü (ürünün adının satırlarda olduğu) filtrelemek için Dilimleyiciyi kullanabileceği olgusu dikkate alınmak zorundadır. Bu nedenle, filtrelerden ve Dilimleyicilerden bağımsız olarak paydanın gerçek değerini elde etmek için, tüm filtreleri geçersiz kılmak üzere ALL işlevini eklemeniz gerekir. Aşağıdaki formül, önceki filtrelerin etkilerini geçersiz kılmak için ALL'un nasıl kullanılacağına bir örnektir:

=SUM (Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products)))
  • Formülün ilk bölümü olan SUM (Sales[Amount]) payı hesaplar.

  • Toplama geçerli bağlamı dikkate alır, yani hesaplanmış sütuna bir formül eklenirse satır bağlamı uygulanır ve bu formül PivotTable'a bir ölçü olarak eklendiğinde, PivotTable'a (filtre bağlamı) uygulanmış olan tüm filtreler geçerli olur.

  • Formülün ikinci bölümü paydayı hesaplar. ALL işlevi, Products tablosuna uygulanmış olabilen tüm filtreleri geçersiz kılar.

Ayrıntılı örnekler dahil daha fazla bilgi için, bkz. ALL İşlevi.

ALLEXCEPT İşlevi ile Belirli Filtreleri Geçersiz Kılma

ALLEXCEPT işlevi aynı zamanda varolan filtreleri geçersiz kılar, ancak varolan filtrelerin bazılarının korunmasını belirtebilirsiniz. ALLEXCEPT işlevinin bağımsız değişkenleri olarak gösterdiğiniz sütunlar, hangi sütunlara filtre uygulanmaya devam edileceğini belirtir. Çoğu sütundaki (tümünde değil) filtreleri geçersiz kılmak istiyorsanız, ALLEXCEPT işlevi ALL işlevinden daha kullanışlıdır. Birçok farklı sütunda filtrelenebilecek PivotTable'lar oluştururken ve formülde kullanılan değerleri denetlemek istediğinizde, ALLEXCEPT işlevi özellikle kullanışlıdır. ALLEXCEPT'in PivotTable'da kullanımının ayrıntılı bir örneği dahil daha fazla bilgi için, bkz. ALLEXCEPT İşlevi.

Ayrıca bkz.

Diğer Kaynaklar

PowerPivot'taki Verileri Filtreleme ve Sıralama

Filtre işlevleri (DAX)