Thep Excel

OR – ตรวจสอบว่ามีเงื่อนไขใดเป็นจริง

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

=OR(<logical1>, <logical2>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
7/10

Difficulty
2/10

Usefulness
7/10

Syntax & Arguments

=OR(<logical1>, <logical2>)

Argument Type Required Default Description
logical1 boolean Yes เงื่อนไขตรรกะตัวแรก (Boolean TRUE/FALSE)
logical2 boolean Yes เงื่อนไขตรรกะตัวที่สอง (Boolean TRUE/FALSE)

How it works

จัดกลุ่มแบบผ่านอย่างน้อยหนึ่งเงื่อนไข

ใช้ OR/|| เพื่อกำหนดว่าถ้าเข้าเงื่อนไขข้อใดข้อหนึ่งให้จัดอยู่ในกลุ่มเดียวกัน

ทำเงื่อนไขสีหรือสถานะ

คืนข้อความ/สีเมื่อเข้าเกณฑ์อย่างน้อยหนึ่งข้อ เช่น ยอดขายสูงหรือกำไรสูง

Examples

ตัวอย่างที่ 1: ตรวจสอบค่าตรรกะพื้นฐาน
OR(TRUE, FALSE)
ถ้ามีอย่างน้อยหนึ่งอาร์กิวเมนต์เป็น TRUE ผลลัพธ์จะเป็น TRUE
DAX Formula:

=OR(TRUE, FALSE)

Result:

TRUE

ตัวอย่างที่ 2: ใช้ตัวดำเนินการ || (แนะนำ)
Is Important = ([Total Sales] > 100000) || ([Total Profit] > 0)
ใช้ || เพื่อเชื่อมเงื่อนไขแบบ "อย่างน้อยหนึ่งข้อ" แล้วนำไปใช้ต่อกับ IF หรือทำเป็นตัวกรองใน Visual
DAX Formula:

Is Important =
([Total Sales] > 100000) || ([Total Profit] > 0)

Result:

TRUE เมื่อยอดขายสูง หรือกำไรเป็นบวก

ตัวอย่างที่ 3: ใช้ร่วมกับ IF เพื่อคืนข้อความ
Flag = IF( ([Total Sales] > 100000) || ([Total Quantity] > 100), "เด่น", "ปกติ" )
เมื่อยอดขายสูงหรือจำนวนมาก จะคืนข้อความ "เด่น" เพื่อใช้ทำป้ายกำกับหรือไฮไลต์ในรายงาน
DAX Formula:

Flag =
IF(
    ([Total Sales] > 100000) || ([Total Quantity] > 100),
    "เด่น",
    "ปกติ"
)

Result:

คืน "เด่น" เมื่อเข้าเกณฑ์ข้อใดข้อหนึ่ง

ตัวอย่างที่ 4: ตรวจสอบสถานะหลาย ๆ ตัว
Highlight Status = IF( (Sales[Status] = "High Priority") || (Sales[Status] = "Urgent") || (Sales[Status] = "Critical"), "ต้องดำเนินการ", "ตามปกติ" )
ใช้ || หลายตัวเพื่อตรวจสอบว่าสถานะตรงกับเงื่อนไขใดข้อหนึ่ง ดีกว่าใช้ OR() ซ้อนกันแล้วอ่านยาก
DAX Formula:

Highlight Status =
IF(
    (Sales[Status] = "High Priority") || (Sales[Status] = "Urgent") || (Sales[Status] = "Critical"),
    "ต้องดำเนินการ",
    "ตามปกติ"
)

Result:

คืน "ต้องดำเนินการ" เมื่อสถานะเป็นสถานะด่วนข้อใดข้อหนึ่ง

FAQs

OR ต่างจาก AND อย่างไร?

OR จะคืน TRUE เมื่อมีอย่างน้อยหนึ่งเงื่อนไขเป็น TRUE (เขียน: A || B) ส่วน AND จะคืน TRUE ก็ต่อเมื่อทุกเงื่อนไขเป็น TRUE (เขียน: A && B)

ทำไมถึงแนะนำให้ใช้ || แทน OR()?

เพราะ || เขียนสั้นกว่า รองรับหลายเงื่อนไขได้โดยไม่ต้องซ้อนฟังก์ชัน และอ่านง่ายกว่าในโค้ดจริง โดยเฉพาะเมื่อซ้อนกับ IF/SWITCH

OR() สามารถตรวจสอบเงื่อนไขตั้งแต่ 3 ตัวขึ้นไปได้ไหม?

ฟังก์ชัน OR() รับเพียง 2 argument เท่านั้น ถ้ามี 3 เงื่อนไขขึ้นไปให้ใช้ || ต่อกัน เช่น (A > 100) || (B < 50) || (C = "X")

OR ใช้ได้กับ Calculated Column หรือเฉพาะ Measure?

ใช้ได้ทั้งคู่ โดยไม่ต้องกังวลเรื่อง Filter Context vs Row Context เพราะ OR เป็นฟังก์ชันตรรกะธรรมดา ไม่เปลี่ยนแปลง Context

Resources & Related

Additional Notes

OR เป็นฟังก์ชันตรรกะสำหรับตรวจสอบเงื่อนไข 2 ตัว ถ้ามีอย่างน้อย 1 เงื่อนไขเป็นจริงจะคืนค่า TRUE และจะคืนค่า FALSE ก็ต่อเมื่อทั้งสองเงื่อนไขเป็น FALSE เท่านั้น

ในงานจริง มักใช้ตัวดำเนินการ || แทน OR() เพราะเขียนได้สั้นกว่า รองรับหลายเงื่อนไข และอ่านง่ายกว่า โดยเฉพาะเมื่อใช้ร่วมกับ IF หรือ SWITCH

ส่วนตัวผม คิดว่า OR/|| เป็นฟังก์ชันตรรกะพื้นฐานที่ต้องเข้าใจให้ลึก เพราะเมื่อเขียน DAX ที่ซับซ้อน บ่อยครั้งที่เราต้องตัดสินใจว่าเงื่อนไขควรเป็น AND หรือ OR กันแน่ – การเลือกผิดจะทำให้ผลลัพธ์ผิดไปเลย

Leave a Reply

Your email address will not be published. Required fields are marked *