| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| logical1 | boolean | เงื่อนไขตรรกะตัวแรก (Boolean TRUE/FALSE) |
| logical2 | boolean | เงื่อนไขตรรกะตัวที่สอง (Boolean TRUE/FALSE) |
OR เป็นฟังก์ชันตรรกะสำหรับตรวจสอบเงื่อนไข 2 ตัว ถ้ามีอย่างน้อย 1 เงื่อนไขเป็นจริงจะคืนค่า TRUE และจะคืนค่า FALSE ก็ต่อเมื่อทั้งสองเงื่อนไขเป็น FALSE เท่านั้น
ในงานจริง มักใช้ตัวดำเนินการ || แทน OR() เพราะเขียนได้สั้นกว่า รองรับหลายเงื่อนไข และอ่านง่ายกว่า โดยเฉพาะเมื่อใช้ร่วมกับ IF หรือ SWITCH
ส่วนตัวผม คิดว่า OR/|| เป็นฟังก์ชันตรรกะพื้นฐานที่ต้องเข้าใจให้ลึก เพราะเมื่อเขียน DAX ที่ซับซ้อน บ่อยครั้งที่เราต้องตัดสินใจว่าเงื่อนไขควรเป็น AND หรือ OR กันแน่ – การเลือกผิดจะทำให้ผลลัพธ์ผิดไปเลย
ใช้ OR/|| เพื่อกำหนดว่าถ้าเข้าเงื่อนไขข้อใดข้อหนึ่งให้จัดอยู่ในกลุ่มเดียวกัน
คืนข้อความ/สีเมื่อเข้าเกณฑ์อย่างน้อยหนึ่งข้อ เช่น ยอดขายสูงหรือกำไรสูง
ถ้ามีอย่างน้อยหนึ่งอาร์กิวเมนต์เป็น TRUE ผลลัพธ์จะเป็น TRUE
ใช้ || เพื่อเชื่อมเงื่อนไขแบบ "อย่างน้อยหนึ่งข้อ" แล้วนำไปใช้ต่อกับ IF หรือทำเป็นตัวกรองใน Visual
เมื่อยอดขายสูงหรือจำนวนมาก จะคืนข้อความ "เด่น" เพื่อใช้ทำป้ายกำกับหรือไฮไลต์ในรายงาน
ใช้ || หลายตัวเพื่อตรวจสอบว่าสถานะตรงกับเงื่อนไขใดข้อหนึ่ง ดีกว่าใช้ OR() ซ้อนกันแล้วอ่านยาก
OR จะคืน TRUE เมื่อมีอย่างน้อยหนึ่งเงื่อนไขเป็น TRUE (เขียน: A || B) ส่วน AND จะคืน TRUE ก็ต่อเมื่อทุกเงื่อนไขเป็น TRUE (เขียน: A && B)
เพราะ || เขียนสั้นกว่า รองรับหลายเงื่อนไขได้โดยไม่ต้องซ้อนฟังก์ชัน และอ่านง่ายกว่าในโค้ดจริง โดยเฉพาะเมื่อซ้อนกับ IF/SWITCH
ฟังก์ชัน OR() รับเพียง 2 argument เท่านั้น ถ้ามี 3 เงื่อนไขขึ้นไปให้ใช้ || ต่อกัน เช่น (A > 100) || (B < 50) || (C = "X")
ใช้ได้ทั้งคู่ โดยไม่ต้องกังวลเรื่อง Filter Context vs Row Context เพราะ OR เป็นฟังก์ชันตรรกะธรรมดา ไม่เปลี่ยนแปลง Context
ฟังก์ชันที่ผู้เขียนโยงไว้กับ OR จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
ตรวจสอบว่าเงื่อนไขตรรกะทั้งหมดเป็นจริงหรือไม่ และคืนค่า TRUE เมื่อทุกเงื่อนไขเป็น TRUE
BITOR คืนผลลัพธ์ของ OR แบบบิตระหว่าง Number1 และ Number2 เหมาะกับการรวม bit flags เพื่อสร้างค่า bitmask ใหม่
BITXOR คืนผลลัพธ์ของ XOR แบบบิตระหว่าง Number1 และ Number2 เหมาะกับการสลับแฟลก (toggle) ในงานที่ใช้ bitmask
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 อย่างเข้มงวด
NOT ใช้กลับค่าตรรกะของนิพจน์ (TRUE ↔ FALSE) เหมาะกับการเขียนเงื่อนไขแบบปฏิเสธ และนิยมใช้ร่วมกับ IF/AND/OR เพื่อสร้างตรรกะที่อ่านชัดเจน
SWITCH เป็นฟังก์ชันตรรมชาติสำหรับจัดการหลายกรณี ช่วยให้หลีกเลี่ยง IF ซ้อนหลายชั้น และสามารถใช้รูปแบบ SWITCH(TRUE()) ได้ สำหรับเงื่อนไขแบบช่วง (>=, <=) หรือเงื่อนไขซับซ้อน
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่