Baca dalam bahasa Inggris

Bagikan melalui


Operator DAX

Bahasa Ekspresi Analisis Data (DAX) menggunakan operator untuk membuat ekspresi yang membandingkan nilai, melakukan perhitungan aritmatika, atau bekerja dengan string.

Jenis operator

Ada empat jenis operator perhitungan yang berbeda: aritmatika, perbandingan, perangkaian teks, dan logis.

Operator aritmatika

Untuk melakukan operasi matematika dasar seperti penambahan, pengurangan, atau perkalian; menggabungkan angka; dan menghasilkan hasil numerik, gunakan operator aritmatika berikut.

Operator aritmatika Arti Contoh
+ (tanda plus) Penambahan 3+3
- (tanda minus) Pengurangan atau tanda 3-1-1
* (tanda bintang) Perkalian 3*3
/ (garis miring) Divisi 3/3
^ (tanda sisipan) Pemangkatan 16^4

Catatan

Tanda plus dapat berfungsi baik sebagai operator biner dan sebagai operator unary . Operator biner memerlukan angka di kedua sisinya dan melakukan penambahan. Saat Anda menggunakan nilai dalam rumus DAX di kedua sisi operator biner, DAX mencoba mengonversi nilai ke jenis data numerik jika nilai tersebut belum berupa angka. Sebaliknya, operator unary dapat diterapkan ke semua jenis argumen. Simbol plus tidak memengaruhi jenis atau nilai dan hanya diabaikan, sedangkan operator minus membuat nilai negatif, jika diterapkan ke nilai numerik.

Operator perbandingan

Anda dapat membandingkan dua nilai dengan operator berikut. Ketika dua nilai dibandingkan dengan menggunakan operator ini, hasilnya adalah nilai logis, baik TRUE atau FALSE.

Operator perbandingan Arti Contoh
= Sama dengan [Wilayah] = "AS"
== Sama persis dengan [Wilayah] == "AS"
> Lebih besar dari [Tanggal Penjualan] > "Jan 2009"
< Kurang dari [Tanggal Penjualan] < "1 Jan 2009"
>= Lebih besar dari atau sama dengan [Jumlah] >= 20000
<= Kurang dari atau sama dengan [Jumlah] <= 100
<> Tidak sama dengan [Wilayah] <> "AS"

Semua operator perbandingan kecuali == perlakukan BLANK sama dengan angka 0, string kosong "", DATE(1899, 12, 30), atau FALSE. Akibatnya, [Kolom] = 0 akan benar ketika nilai [Kolom] adalah 0 atau KOSONG. Sebaliknya, [Kolom] == 0 hanya benar jika nilai [Kolom] adalah 0.

Operator penggabungan teks

Gunakan ampersand (&) untuk menyatukan, atau menggabungkan, dua atau lebih string teks untuk menghasilkan satu teks.

Pengolah Teks Arti Contoh
& (dan-dan) Menyambungkan, atau menggabungkan, dua nilai untuk menghasilkan satu nilai teks berkelanjutan [Region] & ", " & [City]

Operator logika

Gunakan operator logis (&&) dan (||) untuk menggabungkan ekspresi untuk menghasilkan satu hasil.

Operator teks Arti Contoh
&&(ampersand ganda) Membuat kondisi AND di antara dua ekspresi yang masing-masing memiliki hasil Boolean. Jika kedua ekspresi mengembalikan TRUE, kombinasi ekspresi juga mengembalikan TRUE; jika tidak, kombinasi mengembalikan FALSE. ([Region] = "France") && ([BikeBuyer] = "yes"))
|| (simbol pipa ganda) Membuat kondisi 'OR' antara dua ekspresi logis. Jika salah satu ekspresi mengembalikan TRUE, hasilnya adalah TRUE; hanya ketika kedua ekspresi adalah FALSE, hasilnya adalah FALSE. (([Region] = "France") || ([BikeBuyer] = "yes"))
IN Membuat kondisi OR logis di antara setiap baris yang dibandingkan dengan tabel. Catatan: Sintaks konstruktor tabel menggunakan tanda kurung kurawal. 'Product'[Color] IN { "Red", "Blue", "Black" }

Operator dan urutan prioritas

Dalam beberapa kasus, urutan penghitungan yang dilakukan dapat memengaruhi nilai Return; oleh karena itu, penting untuk memahami bagaimana pesanan ditentukan dan bagaimana Anda dapat mengubah urutan untuk mendapatkan hasil yang diinginkan.

Urutan penghitungan

Ekspresi mengevaluasi operator dan nilai dalam urutan tertentu. Semua ekspresi selalu dimulai dengan tanda sama dengan (=). Tanda sama dengan menunjukkan bahwa karakter berikutnya merupakan ekspresi.

Mengikuti tanda sama dengan adalah elemen yang akan dihitung (operand), yang dipisahkan oleh operator perhitungan. Ekspresi selalu dibaca dari kiri ke kanan, tetapi urutan di mana elemen dikelompokkan dapat dikontrol ke beberapa derajat dengan menggunakan tanda kurung.

Prioritas operator

Jika Anda menggabungkan beberapa operator dalam satu rumus, operasi diurutkan sesuai dengan tabel berikut. Jika operator memiliki nilai prioritas yang sama, operator diurutkan dari kiri ke kanan. Misalnya, jika ekspresi berisi operator perkalian dan pembagian, ekspresi dievaluasi dalam urutan muncul dalam ekspresi, dari kiri ke kanan.

Operator Deskripsi
^ Pemangkatan
Tanda (seperti –1)
* dan / Perkalian dan pembagian
+ dan Penambahan dan pengurangan
& Menggabungkan dua string teks (perangkaian)
=,==,<,>,<=,>=,<>,IN Perbandingan
NOT NOT (operator unar)

Menggunakan tanda kurung untuk mengontrol urutan perhitungan

Untuk mengubah urutan evaluasi, Anda harus mengapit tanda kurung bagian rumus yang harus dihitung terlebih dahulu. Misalnya, rumus berikut menghasilkan 11 karena perkalian dihitung sebelum penambahan. Rumus mengalikan 2 dengan 3, lalu menambahkan 5 ke hasilnya.

=5+2*3  

Sebaliknya, jika Anda menggunakan tanda kurung untuk mengubah sintaks, urutan diubah sehingga 5 dan 2 ditambahkan bersama-sama, dan hasilnya dikalikan dengan 3 untuk menghasilkan 21.

=(5+2)*3  

Dalam contoh berikut, tanda kurung di sekitar bagian pertama rumus memaksa perhitungan untuk mengevaluasi ekspresi (3 + 0.25) terlebih dahulu lalu membagi hasilnya dengan hasil ekspresi, (3 - 0.25).

=(3 + 0.25)/(3 - 0.25)  

Dalam contoh berikut, operator eksponensial diterapkan terlebih dahulu, sesuai dengan aturan prioritas untuk operator, lalu operator tanda diterapkan. Hasil untuk ekspresi ini adalah -4.

=-2^2  

Untuk memastikan bahwa operator tanda diterapkan ke nilai numerik terlebih dahulu, Anda dapat menggunakan tanda kurung untuk mengontrol operator, seperti yang ditunjukkan dalam contoh berikut. Hasil untuk ekspresi ini adalah 4.

= (-2)^2  

Kompatibilitas

DAX dengan mudah menangani dan membandingkan berbagai jenis data, seperti Microsoft Excel. Namun, mesin komputasi yang mendasar didasarkan pada SQL Server Analysis Services dan menyediakan fitur lanjutan tambahan dari penyimpanan data relasional, termasuk dukungan yang lebih kaya untuk jenis tanggal dan waktu. Oleh karena itu, dalam beberapa kasus hasil perhitungan atau perilaku fungsi mungkin tidak sama seperti di Excel. Selain itu, DAX mendukung lebih banyak tipe data daripada Excel. Bagian ini menjelaskan perbedaan utama.

Memaksa tipe data operand

Secara umum, dua operand di sisi kiri dan kanan operator apa pun harus memiliki jenis data yang sama. Namun, jika jenis data berbeda, DAX akan mengonversinya ke jenis data umum untuk menerapkan operator dalam beberapa kasus:

  1. Kedua operan dikonversi ke jenis data umum terbesar yang mungkin.
  2. Operator diterapkan, jika memungkinkan.

Misalnya, Anda memiliki dua angka yang ingin Anda gabungkan. Satu angka dihasilkan dari sebuah rumus, seperti =[Price] * .20, dan hasilnya mungkin mengandung banyak angka desimal. Angka lainnya adalah bilangan bulat yang telah disediakan sebagai nilai string.

Dalam hal ini, DAX akan mengonversi kedua angka menjadi angka riil dalam format numerik, menggunakan format numerik terbesar yang dapat menyimpan kedua jenis angka. Kemudian DAX akan menerapkan perkalian.

Bergantung pada kombinasi jenis data, koersi jenis mungkin tidak diterapkan untuk operasi perbandingan. Untuk daftar lengkap tipe data yang didukung oleh DAX, lihat jenis Data yang didukung dalam model tabular dan jenis Data di Power BI Desktop.

Bilangan bulat, Angka Riil, Mata Uang, Tanggal/Waktu dan Kosong dianggap numerik untuk tujuan perbandingan. Kosong akan bernilai nol dalam melakukan perbandingan. Kombinasi jenis data berikut didukung untuk operasi perbandingan.

Tipe Data Sisi Kiri Tipe Data di Sisi Kanan
Numerik Numerik
Boolean Boolean
String Tali

Perbandingan tipe data campuran lainnya akan mengembalikan kesalahan. Misalnya, rumus seperti ="1" > 0 mengembalikan kesalahan yang menyatakan bahwa operasi perbandingan DAX tidak mendukung perbandingan nilai tipe Teks dengan nilai tipe Bilangan Bulat.

Jenis Data yang digunakan dalam DAX Tipe Data yang digunakan di Excel
Angka (I8, R8) Angka (R8)
Tali Tali
Boolean Boolean
TanggalWaktu Varian
Mata uang Mata uang

Perbedaan urutan prioritas

Urutan operasi prioritas dalam rumus DAX pada dasarnya sama dengan yang digunakan oleh Microsoft Excel, tetapi beberapa operator Excel tidak didukung, seperti persen. Selain itu, rentang tidak didukung.

Oleh karena itu, setiap kali Anda menyalin dan menempelkan rumus dari Excel, pastikan untuk meninjau rumus dengan hati-hati, karena beberapa operator atau elemen dalam rumus mungkin tidak valid. Ketika ada keraguan tentang urutan operasi yang dilakukan, disarankan Anda menggunakan tanda kurung untuk mengontrol urutan operasi dan menghapus ambiguitas apa pun tentang hasilnya.

sintaks DAX
penamaan parameter DAX