Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sebagai pemodel data, umumnya Anda akan menulis ekspresi DAX yang perlu dievaluasi dalam konteks filter yang dimodifikasi. Misalnya, Anda dapat menulis definisi pengukuran untuk menghitung penjualan untuk "produk margin tinggi". Kami akan menjelaskan perhitungan ini nanti di artikel ini.
Nota
Artikel ini sangat relevan untuk perhitungan model yang menerapkan filter ke Impor tabel.
Fungsi CALCULATE dan CALCULATETABLEDAX adalah fungsi penting dan berguna. Mereka memungkinkan Anda menulis perhitungan yang menghapus atau menambahkan filter, atau mengubah jalur hubungan. Ini dilakukan dengan meneruskan argumen filter, yang merupakan ekspresi Boolean, ekspresi tabel, atau fungsi filter khusus. Kita hanya akan membahas Boolean dan ekspresi tabel dalam artikel ini.
Pertimbangkan definisi pengukuran berikut, yang menghitung penjualan produk merah dengan menggunakan ekspresi tabel. Ini akan menggantikan filter apa pun yang mungkin diterapkan ke tabel Produk
Red Sales =
CALCULATE(
[Sales],
FILTER('Product', 'Product'[Color] = "Red")
)
Fungsi
Berikut adalah definisi pengukuran yang ditingkatkan, yang menggunakan ekspresi Boolean alih-alih ekspresi tabel. Fungsi KEEPFILTERSDAX memastikan filter yang ada yang diterapkan ke kolom Warna dipertahankan, dan tidak digantikan.
Red Sales =
CALCULATE(
[Sales],
KEEPFILTERS('Product'[Color] = "Red")
)
Disarankan agar Anda meneruskan argumen filter sebagai ekspresi Boolean, jika memungkinkan. Ini karena tabel Impor model adalah penyimpanan kolom dalam memori. Mereka dioptimalkan secara eksplisit untuk memfilter kolom dengan efisien dengan cara ini.
Namun, ada pembatasan yang berlaku untuk ekspresi Boolean saat digunakan sebagai argumen filter. Mereka:
- Tidak dapat mereferensikan kolom dari beberapa tabel
- Tidak dapat mereferensikan ukuran
- Tidak dapat menggunakan fungsi CALCULATE berlapis
- Tidak dapat menggunakan fungsi yang memindai atau mengembalikan tabel
Ini berarti Anda harus menggunakan ekspresi tabel untuk persyaratan filter yang lebih kompleks.
Pertimbangkan sekarang definisi pengukuran yang berbeda. Persyaratannya adalah memperhitungkan penjualan, tetapi hanya untuk bulan-bulan di mana telah dicapai keuntungan.
Sales for Profitable Months =
CALCULATE(
[Sales],
FILTER(
VALUES('Date'[Month]),
[Profit] > 0
)
)
Dalam contoh ini, fungsi FILTER harus digunakan. Ini karena perlu mengevaluasi langkah-langkah Profit untuk menghilangkan bulan-bulan yang tidak mencapai keuntungan. Tidak dimungkinkan untuk menggunakan pengukuran dalam ekspresi Boolean saat digunakan sebagai argumen filter.
Rekomendasi
Untuk performa terbaik, disarankan Anda menggunakan ekspresi Boolean sebagai argumen filter, jika memungkinkan.
Oleh karena itu, fungsi FILTER hanya boleh digunakan jika perlu. Anda dapat menggunakannya untuk melakukan filter perbandingan kolom yang kompleks. Perbandingan kolom ini dapat melibatkan:
- Langkah
- Kolom lainnya
- Menggunakan fungsi ORDAX, atau operator logis OR (||)
Konten terkait
- fungsi Filter (DAX)
- Jalur pembelajaran: Gunakan DAX di Power BI Desktop
- Pertanyaan? Coba tanyakan Komunitas Power BI
- Saran? Memberikan kontribusi ide untuk meningkatkan Power BI