Thep Excel

BITAND – คำนวณ AND แบบบิต (Bitwise AND)

BITAND คืนผลลัพธ์ของการทำ AND แบบบิตระหว่าง Number1 และ Number2 เหมาะกับการตรวจ bit flags/bitmask เพื่อเช็กสถานะที่ถูกเก็บในตัวเลขเดียว

=BITAND(<Number1>, <Number2>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
3/10

Difficulty
3/10

Usefulness
3/10

Syntax & Arguments

=BITAND(<Number1>, <Number2>)

Argument Type Required Default Description
Number1 number Yes ตัวเลขตัวแรก (มักเป็นค่า flags หรือ bitmask)
Number2 number Yes ตัวเลขตัวที่สอง (มักเป็นค่า mask ที่ต้องการตรวจ)

How it works

ตรวจว่ามีแฟลกบางตัวถูกเปิดอยู่หรือไม่

เช่น flags เก็บสิทธิ์/สถานะหลายตัว แล้วตรวจเฉพาะแฟลกที่ต้องการ

แยกบิตออกจากค่า bitmask

คืนค่าบิตที่ตรงกันเพื่อใช้วิเคราะห์/ทำเงื่อนไขต่อ

Examples

ตัวอย่างที่ 1: ตรวจว่ามีแฟลก 4 หรือไม่
Has Flag 4 = BITAND([Flags], 4) > 0
ถ้าบิตที่ตรงกับค่า 4 ถูกเปิด BITAND จะคืนค่ามากกว่า 0
DAX Formula:

Has Flag 4 =
BITAND([Flags], 4) > 0

Result:

คืน TRUE เมื่อ [Flags] มีบิต 4 ถูกเปิดอยู่

ตัวอย่างที่ 2: ตรวจหลายแฟลกพร้อมกันด้วย mask
Has Flags 1 and 4 = BITAND([Flags], 5) = 5
ค่า 5 ในฐานสองคือ 0101 (รวมแฟลก 1 และ 4) ถ้า BITAND คืน 5 แปลว่ามีครบทั้งสองแฟลก
DAX Formula:

Has Flags 1 and 4 =
BITAND([Flags], 5) = 5

Result:

คืน TRUE เมื่อมีทั้งแฟลก 1 และ 4

ตัวอย่างที่ 3: คืนค่าบิตที่ซ้อนกัน
Mask Result = BITAND(13, 6)
ใช้เพื่อดูว่าบิตใดที่ทั้งสองค่าเปิดตรงกัน แล้วได้ผลเป็นค่าตัวเลข
DAX Formula:

Mask Result =
BITAND(13, 6)

Result:

คืนผลลัพธ์เป็นตัวเลขตามบิตที่ตรงกัน

FAQs

BITAND คืนค่าเป็นชนิดอะไร?

คืนค่าเป็นตัวเลข (integer) ซึ่งเป็นผลลัพธ์ของการทำ AND แบบบิต

ควรใช้ BITAND เมื่อไร?

ใช้เมื่อข้อมูลสถานะ/สิทธิ์ถูกเข้ารหัสเป็นบิตในตัวเลขเดียว และคุณต้องการตรวจว่าบิตบางตัวถูกเปิดอยู่หรือไม่

Resources & Related

Additional Notes

BITAND ใช้คำนวณ AND แบบบิตระหว่างตัวเลขสองค่า (bitwise AND) โดยเปรียบเทียบบิตตำแหน่งเดียวกันของ Number1 และ Number2 เหมาะกับงานที่ใช้ “บิตแฟลก” (bit flags) หรือ bitmask เช่น เก็บสถานะหลายค่าไว้ในตัวเลขเดียว แล้วต้องการตรวจว่ามีแฟลกบางตัวถูกเปิดอยู่หรือไม่

Leave a Reply

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