Cara menampilkan nilai khusus antar interval tanggal menggunakan Dax di Power BI

Saya mencoba menampilkan nilai khusus antara tanggal yang berbeda menggunakan rumus berikut di DAX (power Bi)

= if ([RegistrationDate] >= "6/14/2018" & [RegistrationDate] <= "7/15/2018") then "M4" else if ([RegistrationDate] >= "7/16/2018" & [RegistrationDate] <= "8/26/2018") then "M5" else if [RegistrationDate] >= "8/27/2018" then "M6" else ""

Pada dasarnya logika di baliknya adalah:

  • Jika kolom rentang berisi tanggal antara 14/6/2018 hingga 15/7/2018 -> masukkan M4 di kolom khusus
  • jika kolom range berisi tanggal antara 16/7/2018 hingga 26/8/2018 -> masukan M5 pada kolom custom
  • jika kolom rentang berisi tanggal lebih tinggi atau sama dengan 27/8/2018 -> masukan M6 di kolom kustom.

Menggunakan rumus di atas memberi saya kesalahan. Ada ide kenapa?


person Adi Petrescu    schedule 04.10.2018    source sumber


Jawaban (2)


Anda perlu menggunakan ampersand ganda && untuk logika AND di DAX dan Anda tidak menggunakan kata if, then, else if seperti yang Anda lakukan dalam bahasa editor kueri M.

Pendekatan Marco terlihat baik-baik saja, tetapi jika Anda memiliki banyak kasus else if, fungsi SWITCH mungkin lebih baik daripada fungsi IF yang disarangkan.

Custom Column =
SWITCH ( TRUE(),
    'table'[RegistrationDate] >= DATE ( 2018, 6, 14 ) &&
    'table'[RegistrationDate] < DATE ( 2018, 7, 15 ),
    "M4",
    'table'[RegistrationDate] >= DATE ( 2018, 7, 16 ) &&
    'table'[RegistrationDate] <= DATE ( 2018, 8, 26 ),
    "M5",
    'table'[RegistrationDate] >= DATE ( 2018, 8, 27 ),
    "M6",
    "" 
)

Berikut referensi di SWITCH TRUE.

person Alexis Olson    schedule 04.10.2018
comment
Untuk beberapa alasan saya tidak dapat menggunakan ampersand ganda karena saya terus-menerus mendapatkan kesalahan yang diharapkan dari Token Literal. Kesalahan yang sama berlaku untuk 'tabel' mengapa demikian?. Maaf atas pertanyaan ini tetapi saya mencoba belajar. - person Adi Petrescu; 05.10.2018
comment
Kedengarannya seperti kesalahan bahasa M editor kueri, bukan DAX. Apakah Anda mencoba membuat kolom kustom di editor kueri (bahasa M) atau kolom terhitung (menggunakan DAX) pada tabel yang dimuat ke dalam model data Anda? - person Alexis Olson; 05.10.2018
comment
Itulah masalahnya, saya mencoba menambahkannya ke power editor. Terima kasih berfungsi dengan baik sekarang - person Adi Petrescu; 09.10.2018

Apa yang Anda inginkan terlihat seperti ini:

Custom Column =
IF (
    'table'[RegistrationDate] >= DATE ( 2018, 6, 14 )
        && 'table'[RegistrationDate] < DATE ( 2018, 7, 15 ),
    "M4",
    IF (
        'table'[RegistrationDate] >= DATE ( 2018, 7, 16 )
            && 'table'[RegistrationDate] <= DATE ( 2018, 8, 26 ),
        "M5",
        IF ( 'table'[RegistrationDate] >= DATE ( 2018, 8, 27 ), "M6", "" )
    )
)
person Marco Vos    schedule 04.10.2018