Thep Excel

Function Explainer

Logical · DAX 13 ฟังก์ชัน

13 ฟังก์ชัน

เรียงตาม

ฟังก์ชัน ใช้ทำอะไร มีตั้งแต่ นิยม ยาก ประโยชน์
IF Logical IF(<logical_test>, <value_if_true>[, <value_if_false>])

IF เป็นฟังก์ชันตรรกะพื้นฐานที่สำคัญที่สุดใน DAX ใช้สำหรับตรวจสอบเงื่อนไข (logical test) แล้วคืนค่าที่แตกต่างกันตามผลลัพธ์ว่าเป็นจริง (TRUE) หรือเท็จ (FALSE) สามารถใช้ได้ทั้งในบริบท calculated column, measure, calculated table และ visual calculation ซึ่งทำให้มีความยืดหยุ่นสูง คืนค่าเป็น scalar value ได้ทุกประเภท ไม่ว่าจะเป็นตัวเลข ข้อความ วันที่ หรือค่า boolean ถ้าไม่ระบุค่าสำหรับกรณีเท็จ (value_if_false) จะคืน BLANK() โดยอัตโนมัติ มีคุณสมบัติพิเศษคือ lazy evaluation behavior ที่ประมวลผลเฉพาะเส้นทาง (branch) ที่ถูกเลือกเท่านั้น ทำให้มีประสิทธิภาพในการทำงานที่ดี แตกต่างจาก Excel IF อย่างชัดเจนตรงที่ใช้รูปแบบอ้างอิงแบบ Table[Column] ทำงานภายใต้ filter context และแยกความแตกต่างระหว่าง BLANK กับ 0 อย่างเข้มงวด

นิยม 10 ยาก 2 ประโยชน์ 10

10 2 10
SWITCH Logical SWITCH(<expression>, <value1>, <result1>[, <value1>, <result1>]...[, <else>])

SWITCH เป็นฟังก์ชันตรรมชาติสำหรับจัดการหลายกรณี ช่วยให้หลีกเลี่ยง IF ซ้อนหลายชั้น และสามารถใช้รูปแบบ SWITCH(TRUE()) ได้ สำหรับเงื่อนไขแบบช่วง (>=, <=) หรือเงื่อนไขซับซ้อน

นิยม 8 ยาก 3 ประโยชน์ 8

8 3 8
AND Logical AND(<logical1>, <logical2>)

ตรวจสอบว่าเงื่อนไขตรรกะทั้งหมดเป็นจริงหรือไม่ และคืนค่า TRUE เมื่อทุกเงื่อนไขเป็น TRUE

นิยม 7 ยาก 2 ประโยชน์ 7

7 2 7
OR Logical OR(<logical1>, <logical2>)

OR ตรวจสอบเงื่อนไขตรรกะ 2 ตัว และคืน TRUE เมื่อมีเงื่อนไขใดเงื่อนไขหนึ่งเป็น TRUE เหมาะกับการทำเงื่อนไขแบบ "อย่างน้อยหนึ่งข้อ" และนิยมเขียนด้วยตัวดำเนินการ || ในงานจริง

นิยม 7 ยาก 2 ประโยชน์ 7

7 2 7
IFERROR Logical IFERROR(<Value>, <ValueIfError>)

IFERROR ใช้ดักจับข้อผิดพลาดในนิพจน์: ถ้า Value เกิด error จะคืนค่า ValueIfError แทน ถ้าไม่เกิด error จะคืนค่าของ Value เดิม เหมาะสำหรับการแปลงชนิดข้อมูล การหารที่อาจเป็นศูนย์ หรือ measure ที่ไม่เสถียร

นิยม 7 ยาก 3 ประโยชน์ 7

7 3 7
COALESCE Logical COALESCE(<expression1>, <expression2>[, <expression3>, ...])

COALESCE คืนค่าแรกที่ไม่เป็น BLANK() จากหลายอาร์กิวเมนต์ เหมาะกับการกำหนดค่าเริ่มต้น (fallback) เช่น ใช้ค่า 0 เมื่อ Measure เป็น BLANK หรือเลือกค่าจากหลายแหล่งตามลำดับความสำคัญ

นิยม 6 ยาก 3 ประโยชน์ 6

6 3 6
NOT Logical NOT(<logical>)

NOT ใช้กลับค่าตรรกะของนิพจน์ (TRUE ↔ FALSE) เหมาะกับการเขียนเงื่อนไขแบบปฏิเสธ และนิยมใช้ร่วมกับ IF/AND/OR เพื่อสร้างตรรกะที่อ่านชัดเจน

นิยม 6 ยาก 2 ประโยชน์ 6

6 2 6
TRUE Logical TRUE()

TRUE คืนค่าตรรกะ TRUE ใช้เป็นค่าคงที่ใน DAX เช่น ใช้กับ SWITCH(TRUE()) เพื่อจัดการเงื่อนไขหลายระดับ หรือใช้ร่วมกับ IF/AND/OR ในการสร้างตรรกะ

นิยม 5 ยาก 1 ประโยชน์ 5

5 1 5
FALSE Logical FALSE()

FALSE คืนค่าตรรกะ FALSE ใช้เป็นค่าคงที่ใน DAX สำหรับสร้างตรรกะและเงื่อนไข เช่น ใช้กับ IF หรือใช้เป็นค่าตั้งต้นในตัวแปร

นิยม 5 ยาก 1 ประโยชน์ 5

5 1 5
BITOR Logical BITOR(<Number1>, <Number2>)

BITOR คืนผลลัพธ์ของ OR แบบบิตระหว่าง Number1 และ Number2 เหมาะกับการรวม bit flags เพื่อสร้างค่า bitmask ใหม่

นิยม 3 ยาก 3 ประโยชน์ 3

3 3 3
BITAND Logical BITAND(<Number1>, <Number2>)

BITAND คืนผลลัพธ์ของการทำ AND แบบบิตระหว่าง Number1 และ Number2 เหมาะกับการตรวจ bit flags/bitmask เพื่อเช็กสถานะที่ถูกเก็บในตัวเลขเดียว

นิยม 3 ยาก 3 ประโยชน์ 3

3 3 3
IF.EAGER Logical IF.EAGER(<LogicalTest>, <ValueIfTrue>[, <ValueIfFalse>])

IF.EAGER ทำงานเหมือน IF แต่ใช้แผน eager ที่อาจประเมินทั้ง value_if_true และ value_if_false ทำให้ควรระวังเรื่อง performance และกรณีที่อีกแขนงอาจเกิด error แม้เงื่อนไขจะไม่เลือกแขนงนั้น

นิยม 3 ยาก 4 ประโยชน์ 3

3 4 3
BITXOR Logical BITXOR(<Number1>, <Number2>)

BITXOR คืนผลลัพธ์ของ XOR แบบบิตระหว่าง Number1 และ Number2 เหมาะกับการสลับแฟลก (toggle) ในงานที่ใช้ bitmask

นิยม 2 ยาก 3 ประโยชน์ 2

2 3 2