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.

Operasi Aritmatika

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

Operator aritmatika Makna Contoh
+ (tanda plus) Tambahan 3+3
– (tanda minus) Pengurangan atau tanda tangan 3–1–1
* (tanda bintang) Perkalian 3*3
/ (garis miring) Divisi 3/3
^ (tanda kurus) Eksponensial 16^4

Catatan

Tanda plus dapat berfungsi baik sebagai operator biner maupun sebagai operator unary. Operator biner memerlukan angka di kedua sisi operator dan melakukan penambahan. Saat Anda menggunakan nilai dalam rumus DAX di kedua sisi operator biner, DAX mencoba mentransmisikan nilai ke jenis data numerik jika belum 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 Makna Contoh
= Sama dengan [Wilayah] = "AS"
== Ketat sama dengan [Wilayah] == "AS"
> Lebih dari [Tanggal Penjualan] > "Jan 2009"
< Kurang dari [Tanggal Penjualan] < "Jan 1 2009"
>= Lebih 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 penggalian teks

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

Operator teks Makna Contoh
& (ampersand) Koneksi, atau menggabungkan, dua nilai untuk menghasilkan satu nilai teks berkelanjutan [Wilayah] & ", " & [Kota]

Operator logis

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

Operator teks Makna 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. ([Wilayah] = "Prancis") && ([BikeBuyer] = "ya"))
|| (simbol pipa ganda) Membuat kondisi OR di antara dua ekspresi logis. Jika salah satu ekspresi mengembalikan TRUE, hasilnya adalah TRUE; hanya ketika kedua ekspresi ADALAH FALSE adalah hasil FALSE. (([Region] = "France") || ([BikeBuyer] = "ya"))
IN Membuat kondisi OR logis di antara setiap baris yang dibandingkan dengan tabel. Catatan: sintaks konstruktor tabel menggunakan 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 yang berhasil 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
^ Eksponensial
Tanda tangan (seperti dalam –1)
*Dan/ Perkalian dan pembagian
+ dan – Penambahan dan pengurangan
& Koneksi dua string teks (perangkaian)
=,==,,><=<,=,>=,,<>IN Perbandingan
TIDAK NOT (operator unary)

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 terlebih (3 + 0.25) 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 hasil dari rumus, seperti =[Price] * .20, dan hasilnya mungkin berisi banyak tempat 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 Tipe data yang didukung dalam model tabular dan Tipe data di Power BI Desktop.

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

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

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)
String String
Boolean Boolean
DateTime 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