CALCULATETABLE
Berlaku untuk: Kolom terhitung
Tabel terhitung
Ukur
perhitungan Visual
Mengevaluasi ekspresi tabel dalam konteks filter yang dimodifikasi.
Catatan
Ada juga fungsi CALCULATE . Ini melakukan fungsionalitas yang sama persis, kecuali memodifikasi konteks filter yang diterapkan ke ekspresi yang mengembalikan nilai skalar.
Sintaks
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parameter
Term | Definisi |
---|---|
expression | Ekspresi tabel yang akan dievaluasi. |
filter1, filter2,... | (Opsional) Ekspresi boolean atau ekspresi tabel yang menentukan filter, atau fungsi pengubah filter. |
Ekspresi yang digunakan sebagai parameter pertama harus berupa tabel model atau fungsi yang mengembalikan tabel.
Filter dapat berupa:
- Ekspresi filter Boolean
- Ekspresi filter tabel
- Memfilter fungsi modifikasi
Ketika ada beberapa filter, filter dievaluasi dengan menggunakan operator logis AND. Itu berarti semua kondisi harus TRUE pada saat yang sama.
Ekspresi filter Boolean
Filter ekspresi Boolean adalah ekspresi yang mengevaluasi ke TRUE atau FALSE. Ada beberapa aturan yang harus mereka patuhi:
- Mereka hanya dapat mereferensikan satu kolom.
- Mereka tidak dapat mereferensikan langkah-langkah.
- Mereka tidak dapat menggunakan fungsi CALCULATE berlapis.
Dimulai dengan rilis Power BI Desktop September 2021, berikut ini juga berlaku:
- Mereka tidak dapat menggunakan fungsi yang memindai atau mengembalikan tabel kecuali diteruskan sebagai argumen ke fungsi agregasi.
- Mereka dapat berisi fungsi agregasi yang mengembalikan nilai skalar.
Ekspresi filter tabel
Filter ekspresi tabel menerapkan objek tabel sebagai filter. Ini bisa menjadi referensi ke tabel model, tetapi kemungkinan besar itu adalah fungsi yang mengembalikan objek tabel. Anda dapat menggunakan fungsi FILTER untuk menerapkan kondisi filter kompleks, termasuk yang tidak dapat ditentukan oleh ekspresi filter Boolean.
Fungsi pengubah filter
Fungsi pengubah filter memungkinkan Anda untuk melakukan lebih dari sekadar menambahkan filter. Mereka memberi Anda kontrol tambahan saat memodifikasi konteks filter.
Fungsi | Tujuan |
---|---|
REMOVEFILTERS | Hapus semua filter, atau filter dari satu atau beberapa kolom tabel, atau dari semua kolom tabel tunggal. |
SEMUA 1, ALLEXCEPT, ALLNOBLANKROW | Hapus filter dari satu atau beberapa kolom, atau dari semua kolom tabel tunggal. |
KEEPFILTERS | Tambahkan filter tanpa menghapus filter yang ada pada kolom yang sama. |
USERELATIONSHIP | Libatkan hubungan yang tidak aktif antara kolom terkait, dalam hal ini hubungan aktif akan secara otomatis menjadi tidak aktif. |
CROSSFILTER | Ubah arah filter (dari keduanya menjadi tunggal, atau dari tunggal ke keduanya) atau nonaktifkan hubungan. |
1 Fungsi ALL dan variannya bereaksi sebagai pengubah filter dan sebagai fungsi yang mengembalikan objek tabel. Jika fungsi REMOVEFILTERS didukung oleh alat Anda, lebih baik menggunakannya untuk menghapus filter.
Nilai hasil
Tabel nilai.
Keterangan
Saat ekspresi filter disediakan, fungsi CALCULATETABLE memodifikasi konteks filter untuk mengevaluasi ekspresi. Untuk setiap ekspresi filter, ada dua kemungkinan hasil standar saat ekspresi filter tidak dibungkus dalam fungsi KEEPFILTERS:
- Jika kolom (atau tabel) tidak berada dalam konteks filter, filter baru akan ditambahkan ke konteks filter untuk mengevaluasi ekspresi.
- Jika kolom (atau tabel) sudah berada dalam konteks filter, filter yang ada akan ditimpa oleh filter baru untuk mengevaluasi ekspresi CALCULATETABLE.
Fungsi ini tidak didukung untuk digunakan dalam mode DirectQuery saat digunakan dalam kolom terhitung atau aturan keamanan tingkat baris (RLS).
Contoh
Contoh berikut menggunakan fungsi CALCULATETABLE untuk mendapatkan jumlah penjualan Internet untuk 2006. Nilai ini kemudian digunakan untuk menghitung rasio penjualan Internet dibandingkan dengan semua penjualan untuk tahun 2006.
Rumus berikut:
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
Ini menghasilkan tabel berikut:
Label Baris | Internet SalesAmount_USD | CalculateTable 2006 Internet Sales | Rasio Penjualan Internet ke 2006 |
---|---|---|---|
2005 | $2.627.031,40 | $5.681.440,58 | 0,46 |
2006 | $5.681.440,58 | $5.681.440,58 | 1 |
2007 | $8.705.066,67 | $5.681.440,58 | 1.53 |
2008 | $9.041.288,80 | $5.681.440,58 | 1,59 |
Total Keseluruhan | $26.054.827,45 | $5.681.440,58 | 4.59 |