Baca dalam bahasa Inggris

Bagikan melalui


KEEPFILTERS

Berlaku untuk: kolom terhitungTabel terhitungMeasurePerhitungan visual

Memodifikasi bagaimana filters diterapkan saat mengevaluasi fungsi CALCULATEorCALCULATETABLE.

Sintaksis

DAX
KEEPFILTERS(<expression>)  

Parameter

Istilah Definisi
expression Ekspresi apa pun.

Mengembalikan value

Tabel values.

Komentar

  • Anda menggunakan KEEPFILTERS dalam konteks CALCULATEandCALCULATETABLE fungsi, untuk mengambil alih perilaku standar fungsi tersebut.

  • Secara default, argumen filter dalam fungsi seperti CALCULATE digunakan sebagai konteks untuk mengevaluasi ekspresi, and seperti argumen filter untuk CALCULATEreplaceallfilters yang ada di atas kolom yang sama. Konteks baru yang dipengaruhi oleh argumen filter untuk CALCULATE hanya memengaruhi filters yang ada pada kolom yang disebutkan sebagai bagian dari argumen filter. Filters pada kolom selain yang disebutkan dalam argumen CALCULATEor fungsi related lainnya tetap dalam effectand tidak diubah.

  • Fungsi KEEPFILTERS memungkinkan Anda mengubah perilaku ini. Saat Anda menggunakan KEEPFILTERS, setiap filters yang ada dalam konteks saat ini dibandingkan dengan kolom dalam argumen filter, and persimpangan argumen tersebut digunakan sebagai konteks untuk mengevaluasi ekspresi. Net effect di atas satu kolom adalah kedua set argumen berlaku: argumen filter digunakan dalam CALCULATEandfilters dalam argumen fungsi KEEPFILTER. Dengan kata lain, sedangkan CALCULATEfiltersreplace konteks saat ini, KEEPFILTERS menambahkan filters ke konteks saat ini.

  • Fungsi ini not didukung untuk digunakan dalam mode DirectQuery saat digunakan dalam kolom terhitung or aturan keamanan tingkat baris (RLS).

Contoh

Contoh berikut membawa Anda melalui beberapa skenario umum yang menunjukkan penggunaan fungsi KEEPFILTERS sebagai bagian dari rumus CALCULATEorCALCULATETABLE.

Tiga ekspresi first mendapatkan data sederhana yang akan digunakan untuk perbandingan:

  • Internet Sales untuk negara bagian Washington.

  • Internet Sales untuk negara bagian Washington and Oregon (kedua negara bagian digabungkan).

  • Internet Sales untuk negara bagian Washington and provinsi British Columbia (kedua wilayah digabungkan).

Ekspresi keempat menghitung Internet Sales untuk Washington and Oregon, sementara filter untuk Washington and British Columbia diterapkan.

Ekspresi next menghitung Penjualan Internet untuk Washington and Oregon tetapi menggunakan KEEPFILTERS; filter untuk Washington and British Columbia adalah bagian dari konteks sebelumnya.

DAX
EVALUATE ROW(  
  "$$ in WA"  
    , CALCULATE('Internet Sales'[Internet Total Sales]  
                , 'Geography'[State Province Code]="WA"  
      )  
, "$$ in WA and OR"  
    , CALCULATE('Internet Sales'[Internet Total Sales]  
               , 'Geography'[State Province Code]="WA"   
                 || 'Geography'[State Province Code]="OR"  
      )  
, "$$ in WA and BC"  
    , CALCULATE('Internet Sales'[Internet Total Sales]  
               , 'Geography'[State Province Code]="WA"   
                 || 'Geography'[State Province Code]="BC"  
      )  
, "$$ in WA and OR ??"  
    , CALCULATE(  
          CALCULATE('Internet Sales'[Internet Total Sales]  
                    ,'Geography'[State Province Code]="WA"   
                      || 'Geography'[State Province Code]="OR"  
          )  
          , 'Geography'[State Province Code]="WA"   
            || 'Geography'[State Province Code]="BC"  
      )  
, "$$ in WA !!"  
    , CALCULATE(  
          CALCULATE('Internet Sales'[Internet Total Sales]  
                   , KEEPFILTERS('Geography'[State Province Code]="WA"   
                              || 'Geography'[State Province Code]="OR"  
                     )  
          )  
          , 'Geography'[State Province Code]="WA"   
            || 'Geography'[State Province Code]="BC"  
      )  
)  

Ketika ekspresi ini dievaluasi terhadap database sample AdventureWorks DW, hasil berikut diperoleh.

Kolom Value
[$$ in WA] $ 2.467.248,34
[$$ in WA and OR] $ 3.638.239,88
[$$ in WA and BC] $ 4.422.588,44
[$$ in WA and OR ??] $ 3.638.239,88
[$$ in WA !!] $ 2.467.248,34

Catatan

Hasil di atas diformat ke tabel, bukan satu baris, untuk tujuan pendidikan.

First, periksa ekspresi, [$$ in WA and OR ??]. Anda mungkin bertanya-tanya bagaimana rumus ini dapat mengembalikan value untuk penjualan di Washington and Oregon, karena ekspresi CALCULATE luar mencakup filter untuk Washington and British Columbia. Jawabannya adalah bahwa perilaku default CALCULATE mengambil alih filters luar dalam 'Geografi'[Kode Provinsi Negara Bagian] and menggantikan argumen filter sendiri, karena filters berlaku untuk kolom yang sama.

Next, periksa ekspresi, [$$ in WA !!]. Anda mungkin bertanya-tanya bagaimana rumus ini dapat mengembalikan value untuk penjualan di Washington and tidak lain, karena argumen filter mencakup Oregon and ekspresi CALCULATE luar mencakup filter di Washington and British Columbia. Jawabannya adalah bahwa KEEPFILTERS memodifikasi perilaku default CALCULATEand menambahkan filtertambahan . Karena persimpangan filters digunakan, nowfilter'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC") luar ditambahkan ke argumen filter'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR",. Karena keduanya filters berlaku untuk kolom yang sama, filter'Geography'[State Province Code]="WA" yang dihasilkan adalah filter yang diterapkan saat mengevaluasi ekspresi.

fungsi
fungsi
fungsi