BITAND ใช้เปรียบเทียบเลข 2 ตัวในระดับบิต (bit-by-bit comparison) ผลลัพธ์จะเป็น 1 ก็ต่อเมื่อตำแหน่งบิตนั้น ‘เป็น 1 ทั้งคู่’ เท่านั้น
=BITAND(number1, number2)
=BITAND(number1, number2)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| number1 | Number | Yes | ตัวเลขแรก (ต้องเป็นจำนวนเต็มที่ >= 0 และ < 2^48) | |
| number2 | Number | Yes | ตัวเลขที่สอง (ต้องเป็นจำนวนเต็มที่ >= 0 และ < 2^48) |
BITAND(5, 3)=BITAND(5, 3)
1
IF(BITAND(UserFlags, 4)=4, "Admin", "User")=IF(BITAND(UserFlags, 4)=4, "Admin", "User")
"Admin" หรือ "User"
BITAND(13, 25)=BITAND(13, 25)
9
BITAND(Status, 2)=2=BITAND(Status, 2)=2
TRUE หรือ FALSE
BITAND ผลลัพธ์เป็น 1 ก็ต่อเมื่อ **ทั้งคู่** เป็น 1 (AND logic) ส่วน BITOR ผลลัพธ์เป็น 1 ถ้า **อย่างน้อย 1 ตัว** เป็น 1 (OR logic) ตัวอย่าง: BITAND(5,3)=1 แต่ BITOR(5,3)=7
ไม่ได้ BITAND ต้องใช้กับจำนวนเต็มบวก >= 0 เท่านั้น ถ้าใส่เลขลบจะ error #NUM!
ตัวเลขสูงสุดคือ (2^48)-1 = 281,474,976,710,655 ถ้าเกินจะ error #NUM!
ใช้ตรวจสอบ permission bits, feature flags, file attributes ตัวอย่าง: เช็คว่าไฟล์มีสิทธิ read/write/execute หรือไม่ หรือเช็คว่าผู้ใช้มี role ชนิดไหน
8 เพราะ 15 = 1111, 8 = 1000 AND กัน = 1000 = 8
BITAND เป็นฟังก์ชันที่ใช้เปรียบเทียบเลข 2 ตัวในระดับบิต (Bitwise AND operation).
หลักการของ BITAND ก็คือ: เมื่อเปรียบเทียบเลข 2 ตัว บิตแต่ละตำแหน่ง ถ้า **ทั้งคู่เป็น 1** ผลลัพธ์จึงจะเป็น 1 ถ้าตำแหน่งไหนเป็น 0 ผลลัพธ์ก็จะเป็น 0.
ตัวอย่าง: 5 (101) AND 3 (011) = 1 (001) เพราะว่า บิตตัวแรก (2^0) มีค่า 1 ทั้งคู่เท่านั้น.
ฟังก์ชันนี้มีประโยชน์ในการตรวจสอบสถานะ (flags) หรือ permission bits ในโปรแกรม หรือการทำงานกับข้อมูลไบนารี