NOT ใช้กลับค่าตรรกะจาก TRUE เป็น FALSE และจาก FALSE เป็น TRUE เอาไว้เขียนเงื่อนไขแบบ ‘ไม่ใช่’ หรือ ‘ไม่เข้าเงื่อนไข’ โดยเฉพาะตอนสูตรซับซ้อนจนเขียนแบบเทียบตรงๆ ด้วย ไม่ไหว เช่น กรองข้อมูลไม่ซ้ำ หรือเช็คว่าค่าไม่หลุดช่วงที่กำหนด
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| logical | Logical | ค่าหรือสูตรที่ให้ผลเป็น TRUE หรือ FALSE ที่ต้องการกลับค่า |
ฟังก์ชัน NOT กลับค่าความจริง (Logical Value) — ใส่ TRUE ได้ FALSE ใส่ FALSE ได้ TRUE เพียงเท่านี้ ประโยชน์จริงของมันไม่ได้อยู่ที่การกลับค่าเดี่ยวๆ แต่อยู่ตอนเอาไปห่อเงื่อนไขที่ซับซ้อนแล้วอยากพูดว่า ‘ไม่เอากรณีนี้’ เช่น งานตรวจสอบข้อมูล (data validation) ที่ต้องหาแถวที่ไม่ซ้ำ ไม่ว่างเปล่า หรือไม่มี error งาน HR/บัญชีที่ต้องเช็คว่าค่าตัวเลขไม่หลุดช่วงที่กำหนดไว้ 2 ฝั่ง กรณีแบบนี้เขียนด้วย ตรงๆ ไม่ได้ ต้องพึ่ง NOT ห่อ ISBLANK, ISERROR, COUNTIF หรือ AND/OR อีกที
กำหนดให้เซลล์ต้อง 'ไม่ว่างเปล่า' หรือ 'ไม่เป็นตัวเลขลบ' ในการกรอกข้อมูล เพื่อป้องกันความผิดพลาด
Highlight เซลล์ที่ 'ไม่ได้' ตรงตามเงื่อนไขที่กำหนด เช่น Highlight แถวที่สถานะ 'ไม่ใช่ Completed'
NOT พลิกค่าตรงๆ TRUE กลายเป็น FALSE (ถ้าใส่ FALSE ก็จะได้ TRUE กลับมา) นี่คือกลไกพื้นฐานที่สูตรอื่นทุกอันข้างล่างใช้ต่อ
ISBLANK(A2) ตอบ TRUE เมื่อเซลล์ว่าง — ตรงข้ามกับสิ่งที่เราอยากรู้ (อยากรู้ว่า 'มีข้อมูล' ไม่ใช่ 'ว่าง') NOT เลยพลิกผลลัพธ์กลับให้ตรงกับคำถามที่ตั้งจริงๆ มักเอาไปต่อใน IF เพื่อกันหารด้วยศูนย์หรือกันสูตรพังตอนเซลล์ยังไม่กรอกข้อมูล
ตอน VLOOKUP หาค่าไม่เจอมันจะคืน #N/A ซึ่ง ISERROR จับได้เป็น TRUE — แต่ TRUE ตรงนี้แปลว่า 'มีปัญหา' ถ้าอยากได้ธงที่แปลว่า 'ข้อมูลเชื่อมสำเร็จ' ต้องเอา NOT พลิกอีกที ใช้กรองแถวที่จับคู่ข้อมูลไม่ได้ก่อนส่งรายงาน
โจทย์คือ 'อายุต้องไม่ต่ำกว่า 18 และต้องไม่เกิน 60' — เขียนแบบปฏิเสธสองฝั่งแล้วเอา AND มาต่อกันแบบนี้ตรงกับที่คนพูดเป๊ะ (ต่างจากเขียน A2>=18 กับ A2<=60 ที่ความหมายเดียวกันแต่คนละมุมมอง) เมื่อ A2=25 ทั้ง NOT(25<18) และ NOT(25>60) เป็น TRUE ทั้งคู่ AND จึงเป็น TRUE ได้ผลลัพธ์ 'อยู่ในเกณฑ์'
COUNTIF นับว่าเลขที่ใบกำกับนี้ปรากฏกี่ครั้งในทั้งช่วง ถ้ามากกว่า 1 ครั้งแปลว่าซ้ำ (>1 ให้ TRUE) NOT จึงพลิกให้ TRUE กลายเป็น 'ไม่ซ้ำ' — ใช้ตรวจก่อนบันทึกบัญชีป้องกันการคีย์ใบกำกับซ้ำสองรอบ ซึ่งพบบ่อยตอนมีคนคีย์ข้อมูลหลายคนพร้อมกัน
ได้ครับ สำหรับกรณีง่ายๆ เช่น A1"Red" ให้ผลเหมือน NOT(A1="Red") และอ่านง่ายกว่าด้วย ควรสลับมาใช้ NOT ตอนเงื่อนไขซับซ้อนกว่าการเทียบค่าเดียว เช่น NOT(AND(…)), NOT(OR(…)) หรือ NOT(ISBLANK(…)) ที่ เขียนแทนไม่ได้ตรงๆ
ถ้าเป็นตัวเลข Excel ตีความ 0 เป็น FALSE และตัวเลขอื่นทุกตัว (รวมค่าติดลบ) เป็น TRUE ดังนั้น NOT(0) ได้ TRUE และ NOT(5) ได้ FALSE แต่ถ้าใส่ข้อความที่ไม่ใช่คำว่า TRUE/FALSE เช่น NOT("abc") หรือ NOT("") จะได้ error #VALUE! ทันที — จุดนี้พลาดบ่อยตอนเอา NOT ไปห่อผลลัพธ์จากฟังก์ชันที่อาจคืนค่าเป็นข้อความว่างแทนที่จะเป็น TRUE/FALSE
ผลลัพธ์เหมือนกันเป๊ะตามกฎ De Morgan: NOT(OR(A,B)) = AND(NOT(A),NOT(B)) และ NOT(AND(A,B)) = OR(NOT(A),NOT(B)) เลือกใช้แบบไหนก็ได้ตามที่อ่านแล้วตรงกับโจทย์มากกว่า — ถ้าโจทย์พูดว่า 'ต้องไม่ใช่ A และต้องไม่ใช่ B' เขียน AND(NOT(A),NOT(B)) จะตรงใจกว่า
ได้ครับ เช่น =NOT(A2:A10>10) ใน Excel 365/2021 ที่รองรับ dynamic array จะ spill ผลลัพธ์เป็น TRUE/FALSE ทีละแถวออกมาให้เอง แต่ใน Excel รุ่นเก่า (2019 ลงไป) ต้องกด Ctrl+Shift+Enter เพื่อทำเป็น array formula ไม่งั้นจะได้ผลลัพธ์แค่ค่าเดียว ถ้าจะรวมผลเป็นตัวเลขเดียว (เช่นนับจำนวนที่ไม่เข้าเงื่อนไข) ให้ห่อด้วย SUMPRODUCT แทนที่จะพึ่ง array formula แบบเก่า
ไม่เหมือนกัน — NOT คืนแค่ TRUE/FALSE ตัวเดียว ส่วน IF คืนค่าอะไรก็ได้ตามที่กำหนด (ข้อความ ตัวเลข หรือแม้แต่สูตรอื่น) ปกติสองตัวนี้ทำงานร่วมกัน เช่น =IF(NOT(ISBLANK(A2)),"มีข้อมูล","ว่าง") โดย NOT ทำหน้าที่สร้างเงื่อนไข ส่วน IF ทำหน้าที่แปลงเงื่อนไขนั้นเป็นข้อความที่คนอ่านเข้าใจ
ฟังก์ชันที่ผู้เขียนโยงไว้กับ NOT จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
AND ตรวจสอบเงื่อนไขได้สูงสุด 255 เงื่อนไข โดยจะคืนค่า TRUE ก็ต่อเมื่อ Logical ทุกตัว (logical1, logical2,…) ให้ผลเป็น TRUE ทั้งหมด
.
เรียกได้ว่าเป็นแบบ 'เข้มงวด' ที่ต้องผ่านทุกข้อถึงจะได้ TRUE ครับ ถ้าสักข้อเดียวเป็น FALSE… จบเลย 😅
FALSE คืนค่าตรรกะ Boolean FALSE โดยตรง ซึ่งมีค่าเท่ากับ 0 ในการคำนวณทางคณิตศาสตร์
.
ที่เจ๋งคือทำให้สามารถนำไปใช้กับฟังก์ชันคำนวณได้โดยตรงโดยไม่ต้องแปลง มักใช้ร่วมกับ IF AND OR NOT และ IFERROR เพื่อควบคุม logic ของสูตรเงื่อนไข
.
ใน Excel คุณสามารถพิมพ์ FALSE โดยตรง (ไม่มีวงเล็บ) หรือเรียกเป็นฟังก์ชัน FALSE() ก็ได้ ผลลัพธ์เหมือนกันทุกประการ
TRUE คืนค่าบูลีน TRUE ซึ่งมีค่าตัวเลขเท่ากับ 1 ใช้เป็น fundamental building block ในการสร้าง logical formulas ร่วมกับ IF, AND, OR, NOT
.
ใน Excel สมัยใหม่สามารถพิมพ์ TRUE โดยตรงได้โดยไม่ต้องใช้ =TRUE() ทั้งสองวิธีให้ผลเหมือนกัน
.
ที่เจ๋งคือฟังก์ชันนี้มีประโยชน์สำหรับการนับจำนวนเงื่อนไขที่เป็นจริง การแปลง Boolean เป็นตัวเลข และการสร้าง formula switches นะครับ
IF เป็นฟังก์ชันตรรกะพื้นฐานที่ใช้ตัดสินใจสองทางตามเงื่อนไข ตรวจสอบว่าเงื่อนไขเป็น TRUE หรือ FALSE แล้วคืนค่าที่แตกต่างกันไปตามผลลัพธ์ สามารถใช้ได้กับการเปรียบเทียบตัวเลข ข้อความ หรือวันที่ และเป็นพื้นฐานสำคัญของการสร้างสูตรแบบมีเงื่อนไข
OR คือฟังก์ชันตรรกศาสตร์ที่ตรวจสอบเงื่อนไขได้สูงสุด 255 ข้อ และจะคืนค่า TRUE ถ้ามี 'เงื่อนไขใดเงื่อนไขหนึ่ง' เป็นจริง เป็นเครื่องมือจำเป็นสำหรับการสร้างเงื่อนไขที่ยืดหยุ่น
ส่งกลับ TRUE หากจำนวนเงื่อนไขที่เป็นจริงเป็นจำนวนคี่ มิฉะนั้นส่งกลับ FALSE
ISBLANK ตรวจสอบเซลล์ว่างจริงเท่านั้น หากเซลล์มีสูตรคืนค่า "" (empty string) จะถือว่าไม่ว่าง
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่