Bagikan melalui


SWITCH

Berlaku untuk: kolom terhitungTabel terhitungUkurPerhitungan visual

Mengevaluasi ekspresi terhadap daftar nilai dan mengembalikan salah satu dari beberapa kemungkinan ekspresi hasil. Fungsi ini dapat digunakan untuk menghindari memiliki beberapa pernyataan IF berlapis.

Sintaks

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])

Parameter

Term Definisi
expression Ekspresi DAX apa pun yang mengembalikan nilai skalar tunggal di mana ekspresi akan dievaluasi beberapa kali (untuk setiap baris/konteks).
value Nilai konstanta yang akan dicocokkan dengan hasil expression.
result Ekspresi skalar apa pun yang akan dievaluasi jika hasil expression cocok dengan valueyang sesuai.
else Ekspresi skalar apa pun yang akan dievaluasi jika hasil expression tidak cocok dengan argumen value.

Mengembalikan nilai

Jika ada kecocokan dengan value, nilai skalar dari result terkait dikembalikan. Jika tidak ada kecocokan dengan value, nilai dari else dikembalikan. Jika tidak ada values yang cocok dan else tidak ditentukan, BLANK dikembalikan.

Keterangan

  • expression yang akan dievaluasi dapat berupa nilai konstanta atau ekspresi. Penggunaan umum fungsi ini adalah mengatur parameter pertama ke TRUE. Lihat contoh di bawah.
  • Semua ekspresi result dan ekspresi else harus memiliki tipe data yang sama.
  • Urutan kondisi penting. Segera setelah satu value cocok, result yang sesuai dikembalikan, dan values berikutnya tidak dievaluasi. Pastikan values yang paling ketat untuk dievaluasi ditentukan sebelum valuesyang kurang ketat. Lihat contoh di bawah.

Contoh

Penggunaan umum SWITCH adalah membandingkan expression dengan valueskonstanta . Contoh berikut membuat kolom terhitung dari nama bulan:

= SWITCH (
         [Month Number Of Year],
         1, "January",
         2, "February",
         3, "March",
         4, "April",
         5, "May",
         6, "June",
         7, "July",
         8, "August",
         9, "September",
         10, "October",
         11, "November",
         12, "December",
         "Unknown month number"
        )

Penggunaan umum lain dari SWITCH adalah mengganti beberapa pernyataan IF berlapis. Ini dicapai dengan mengatur ekspresi ke TRUE, seperti yang ditunjukkan dalam contoh berikut, yang membandingkan Tingkat Reorder Point dan Safety Stock pada produk untuk mengidentifikasi potensi risiko kehabisan stok:

= SWITCH (
        TRUE,
        [Reorder Point] > [Safety Stock Level], "Good: Safety stock level exceeded",
        [Reorder Point] = [Safety Stock Level], "Minimal: Safety stock level met",
        [Reorder Point] < [Safety Stock Level], "At risk: Safety stock level not met",
        ISBLANK ( [Reorder Point] ), "Incomplete: Reorder point not set",
        ISBLANK ( [Safety Stock Level] ), "Incomplete: Safety stock level not set",
        "Unknown"
        )

Urutan values penting. Dalam contoh berikut, result kedua tidak pernah dikembalikan karena nilai pertama kurang ketat daripada yang kedua. Hasil dalam contoh ini selalu A atau C, tetapi tidak pernah B.

= SWITCH (
         TRUE,
         Product[Standard Cost] < 100, "A",
         Product[Standard Cost] < 10, "B",
         "C"
         )

Pernyataan berikut mengembalikan kesalahan karena jenis data dalam argumen result berbeda. Perlu diingat bahwa jenis data di semua argumen result dan else harus sama.

= SWITCH (
        [Class],
        "L", "Large",
        "H", 0.1
        )