หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ: คอลัมน์จากการคํานวณ![]()
ตารางจากการคํานวณ
หน่วยวัด
การคํานวณวิชวล
ประเมินนิพจน์เทียบกับรายการค่าและแสดงหนึ่งในหลายนิพจน์ผลลัพธ์ที่เป็นไปได้ ฟังก์ชันนี้สามารถใช้เพื่อหลีกเลี่ยงการมีคําสั่ง IF ที่ซ้อนกันหลายคําสั่ง
ไวยากรณ์
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
พารามิเตอร์
| เงื่อนไข | คำนิยาม |
|---|---|
expression |
นิพจน์ DAX ใด ๆ ที่แสดงเป็นค่าสเกลาเดียว ซึ่งจะมีการประเมินนิพจน์หลายครั้ง (สําหรับแต่ละแถว/บริบท) |
value |
ค่าคงที่ที่จะจับคู่กับผลลัพธ์ของ expression |
result |
นิพจน์สเกลาใด ๆ ที่จะประเมินถ้าผลลัพธ์ของ expression ตรงกับ valueที่สอดคล้องกัน |
else |
นิพจน์สเกลาใด ๆ ที่จะประเมินถ้าผลลัพธ์ของ expression ไม่ตรงกับอาร์กิวเมนต์ value |
ค่าผลลัพธ์
ถ้ามีการจับคู่กับ valueค่าสเกลาจาก result ที่สอดคล้องกันจะถูกส่งกลับ ถ้า ไม่ตรงกับ valueค่าจาก else จะถูกส่งกลับ ถ้าไม่มี values ตรงกันและไม่มีการระบุ elseBLANK จะถูกส่งกลับ
หมายเหตุ
-
expressionที่จะประเมินสามารถเป็นค่าคงที่หรือนิพจน์ได้ การใช้งานโดยทั่วไปของฟังก์ชันนี้คือ การตั้งค่าพารามิเตอร์แรกเป็นTRUEดูตัวอย่างด้านล่าง - นิพจน์
resultทั้งหมดและนิพจน์elseต้องเป็นชนิดข้อมูลเดียวกัน - ลําดับของเงื่อนไขมีความสําคัญ ทันทีที่
valueรายการที่ตรงกัน ระบบจะส่งกลับresultที่สอดคล้องกัน และvaluesอื่น ๆ ที่ตามมาจะไม่ถูกประเมิน ตรวจสอบให้แน่ใจว่ามีการระบุvaluesที่เข้มงวดที่สุดก่อนที่จะมีvaluesที่เข้มงวดน้อยลง ดูตัวอย่างด้านล่าง
ตัวอย่าง
การใช้งาน SWITCH โดยทั่วไปคือการเปรียบเทียบ expression กับ valuesคงที่ ตัวอย่างต่อไปนี้จะสร้างคอลัมน์จากการคํานวณของชื่อเดือน:
= 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"
)
การใช้งาน SWITCH อื่นโดยทั่วไปคือการแทนที่คําสั่ง IF ที่ซ้อนกันหลายคําสั่ง สิ่งนี้สามารถทําได้โดยการตั้งค่านิพจน์เป็น TRUEดังที่แสดงในตัวอย่างต่อไปนี้ ซึ่งเปรียบเทียบระดับสต็อกจุดสั่งซื้อใหม่และระดับสต็อกด้านความปลอดภัยบนผลิตภัณฑ์เพื่อระบุความเสี่ยงที่อาจเกิดขึ้นจากการหมดสต็อก:
= 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"
)
ลําดับของ values มีความสําคัญ ในตัวอย่างต่อไปนี้ result ที่สองจะไม่ถูกส่งกลับเนื่องจากค่าแรกจะถูกจํากัดน้อยกว่าค่าที่สอง ผลลัพธ์ในตัวอย่างนี้จะ A หรือ Cเสมอ แต่ไม่ B
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
คําสั่งต่อไปนี้แสดงข้อผิดพลาดเนื่องจากชนิดข้อมูลในอาร์กิวเมนต์ result แตกต่างกัน โปรดทราบว่าชนิดข้อมูลในอาร์กิวเมนต์ result และ else ทั้งหมดต้องเหมือนกัน
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)