DAX Formüllerindeki Verileri Filtreleme

Uygulandığı Öğe
Microsoft 365 için Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

Bu bölümde, Veri Çözümleme İfadeleri (DAX) formülleri içinde filtrelerin nasıl oluşturulduğu açıklanır. Hesaplamalarda kullanılan kaynak verilerden gelen değerleri kısıtlamak için, formüllerin içinde filtreler oluşturabilirsiniz. Bunu yapmak için, formüle giriş olarak bir tablo belirtin ve ardından bir filtre ifadesi tanımlayın. Sağladığınız filtre ifadesi verileri sorgulamak ve kaynak verilerin yalnızca bir alt kümesini döndürmek için kullanılır. Filtre, verilerinizin geçerli bağlamına bağlı olarak formülün sonuçlarını her güncelleştirdiğinizde dinamik olarak uygulanır.

Bu makalede

Formülde kullanılan bir Tabloda Filtre oluşturma

Girdi olarak tablo alan formüllere filtre uygulayabilirsiniz. Tablo adı girmek yerine, belirtilen tablodan bir satır alt kümesi tanımlamak için FİLTRELE işlevini kullanırsınız. Bu alt küme daha sonra özel toplamalar gibi işlemler için başka bir işleve geçirilir.

Örneğin, bayiler hakkındaki sipariş bilgilerini içeren bir veri tablonuz olduğunu ve her bir bayinin ne kadar sattığını hesaplamak istediğinizi varsayalım. Ancak, satış tutarını yalnızca yüksek değerli ürünlerinizden birden fazla birim satan bayilere göstermek istiyorsunuz. DAX örnek çalışma kitabını temel alan aşağıdaki formül, filtre kullanarak bu hesaplamayı nasıl oluşturabileceğinize ilişkin bir örnek gösterir:

=SUMX(
     FİLTRE ('ResellerSales_USD', 'ResellerSales_USD'[Miktar] > 5 &&
     'ResellerSales_USD'[ProductStandardCost_USD] > 100),
     'ResellerSales_USD'[SalesAmt]
     )

  • Formülün ilk bölümünde, bağımsız değişken olarak bir tablo alan Power Pivot toplama işlevlerinden biri belirtilir. TOPX işlevi, tablo üzerinden bir toplam hesaplar.

  • Formülün FILTER(table, expression),ikinci bölümünde hangi verilerin kullanılacağı belirtilir SUMX . SUMX Tablo veya tabloyla sonuçlanan bir ifade gerekir. Burada, tablodaki tüm verileri kullanmak yerine tablodaki satırlardan hangilerinin kullanılacağını belirtmek için işlevi kullanırsınız FILTER .
    Filtre ifadesi iki bölümden oluşur: İlk bölüm, filtrenin uygulandığı tabloyu adlandırır. İkinci bölümde, filtre koşulu olarak kullanmak üzere bir ifade tanımlanır. Bu durumda, 5 birimden fazla satan bayileri ve maliyeti 100 TL'den fazla olan ürünleri filtreliyorsunuz. && işleci, mantıksal bir VE işlecidir ve satırın filtre uygulanmış alt kümeye ait olması için koşulun her iki bölümünün de doğru olması gerektiğini belirtir.

  • Formülün üçüncü bölümü işleve hangi değerlerin SUMX toplanması gerektiğini söyler. Bu durumda, yalnızca satış tutarını kullanıyorsunuz.
    Tablo döndüren FİLTRE gibi işlevlerin hiçbir zaman tablo veya satırları doğrudan döndürmediğini, ancak her zaman başka bir işleve eklendiğini unutmayın. FİLTRE ve filtreleme için kullanılan diğer işlevler hakkında daha fazla bilgi ve daha fazla örnek için bkz: Filtre İşlevleri (DAX).

    Not

    Filtre ifadesi, kullanıldığı bağlamdan etkilenir. Örneğin, bir ölçüde filtre kullanırsanız ve ölçü bir PivotTable veya PivotChart'ta kullanılıyorsa, döndürülen verilerin alt kümesi, kullanıcının PivotTable'da uyguladığı ek filtrelerden veya Dilimleyicilerden etkilenebilir. Bağlam hakkında daha fazla bilgi için DAX Formüllerinde Bağlam bölümüne bakın.

Yinelenenleri Kaldıran Filtreler

Belirli değerler için filtre uygulamaya ek olarak, başka bir tablo veya sütundan da benzersiz bir değer kümesi döndürebilirsiniz. Bir sütundaki benzersiz değerlerin sayısını hesaplamak veya diğer işlemler için benzersiz değerlerin 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şlev için bağımsız değişken olarak belirttiğiniz tek bir sütunu inceler ve yalnızca farklı değerleri içeren yeni bir sütun döndürür.
  • DEĞERLER işlevi de benzersiz değerlerin bir listesini döndürür, ancak Bilinmeyen üyeyi de döndürür. Bu özellik, bir ilişkiyle birleştirilen iki tablodaki değerleri kullandığınızda ve bir tabloda bir değer eksik olup diğerinde bulunduğunda kullanışlıdır. Bilinmeyen üye hakkında daha fazla bilgi için DAX Formüllerinde Bağlam bölümüne bakın.

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

=SATIRSAY(DISTINCT('ResellerSales_USD'[ÜrünAnahtarı]))

Sayfanın Başı

Bağlam filtreleri nasıl etkiler?

Bir DAX formülünü bir PivotTable veya PivotChart'a eklediğinizde, formülün sonuçları bağlamdan etkilenebilir. Power Pivot tablosunda çalışıyorsanız, bağlam geçerli satır ve onun değerleridir. Bir PivotTable 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 veya PivotChart'ın tasarımı da kendi bağlamını dayatar. Örneğin, satışları bölgeye ve yıla göre gruplandıran bir PivotTable oluşturursanız, PivotTable'da yalnızca söz konusu bölgelere ve yıllara uygulanan veriler gösterilir. Bu nedenle, PivotTable'a eklediğiniz tüm ölçümler sütun ve satır başlıkları bağlamına ek olarak ölçü formülündeki tüm filtrelere göre hesaplanır.

Daha fazla bilgi için DAX Formüllerinde Bağlam bölümüne bakın.

Sayfanın Başı

Filtreleri Çıkarma

Karmaşık formüllerle çalışırken, geçerli filtrelerin tam olarak ne olduğunu bilmek veya formülün filtre kısmında değişiklik yapmak isteyebilirsiniz. DAX, filtreleri kaldırmanıza ve geçerli filtre bağlamının parçası olarak hangi sütunların tutulacağını denetlemenize olanak tanıyan çeşitli işlevler sağlar. Bu bölümde, bu işlevlerin formüldeki sonuçları nasıl etkilediğine genel bir bakış sağlanır.

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

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

Not

İlişkisel veritabanı terminolojisini biliyorsanız, oluşturmayı tüm tabloların doğal sol dış birleşimini oluşturmak olarak düşünebilirsiniz ALL .

Örneğin, Satış ve Ürün tablolarınız olduğunu ve geçerli ürünün satış toplamını tüm ürünlerin satışlarına bölerek hesaplayacak bir formül oluşturmak istediğinizi varsayalım. Formülün bir ölçüde kullanılması durumunda, PivotTable kullanıcısının belirli bir ürüne filtre uygulamak için Dilimleyici kullanıyor olabileceği ve satırlarda ürün adının da bulunabileceği gerçeğini göz önünde bulundurmalısınız. Bu nedenle, filtrelerden veya 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, ALL işlevinin önceki filtrelerin etkilerini geçersiz kılmak için nasıl kullanılacağını gösteren bir örnektir:

=TOPLA (Satış[Tutar])/SUMX(Satış[Tutar], FİLTRELE(Satış, TÜMÜ(Ürünler)))

  • Formülün ilk bölümü olan TOPLA (Satış[Tutar]), payı hesaplar.
  • Toplama işlemi geçerli bağlamı dikkate alır; başka bir deyişle, formülü hesaplanan bir sütuna eklerseniz satır bağlamı uygulanır ve formülü bir ölçü olarak PivotTable'a eklerseniz, PivotTable'da uygulanan tüm filtreler (filtre bağlamı) uygulanır.
  • Formülün ikinci bölümünde payda hesaplanır. ALL işlevi, tabloya Products uygulanmış olabilecek tüm filtreleri geçersiz kılar.

Ayrıntılı örnekler de dahil olmak üzere daha fazla bilgi için ALL İşlevi'ne bakın.

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

ALLEXCEPT işlevi de varolan filtreleri geçersiz kılar, ama varolan filtrelerden bazılarının korunmasını belirtebilirsiniz. ALLEXCEPT işlevinin bağımsız değişkeni olarak adlandırdığınız sütunlar, hangi sütunların filtrelenmeye devam edeceğini belirtir. Tümünden değil de çoğu sütundan filtreleri geçersiz kılmak istiyorsanız, ALLEXCEPT ALL'dan daha kullanışlı olur. ALLEXCEPT işlevi, birçok farklı sütunda filtrelenebilecek PivotTable'lar oluştururken ve formülde kullanılan değerleri denetlemek istediğinizde özellikle kullanışlıdır. PivotTable'da ALLEXCEPT işlevinin nasıl kullanılacağına ilişkin ayrıntılı bir örnek de dahil olmak üzere daha fazla bilgi için bkz. ALLEXCEPT İşlevi.

Sayfanın Başı