Bagikan melalui


SWITCH

Berlaku untuk: Kolom terhitung Tabel terhitung Ukur perhitungan 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 ekspresi.
hasil Ekspresi skalar apa pun yang akan dievaluasi jika hasil ekspresi cocok dengan nilai yang sesuai.
else Ekspresi skalar apa pun yang akan dievaluasi jika hasil ekspresi tidak cocok dengan argumen nilai apa pun.

Nilai hasil

Jika ada kecocokan dengan nilai, nilai skalar dari hasil yang sesuai dikembalikan. Jika tidak ada kecocokan dengan nilai, nilai dari nilai lain dikembalikan. Jika tidak ada nilai yang cocok dan tidak ditentukan, BLANK dikembalikan.

Keterangan

  • Ekspresi 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 hasil dan ekspresi lainnya harus dari jenis data yang sama.
  • Urutan kondisi penting. Segera setelah satu nilai cocok, hasil yang sesuai dikembalikan, dan nilai berikutnya lainnya tidak dievaluasi. Pastikan nilai yang paling ketat untuk dievaluasi ditentukan sebelum nilai yang kurang ketat. Lihat contoh di bawah.

Contoh

Penggunaan umum SWITCH adalah membandingkan ekspresi dengan nilai konstanta. 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 switch lainnya 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 nilai penting. Dalam contoh berikut, hasil 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 hasil berbeda. Perlu diingat bahwa jenis data dalam semua hasil dan argumen lainnya harus sama.

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