SWITCH
Berlaku untuk: kolom terhitungTabel 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 expression . |
result |
Ekspresi skalar apa pun yang akan dievaluasi jika hasil expression cocok dengan value yang 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 keTRUE
. Lihat contoh di bawah. - Semua ekspresi
result
dan ekspresielse
harus memiliki tipe data yang sama. - Urutan kondisi penting. Segera setelah satu
value
cocok,result
yang sesuai dikembalikan, danvalues
berikutnya tidak dievaluasi. Pastikanvalues
yang paling ketat untuk dievaluasi ditentukan sebelumvalues
yang kurang ketat. Lihat contoh di bawah.
Contoh
Penggunaan umum SWITCH adalah membandingkan expression
dengan values
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 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
)