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.
Berlaku untuk: kolom terhitung![]()
Tabel terhitung
Ukur
Perhitungan visual
Mengevaluasi ekspresi dalam konteks filter yang dimodifikasi.
Nota
Ada juga fungsi CALCULATETABLE. Ini melakukan fungsionalitas yang sama persis, kecuali memodifikasi konteks filter diterapkan ke ekspresi yang mengembalikan objek tabel .
Sintaksis
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
Parameter
| Istilah | Definisi |
|---|---|
expression |
Ekspresi yang akan dievaluasi. |
filter1, filter2,… |
(Opsional) Ekspresi boolean atau ekspresi tabel yang menentukan filter, atau fungsi pengubah filter. |
Ekspresi yang Anda gunakan sebagai parameter pertama berfungsi seperti ukuran.
Filter dapat berupa:
- Ekspresi filter Boolean
- Ekspresi filter tabel
- Memfilter fungsi modifikasi
Saat Anda menggunakan beberapa filter, Anda dapat mengevaluasinya dengan menggunakan AND operator logis (&&), yang berarti semua kondisi harus TRUE, atau oleh OR operator logis (||), yang berarti salah satu kondisi dapat benar. Untuk informasi selengkapnya, lihat DAX operator logis operator>.
Ekspresi filter Boolean
Filter ekspresi Boolean adalah ekspresi yang mengevaluasi ke TRUE atau FALSE. Ini harus mengikuti beberapa aturan:
Ini dapat mereferensikan kolom dari satu tabel.
Ini tidak dapat mereferensikan ukuran.
Ini tidak dapat menggunakan fungsi berlapis CALCULATE .
Ini tidak dapat menggunakan fungsi yang memindai atau mengembalikan tabel kecuali Anda meneruskannya sebagai argumen ke fungsi agregasi.
Ini dapat berisi fungsi agregasi yang mengembalikan nilai skalar. Contohnya:
Total sales on the last selected date = CALCULATE ( SUM ( Sales[Sales Amount] ), 'Sales'[OrderDateKey] = MAX ( 'Sales'[OrderDateKey] ) )
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 FILTER fungsi untuk menerapkan kondisi filter yang kompleks, termasuk yang tidak dapat Anda tentukan oleh ekspresi filter Boolean.
Fungsi pengubah filter
Fungsi pengubah filter memungkinkan Anda melakukan lebih dari sekadar menambahkan filter. Mereka memberi Anda kontrol ekstra saat memodifikasi konteks filter.
| Fungsi | Maksud |
|---|---|
| REMOVEFILTERS | Hapus semua filter, atau filter dari satu atau beberapa kolom tabel, atau dari semua kolom tabel tunggal. |
| ALL 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 tidak aktif antara kolom terkait, dalam hal ini hubungan aktif 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 alat Anda mendukung REMOVEFILTERS fungsi , gunakan untuk menghapus filter.
Mengembalikan nilai
Nilai yang dihasilkan dari ekspresi.
Komentar
Saat Anda memberikan ekspresi filter, CALCULATE fungsi memodifikasi konteks filter untuk mengevaluasi ekspresi. Untuk setiap ekspresi filter, ada dua hasil standar saat ekspresi filter tidak dibungkus dalam KEEPFILTERS fungsi:
- Jika kolom atau tabel tidak berada dalam konteks filter, filter baru ditambahkan ke konteks filter untuk mengevaluasi ekspresi.
- Jika kolom atau tabel sudah berada dalam konteks filter, filter yang ada ditimpa oleh filter baru untuk mengevaluasi CALCULATE ekspresi.
CALCULATE Menggunakan fungsi tanpa filter mencapai persyaratan tertentu. Ini mentransisikan konteks baris untuk memfilter konteks. Transisi ini diperlukan ketika ekspresi (bukan ukuran model) yang meringkas data model perlu dievaluasi dalam konteks baris. Skenario ini dapat terjadi dalam rumus kolom terhitung atau saat ekspresi dalam fungsi iterator dievaluasi. Saat Anda menggunakan pengukuran model dalam konteks baris, transisi konteks bersifat otomatis.
-
Fungsi ini tidak didukung untuk digunakan dalam mode DirectQuery saat digunakan dalam kolom terhitung atau aturan keamanan tingkat baris (RLS).
Contoh
Contoh dalam artikel ini dapat digunakan dengan contoh model Power BI Desktop Adventure Works DW 2020. Untuk mendapatkan model, lihat DAX contoh model.
Definisi pengukuran tabel Penjualan
Blue Revenue =
CALCULATE ( SUM ( Sales[Sales Amount] ), 'Product'[Color] = "Blue" )
| Golongan | Jumlah Penjualan | Pendapatan Biru |
|---|---|---|
| Aksesoris | $1.272.057,89 | $165.406,62 |
| Sepeda | $94.620.526,21 | $8.374.313,88 |
| Pakaian | $2.117.613,45 | $259.488,37 |
| Komponen | $11.799.076,66 | $803.642,10 |
| Total | $109.809.274,20 | $9.602.850,97 |
Fungsi CALCULATE mengevaluasi jumlah tabel Saleskolom Jumlah Penjualan dalam konteks filter yang dimodifikasi. Filter baru ditambahkan ke tabel Produk
Definisi pengukuran tabel Sales berikut menghasilkan rasio penjualan atas penjualan untuk semua saluran penjualan.
Revenue % Total Channel =
DIVIDE (
SUM ( Sales[Sales Amount] ),
CALCULATE (
SUM ( Sales[Sales Amount] ),
REMOVEFILTERS ( 'Sales Order'[Channel] )
)
)
| Channel | Jumlah Penjualan | Pendapatan % Total Saluran |
|---|---|---|
| internet | $29.358.677,22 | 26.74% |
| Reseller | $80.450.596,98 | 73.26% |
| Total | $109.809.274,20 | 100.00% |
Fungsi DIVIDE membagi ekspresi yang menjumlahkan tabel Salesnilai kolom Jumlah Penjualan (dalam konteks filter) dengan ekspresi yang sama dalam konteks filter yang dimodifikasi. Ini adalah fungsi CALCULATE yang memodifikasi konteks filter dengan menggunakan fungsi REMOVEFILTERS, yang merupakan fungsi pengubah filter. Ini menghapus filter dari tabel Sales Orderkolom Saluran.
Definisi kolom terhitung tabel Pelanggan
Customer Segment =
IF (
CALCULATE (
SUM ( Sales[Sales Amount] ),
ALLEXCEPT ( Customer, Customer[CustomerKey] )
) < 2500,
"Low",
"High"
)
| Segmen Pelanggan | Jumlah Pelanggan | Jumlah Penjualan |
|---|---|---|
| High | 4,637 | $102.670.663,09 |
| Low | 13,848 | $7.138.611,11 |
| Total | 18,485 | $109.809.274,20 |
Dalam contoh ini, konteks baris dikonversi ke konteks filter. Ini dikenal sebagai transisi konteks . Fungsi
Konten terkait
- konteks Filter
- Konteks baris
- CALCULATETABLE fungsi
- Fungsi filter