TLDR สรุปสั้นๆ
AND เงื่อนไขย่อยทั้งหมดต้องเป็นจริง ผลลัพธ์จึงจะเป็นจริง
คำอธิบาย
ฟังก์ชัน AND ใช้สำหรับตรวจสอบว่า เงื่อนไขทั้งหมดในการทดสอบเป็นจริงหรือไม่? ถ้าทุกเงื่อนไขเป็นจริง จะคืนค่า TRUE แต่ถ้ามีเงื่อนไขใดเงื่อนไขหนึ่งเป็นเท็จ จะคืนค่า FALSE
มีครั้งแรกในเวอร์ชันไหน
2003 หรือ Version ก่อนหน้า
รูปแบบคำสั่ง (Syntax)
AND(logical1, [logical2], ...)
Arguments
-
logical1 (Required – condition)
เงื่อนไขแรกที่ต้องการทดสอบ สามารถเป็น TRUE หรือ FALSE -
logical2 (Optional – condition)
เงื่อนไขเพิ่มเติมที่ต้องการทดสอบ สามารถมีได้สูงสุด 255 เงื่อนไข
ตัวอย่างการใช้งาน (Examples)

- Formula:
Description: ถ้า F3 มากกว่า 7 และ G3 น้อยกว่า 2000 จะแสดงค่า TRUE ไม่งั้นจะแสดง FALSE=AND(F3>7, G3<2000)
Result: TRUE (เพราะเป็นจริงทั้งสองเงื่อนไข) - Formula:
Description: ถ้า D3 มีค่าเท่ากับ “book” (ไม่สนพิมพ์เล็กพิมพ์ใหญ่) และ F3 มีค่าตั้งแต่ 10 เป็นต้นไปจะแสดงค่า TRUE ไม่งั้นจะแสดง FALSE=AND(D3="book", F3>=10)
Result:ค่า TRUE (เพราะเป็นจริงทั้งสองเงื่อนไข) - Formula:
Description: เรามักใช้ AND ในส่วน Logical Test ของ IF=IF(AND(F3>7, G3<2000), "OK", "The value is out of range")
ถ้า F3 มากกว่า 7 และ G3 น้อยกว่า 2000 จะแสดงข้อความ ‘OK’ ออกมา ไม่งั้นจะแสดงข้อความว่า ‘The value is out of range’
Result: OK เพราะเป็นจริงทั้งสองเงื่อนไข - Formula: (แบบผิดๆ)
Description: ใช้ AND กับข้อมูลที่เป็น Array ไม่ได้ เพราะข้อมูลจะถูกมองเป็นก้อนเดียว=AND(F3:F8>=7,G3:G8<=1500)
Result: FALSE (ใช้ไม่ได้)
ต้องแก้สูตรเป็น : จะได้แบบนี้ {1;0;1;1;0;0}=(F3:F8>=7)*(G3:G8<=1500)
Tips & Tricks
ใช้ฟังก์ชัน AND ร่วมกับ IF เพื่อตรวจสอบหลายเงื่อนไขพร้อมกัน หรือใช้ร่วมกับ OR เพื่อรวมการตรวจสอบเงื่อนไขหลายรูปแบบ
ข้อควรระวัง (Cautions)
เราไม่สามารถใช้ฟังก์ชัน AND กับข้อมูลแบบ Array ได้
เช่น =AND(F3:F8>=7,G3:G8<=1500) เพราะมันจะมองรวบทั้ง Array เป็น Logic ก้อนเดียวกัน (ไม่ได้ทำการจับคู่)
ทางแก้คือ เราจะต้องพลิกแพลงไปใช้ Concept เรื่อง Boolean Logic โดยใช้เครื่องหมาย * แทน เช่น =(F3:F8>=7)*(G3:G8<=1500)
ฟังก์ชันที่เกี่ยวข้อง
References
ขอบคุณที่เข้ามาอ่านนะครับ ❤️
Leave a Reply