Excel DAX - Kesalahan Rumus
Anda bisa mendapatkan kesalahan saat menulis DAX formulasdengan sintaks yang salah. Bidang terhitung dan kolom terhitung bisa berisi fungsi DAX yang memerlukan tipe argumen tertentu. Argumen fungsi DAX bisa berupa tabel, kolom, atau fungsi DAX lainnya (fungsi DAX bertumpuk). Karena fungsi DAX bisa mengembalikan tabel dan kolom, hati-hati harus dilakukan untuk memeriksa bahwa tipe argumen yang tepat diteruskan ke fungsi DAX.
Kesalahan rumus DAX bisa berupa kesalahan sintaks atau kesalahan semantik. Kesalahan dapat terjadi baik pada waktu desain atau pada waktu berjalan.
Di bab ini, Anda akan mempelajari tentang beberapa kesalahan DAX yang umum, penyebabnya, dan cara memperbaiki kesalahan tersebut.
Galat DAX: Perhitungan Dibatalkan
Kesalahan berikut ini dapat terjadi saat mencoba membuat (waktu desain) atau menggunakan (waktu proses) bidang terhitung dengan fungsi kecerdasan waktu DAX. Dalam setiap kasus, rentang tanggal yang tidak bersebelahan diteruskan ke fungsi kecerdasan waktu.
“Kesalahan DAX: CALCULATION ABORTED: MdxScript (instance) (00, 0) Fungsi 'DATEADD' hanya berfungsi dengan pilihan tanggal yang berdekatan.”
Penyebab di Run-time
Kesalahan ini bisa ditampilkan saat bidang terhitung dengan fungsi kecerdasan waktu DAX ditempatkan di area NILAI PivotTable dan bidang tanggal seperti bulan atau kuartal dipilih sebagai pemotong atau filter sebelum memilih tahun. Misalnya, jika Anda memiliki data tiga tahun - 2014, 2015, dan 2016 dan Anda mencoba menggunakan hanya bulan Maret tanpa memilih bidang Tahun, maka nilainya bukan nilai data yang bersebelahan dan Anda akan mendapatkan kesalahan.
Bagaimana cara Memperbaiki Kesalahan pada Run-time?
Dalam contoh di atas,
Pertama tambahkan Tahun sebagai pemotong atau filter dan pilih tahun.
Lalu, tambahkan Bulan atau Kuartal sebagai pemotong atau filter.
Lalu, pilih satu atau beberapa bulan atau kuartal untuk diiris atau difilter untuk tahun yang dipilih.
Penyebab pada waktu desain
Fungsi kecerdasan waktu DAX memerlukan kolom tanggal yang ditentukan untuk argumen tanggal. Kolom tanggal harus memiliki rentang tanggal yang berdekatan. Kesalahan ini dapat dikembalikan, jika ada nilai tanggal di satu atau beberapa baris di kolom tanggal yang tidak bersebelahan dengan nilai data di baris sebelumnya dan berturut-turut.
Jika Anda mengimpor tabel Anda yang berisi tanggal dari sumber data, ingatlah bahwa banyak organisasi menjalankan proses khusus yang memindai tabel dalam database untuk nilai yang tidak valid dan menggantinya dengan nilai tertentu. Artinya, jika tanggal tidak valid ditemukan, itu diberikan nilai tanggal tertentu yang mungkin tidak bersebelahan dengan nilai data lain di kolom.
Bagaimana Memperbaiki Kesalahan Ini pada Waktu Desain?
Lakukan hal berikut untuk memperbaiki kesalahan pada waktu desain -
Jika tabel tanggal Anda diimpor dari sumber data, gunakan Refresh di jendela Power Pivot untuk mengimpor ulang setiap perubahan yang ditemukan di sumber tersebut.
Periksa nilai di kolom tanggal Anda untuk memastikannya berada dalam urutan yang berdekatan. Jika ada nilai yang ditemukan tidak pada tempatnya, itu harus dikoreksi pada sumbernya dan tabel tanggal harus di-refresh.
Buat tabel tanggal dan kolom tanggal terpisah di Model Data Anda. Tentukan kolom tanggal baru sebagai argumen tanggal dalam rumus yang menyebabkan kesalahan. Tabel tanggal mudah dibuat dan ditambahkan ke Model Data.
DAX Semantic Error - Contoh
Galat DAX berikut ini adalah galat semantik -
“Fungsi 'CALCULATE' telah digunakan dalam ekspresi benar-salah yang digunakan sebagai ekspresi filter tabel. Ini tidak diperbolehkan. ”
Sebab
Kesalahan ini bisa muncul ketika satu atau beberapa ekspresi filter tidak dapat digunakan dalam konteks bidang terhitung atau ekspresi kolom terhitung.
Dalam sebagian besar kasus, kesalahan ini disebabkan oleh ekspresi filter yang ditentukan sebagai argumen untuk fungsi DAX CALCULATE. Fungsi CALCULATE memerlukan filter yang ditentukan sebagai ekspresi Boolean atau ekspresi tabel.
Bagaimana Memperbaiki Kesalahan Tersebut?
Anda bisa memperbaiki kesalahan tersebut dengan menggunakan fungsi DAX FILTER untuk menentukan filter sebagai ekspresi tabel, yang kemudian bisa digunakan sebagai argumen untuk fungsi DAX CALCULATE.