Data Filter dalam Rumus DAX

Bagian ini menjelaskan cara membuat filter dalam rumus data Analysis Expressions (DAX). Anda dapat membuat filter dalam rumus, untuk membatasi nilai dari data sumber yang digunakan dalam penghitungan. Anda melakukan ini dengan menentukan tabel sebagai input ke rumus, lalu menentukan ekspresi filter. Ekspresi filter yang Anda sediakan digunakan untuk kueri data dan hanya mengembalikan subset data sumber. Filter diterapkan secara dinamis setiap kali Anda memperbarui hasil rumus, tergantung pada konteks data saat ini.

Di artikel ini

Membuat filter pada tabel yang digunakan dalam rumus

Anda dapat menerapkan filter dalam rumus yang mengambil tabel sebagai input. Sebagai ganti memasukkan nama tabel, Anda menggunakan fungsi FILTER untuk menentukan subset baris dari tabel yang ditentukan. Subset tersebut kemudian diteruskan ke fungsi lainnya, untuk operasi seperti agregasi kustom.

Misalnya, Anda memiliki tabel data yang berisi informasi pesanan tentang Penjual, dan Anda ingin menghitung berapa banyak penjual yang terjual. Namun, Anda ingin memperlihatkan jumlah penjualan untuk Penjual yang menjual beberapa unit produk dengan nilai lebih tinggi. Rumus berikut, berdasarkan pada buku kerja sampel DAX, memperlihatkan satu contoh cara membuat perhitungan ini dengan menggunakan filter:

= SUMX (
     FILTER (' ResellerSales_USD ', ' ResellerSales_USD ' [Quantity] > 5 &&
     ' ResellerSales_USD ' [ProductStandardCost_USD] > 100),
     ' ResellerSales_USD ' [SalesAmt]
     )

  • Bagian pertama dari rumus menentukan salah satu fungsi agregasi Power Pivot , yang mengambil tabel sebagai argumen. SUMX menghitung jumlah di atas tabel.

  • Bagian kedua dari rumus, FILTER(table, expression),mengatakan SUMX data yang digunakan. SUMX memerlukan tabel atau ekspresi yang menghasilkan tabel. Di sini, sebagai ganti menggunakan semua data dalam tabel, Anda menggunakan fungsi FILTER untuk menentukan baris mana dari tabel yang digunakan.

    Ekspresi filter memiliki dua bagian: bagian pertama menamai tabel tempat filter tersebut diterapkan. Bagian kedua menentukan ekspresi untuk digunakan sebagai kondisi filter. Dalam kasus ini, Anda memfilter pada penjual yang menjual lebih dari 5 unit dan produknya yang harganya lebih dari $100. Operator, &&, adalah logika dan operator, yang menunjukkan bahwa kedua bagian dari kondisi tersebut harus benar untuk baris yang menjadi bagian dari subset yang difilter.

  • Bagian ketiga dari rumus tersebut memberi tahu fungsi SUMX yang nilainya harus disimpulkan. Dalam kasus ini, Anda hanya menggunakan jumlah penjualan.

    Perhatikan bahwa fungsi seperti FILTER, yang mengembalikan tabel, tidak pernah mengembalikan tabel atau baris secara langsung, namun selalu disematkan di fungsi lain. Untuk informasi selengkapnya tentang FILTER dan fungsi lainnya yang digunakan untuk pemfilteran, termasuk contoh lainnya, lihat fungsi filter (Dax).

    Catatan: Ekspresi filter dipengaruhi oleh konteks yang digunakan. Misalnya, jika Anda menggunakan filter dalam ukuran, dan pengukuran digunakan dalam PivotTable atau PivotChart, subset data yang dikembalikan mungkin terpengaruh oleh filter atau pemotong tambahan yang telah diterapkan pengguna di PivotTable. Untuk informasi selengkapnya tentang konteks, lihat konteks dalam rumus Dax.

Filter yang menghapus duplikat

Selain memfilter untuk nilai tertentu, Anda bisa mengembalikan sekumpulan nilai unik dari tabel atau kolom lain. Ini dapat membantu ketika Anda ingin menghitung jumlah nilai unik dalam kolom, atau menggunakan daftar nilai unik untuk operasi lain. DAX menyediakan dua fungsi untuk mengembalikan nilai berbeda: fungsi fungsi dan nilaiyang berbeda .

  • Fungsi yang berbeda memeriksa satu kolom yang Anda tentukan sebagai argumen ke fungsi tersebut, dan mengembalikan kolom baru yang hanya berisi nilai yang berbeda.

  • Fungsi VALUES juga mengembalikan daftar nilai unik, tetapi juga mengembalikan anggota yang tidak diketahui. Ini berguna saat Anda menggunakan nilai dari dua tabel yang digabungkan dengan hubungan, dan nilai tidak ditemukan dalam satu tabel dan sajikan di yang lainnya. Untuk informasi selengkapnya tentang anggota yang tidak diketahui, lihat konteks dalam rumus Dax.

Kedua fungsi ini mengembalikan seluruh kolom nilai; oleh karena itu, Anda menggunakan fungsi untuk mendapatkan daftar nilai yang kemudian diteruskan ke fungsi lainnya. Misalnya, Anda bisa menggunakan rumus berikut ini untuk mendapatkan daftar produk yang berbeda yang dijual oleh Penjual tertentu, menggunakan kunci produk yang unik, lalu menghitung produk dalam daftar tersebut dengan menggunakan fungsi COUNTROWS:

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

Atas Halaman

Bagaimana konteks mempengaruhi filter

Saat Anda menambahkan rumus DAX ke PivotTable atau PivotChart, hasil rumus bisa dipengaruhi oleh konteks. Jika Anda bekerja dalam tabel Power Pivot , konteksnya adalah baris saat ini dan nilainya. Jika Anda bekerja dalam PivotTable atau PivotChart, konteks berarti himpunan atau subset data yang ditentukan oleh operasi seperti pengiris, atau pemfilteran. Desain PivotTable atau PivotChart juga memunculkan konteksnya sendiri. Misalnya, jika Anda membuat PivotTable yang mengelompokkan penjualan menurut kawasan dan tahun, hanya data yang berlaku pada kawasan dan tahun yang muncul di PivotTable. Oleh karena itu, pengukuran apa pun yang Anda tambahkan ke PivotTable dihitung dalam konteks judul kolom dan baris ditambah filter dalam rumus pengukuran.

Untuk informasi selengkapnya, lihat konteks dalam rumus Dax.

Atas Halaman

Menghapus filter

Saat bekerja dengan rumus kompleks, Anda mungkin ingin mengetahui dengan tepat apa filter saat ini, atau Anda mungkin ingin mengubah bagian filter rumus. DAX menyediakan beberapa fungsi yang memungkinkan Anda untuk menghapus filter, dan untuk mengontrol kolom yang dipertahankan sebagai bagian dari konteks filter saat ini. Bagian ini memberikan gambaran umum tentang bagaimana fungsi ini mempengaruhi hasil dalam sebuah rumus.

Mengganti semua filter dengan fungsi ALL

Anda dapat menggunakan fungsi ALL untuk mengesampingkan filter apa pun yang sebelumnya telah diterapkan, dan mengembalikan semua baris dalam tabel ke fungsi yang menjalankan agregat atau operasi lainnya. Jika Anda menggunakan satu atau beberapa kolom, sebagai ganti tabel, sebagai argumen untuk ALL, fungsi ALL mengembalikan semua baris, mengabaikan filter konteks apa pun.

Catatan: Jika Anda terbiasa dengan terminologi database relasional, Anda bisa memikirkan ALL sebagai menghasilkan gabungan luar dari semua tabel.

Misalnya, Anda memiliki tabel, penjualan dan produk, dan Anda ingin membuat rumus yang akan menghitung jumlah penjualan untuk produk saat ini yang dibagi dengan penjualan untuk semua produk. Anda harus mempertimbangkan kenyataan bahwa, jika rumus yang digunakan dalam ukuran, pengguna PivotTable mungkin menggunakan pemotong untuk memfilter produk tertentu, dengan nama produk di baris. Oleh karena itu, untuk mendapatkan nilai true dari penyebut tanpa memperhatikan filter atau pemotong apa pun, Anda harus menambahkan fungsi ALL untuk mengesampingkan filter apa pun. Rumus berikut ini adalah salah satu contoh cara menggunakan semua untuk mengesampingkan efek filter sebelumnya:

= SUM (Sales [Amount])/SUMX (Sales [Amount], FILTER (Sales, ALL (Products)))

  • Bagian pertama dari rumus, SUM (Sales [Amount]), menghitung pembilang.

  • Jumlah memperhitungkan konteks saat ini, yang berarti bahwa jika Anda menambahkan rumus ke dalam kolom terhitung, konteks baris diterapkan, dan jika Anda menambahkan rumus ke dalam PivotTable sebagai ukuran, setiap filter yang diterapkan di PivotTable (konteks filter) diterapkan.

  • Bagian kedua dari rumus, menghitung penyebut. Fungsi ALL mengesampingkan setiap filter yang mungkin diterapkan ke tabel Products .

Untuk informasi selengkapnya, termasuk contoh mendetail, lihat fungsi All.

Mengesampingkan filter tertentu dengan fungsi ALLEXCEPT

Fungsi ALLEXCEPT juga mengesampingkan filter yang sudah ada, tapi Anda bisa menentukan bahwa beberapa filter yang ada harus dipertahankan. Kolom yang Anda Namai sebagai argumen untuk fungsi ALLEXCEPT menentukan kolom mana yang akan terus difilter. Jika Anda ingin mengesampingkan filter dari sebagian besar kolom tapi tidak semua, ALLEXCEPT lebih mudah daripada semua. Fungsi ALLEXCEPT sangat berguna saat Anda membuat PivotTable yang mungkin difilter pada banyak kolom berbeda, dan Anda ingin mengontrol nilai yang digunakan dalam rumus. Untuk informasi selengkapnya, termasuk contoh mendetail tentang cara menggunakan ALLEXCEPT dalam PivotTable, lihat fungsi allexcept.

Atas Halaman

Catatan:  Halaman ini diterjemahkan menggunakan mesin dan mungkin terdapat kesalahan tata bahasa atau masalah keakuratan. Kami bertujuan menyediakan konten yang bermanfaat untuk Anda. Dapatkah Anda memberi tahu kami apakah informasi ini bermanfaat untuk Anda? Berikut adalah artikel dalam bahasa Inggris untuk referensi.

Perlu bantuan lainnya?

Kembangkan keterampilan Office Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung ke Office Insiders

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×