Thep Excel

NOT – กลับค่าตรรกะ (TRUE/FALSE)

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

=NOT(<logical>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
2/10

Usefulness
6/10

Syntax & Arguments

=NOT(<logical>)

Argument Type Required Default Description
logical boolean Yes นิพจน์ตรรกะที่ต้องการกลับผล (เช่น [Sales] > 0 หรือ ISBLANK([Measure]))

How it works

กรองเฉพาะรายการที่ไม่เข้าเงื่อนไข

ใช้ NOT เพื่อกลับผลของเงื่อนไข แล้วนำไปใช้ใน IF หรือเป็นตัวกรองใน Visual

ซ่อนค่าเมื่อไม่ต้องการแสดง

คืน BLANK() เมื่อเงื่อนไขบางอย่าง “ไม่เป็นจริง” โดยใช้ NOT เพื่อทำให้โค้ดอ่านง่ายขึ้น

Examples

ตัวอย่างที่ 1: กลับค่าตรรกะพื้นฐาน
NOT(TRUE)
NOT จะกลับค่าจาก TRUE เป็น FALSE และกลับจาก FALSE เป็น TRUE เป็นการดำเนินการพื้นฐานสุด
DAX Formula:

= NOT(TRUE)

Result:

FALSE

ตัวอย่างที่ 2: ตรวจสอบว่าไม่เป็น Blank
Has Value = NOT( ISBLANK([Total Sales]) )
ใช้ NOT ครอบ ISBLANK เพื่อสร้างเงื่อนไขว่า "มีค่า" การอ่านว่า "NOT blank" ชัดเจนว่าผลลัพธ์หมายถึง "มีค่า"
DAX Formula:

Has Value =
NOT(
    ISBLANK([Total Sales])
)

Result:

TRUE เมื่อ [Total Sales] ไม่เป็น BLANK(), FALSE เมื่อเป็น BLANK

ตัวอย่างที่ 3: ใช้ร่วมกับ IF เพื่อคืนข้อความ
Status = IF( NOT([Total Profit] > 0), "ขาดทุนหรือเท่าทุน", "กำไร" )
กลับผลของเงื่อนไขกำไรเพื่อให้สื่อความหมายว่า "ไม่กำไร" ที่สำคัญคือการอ่านคำสั่งทั้ง IF NOT(…) ได้ไปเลย "if not profit is positive, then…"
DAX Formula:

Status =
IF(
    NOT([Total Profit] > 0),
    "ขาดทุนหรือเท่าทุน",
    "กำไร"
)

Result:

"ขาดทุนหรือเท่าทุน" เมื่อกำไร <= 0, "กำไร" เมื่อกำไร > 0

ตัวอย่างที่ 4: ใช้ร่วมกับ CALCULATE สำหรับมาตรวัด
Non-A Sales = CALCULATE( SUM([Amount]), NOT([Category] = "A") )
ใช้ NOT เพื่อปฏิเสธเงื่อนไข [Category] = "A" ทำให้ CALCULATE รวมเฉพาะหมวดที่ไม่ใช่ A ผมชอบแบบนี้เพราะชัดเจนว่าเป็นการ "ตัดออก" หมวด A
DAX Formula:

Non-A Sales =
CALCULATE(
    SUM([Amount]),
    NOT([Category] = "A")
)

Result:

ผลรวมของยอดขายที่ไม่ใช่หมวด A

FAQs

ใช้ NOT ต่างจากการเขียนเงื่อนไขกลับด้านโดยตรงอย่างไร?

ผมขอพูดถึงสองแบบที่ใช้บ่อย ถ้าเงื่อนไขง่าย ๆ การเขียนกลับด้านโดยตรง (เช่น แทน =) อาจสั้นกว่า และอ่านทีเดียว แต่ถ้าเป็นนิพจน์ยาวหรือซับซ้อน NOT ช่วยให้กลับผลทั้งก้อนและอ่านเจตนาได้ชัดกว่า ผมเลือก NOT เพราะ 1) อ่านค่อนข้างได้ว่าเป็น “ไม่” 2) ดูเหมือนการปฏิเสธของประพจน์ เช่น IF NOT(…) ดูเหมือน “if not this then…”

NOT ทำงานกับค่าที่ไม่ใช่ TRUE/FALSE ได้ไหม?

ทางเทคนิค NOT ควรรับนิพจน์ที่ให้ผลเป็นตรรกะ ถ้าส่งค่าอื่นมา ระบบจะพยายามแปลงตามกฎของ DAX (เช่น 0 = FALSE, ตัวเลข ≠ 0 = TRUE) แต่ผมแนะนำให้เขียนให้เป็นเงื่อนไขตรรกะก่อนเสมอ เช่น NOT(value > 0) แทน NOT(value) เพื่อให้ชัดเจนว่าสิ่งที่กลับนั้นหมายถึงอะไร

ใช้ NOT ร่วมกับ CALCULATE ได้ไหม?

ได้ และผมใช้บ่อยเมื่อต้องการสร้างมาตรวัดที่เป็น “ไม่ใช่” เงื่อนไขบางอย่าง เช่น CALCULATE(SUM(Sales[Amount]), NOT(Sales[Category] = “A”)) จะให้ผลรวมของหมวดที่ไม่ใช่ A ทั้งนี้ต้องแน่ใจว่า NOT ครอบเงื่อนไขตรรกะที่สมบูรณ์

Resources & Related

Additional Notes

NOT เป็นตัวดำเนินการตรรกะที่กลับค่าบูลีน TRUE เป็น FALSE และ FALSE เป็น TRUE ใช้เมื่อคุณต้องการนิเสธเงื่อนไข เช่น “ไม่ว่าง” “ไม่กำไร” หรือ “ไม่ใช่หมวดนี้” ระบบจะประเมินนิพจน์ที่ส่งเข้า แล้วคืนค่าตรงข้าม

ที่เจ๋งคือ NOT ไม่ใช่ฟังก์ชันทั่วไป แต่เป็นตัวดำเนินการตรรกะที่เขียนด้วยไวยากรณ์ฟังก์ชัน จึงทำงานได้รวดเร็ว และเมื่อใช้ในแถว Context มันจะดำเนินการ Context Transition ได้สอดคล้องกับ AND/OR ทำให้ผสมกับตรรกะซับซ้อนได้ง่าย

ส่วนตัวผม ผมชอบใช้ NOT เวลาที่เขียนเงื่อนไขแบบ “ปฏิเสธ” เพราะมันอ่านออกว่า “ไม่” ซึ่งสื่อสารเจตนาได้ชัดกว่าการเขียนสัญลักษณ์กลับด้าน (เช่น = หรือ = ยอดขาย…” 😎

Leave a Reply

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