Thep Excel

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

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

fx
=NOT(<logical>)

ความนิยม6/10
ความยาก2/10
ประโยชน์6/10

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
logical boolean นิพจน์ตรรกะที่ต้องการกลับผล (เช่น [Sales] > 0 หรือ ISBLANK([Measure]))

Additional Notes

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

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

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

How it works

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

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

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

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

Examples

ตัวอย่างที่ 1: กลับค่าตรรกะพื้นฐานNOT(TRUE)

NOT จะกลับค่าจาก TRUE เป็น FALSE และกลับจาก FALSE เป็น TRUE เป็นการดำเนินการพื้นฐานสุด

fx
= NOT(TRUE)

ผลลัพธ์FALSE
ตัวอย่างที่ 2: ตรวจสอบว่าไม่เป็น BlankHas Value = NOT( ISBLANK([Total Sales]) )

ใช้ NOT ครอบ ISBLANK เพื่อสร้างเงื่อนไขว่า "มีค่า" การอ่านว่า "NOT blank" ชัดเจนว่าผลลัพธ์หมายถึง "มีค่า"

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

ผลลัพธ์TRUE เมื่อ [Total Sales] ไม่เป็น BLANK(), FALSE เมื่อเป็น BLANK
ตัวอย่างที่ 3: ใช้ร่วมกับ IF เพื่อคืนข้อความStatus = IF( NOT([Total Profit] > 0), "ขาดทุนหรือเท่าทุน", "กำไร" )

กลับผลของเงื่อนไขกำไรเพื่อให้สื่อความหมายว่า "ไม่กำไร" ที่สำคัญคือการอ่านคำสั่งทั้ง IF NOT(…) ได้ไปเลย "if not profit is positive, then…"

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

ผลลัพธ์"ขาดทุนหรือเท่าทุน" เมื่อกำไร <= 0, "กำไร" เมื่อกำไร > 0
ตัวอย่างที่ 4: ใช้ร่วมกับ CALCULATE สำหรับมาตรวัดNon-A Sales = CALCULATE( SUM([Amount]), NOT([Category] = "A") )

ใช้ NOT เพื่อปฏิเสธเงื่อนไข [Category] = "A" ทำให้ CALCULATE รวมเฉพาะหมวดที่ไม่ใช่ A ผมชอบแบบนี้เพราะชัดเจนว่าเป็นการ "ตัดออก" หมวด A

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

ผลลัพธ์ผลรวมของยอดขายที่ไม่ใช่หมวด 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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ NOT จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้NOTLogical
Logical (5)
AND

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

FALSE

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

IF

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 อย่างเข้มงวด

OR

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

SWITCH

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

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่