---
title: BITAND – คำนวณ AND แบบบิต (Bitwise AND)
url: https://www.thepexcel.com/functions/dax/logical/bitand-dax/
type: function-explainer
program: DAX
syntax: "BITAND(<Number1>, <Number2>)"
date: 2025-12-13
updated: 2025-12-17
scores:
  popularity: 3
  difficulty: 3
  usefulness: 3
---

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

> ทำ AND แบบบิตระหว่างตัวเลขสองค่า

## คำอธิบาย

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

## Syntax

```excel
BITAND(&lt;Number1&gt;, &lt;Number2&gt;)
```

**Variant**

```excel
BITAND(&lt;Number1&gt;, &lt;Number2&gt;)
```

คืนผลลัพธ์ของ AND แบบบิตระหว่าง 2 ตัวเลข

## Arguments

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

## เคสการใช้งาน

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

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

_เหมาะกับ:_ check-flag

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

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

_เหมาะกับ:_ extract-mask

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ตรวจว่ามีแฟลก 4 หรือไม่

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

**ผลลัพธ์:** `คืน TRUE เมื่อ [Flags] มีบิต 4 ถูกเปิดอยู่`

ถ้าบิตที่ตรงกับค่า 4 ถูกเปิด BITAND จะคืนค่ามากกว่า 0

### 2. ตัวอย่างที่ 2: ตรวจหลายแฟลกพร้อมกันด้วย mask

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

**ผลลัพธ์:** `คืน TRUE เมื่อมีทั้งแฟลก 1 และ 4`

ค่า 5 ในฐานสองคือ 0101 (รวมแฟลก 1 และ 4) ถ้า BITAND คืน 5 แปลว่ามีครบทั้งสองแฟลก

### 3. ตัวอย่างที่ 3: คืนค่าบิตที่ซ้อนกัน

```excel
Mask Result =
BITAND(13, 6)
```

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

ใช้เพื่อดูว่าบิตใดที่ทั้งสองค่าเปิดตรงกัน แล้วได้ผลเป็นค่าตัวเลข

## หมายเหตุเพิ่มเติม

การทำงานกับ bitmask ต้องกำหนดความหมายของแต่ละบิตให้ชัดเจน (เช่น 1=สถานะ A, 2=สถานะ B, 4=สถานะ C) เพื่อให้การตรวจด้วย BITAND อ่านง่ายและดูแลได้

## คำถามที่พบบ่อย

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

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

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

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

## ฟังก์ชันที่เกี่ยวข้อง

- [BITOR – คำนวณ OR แบบบิต (Bitwise OR)](https://www.thepexcel.com/functions/dax/logical/bitor-dax/)
- [BITXOR – คำนวณ XOR แบบบิต (Bitwise XOR)](https://www.thepexcel.com/functions/dax/logical/bitxor-dax/)
- [AND – ตรวจสอบเงื่อนไขตรรกะในDAX](https://www.thepexcel.com/functions/dax/logical/and-dax/)
- [OR – ตรวจสอบว่ามีเงื่อนไขใดเป็นจริง](https://www.thepexcel.com/functions/dax/logical/or-dax/)
- [NOT – กลับค่าตรรกะ (TRUE/FALSE)](https://www.thepexcel.com/functions/dax/logical/not-dax/)
- [IF – ตรวจสอบเงื่อนไขและคืนค่าตามผลลัพธ์ TRUE/FALSE](https://www.thepexcel.com/functions/dax/logical/if-dax/)

## แหล่งข้อมูลเพิ่มเติม

- [DAX Guide: BITAND](https://dax.guide/bitand/) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/logical/bitand-dax/](https://www.thepexcel.com/functions/dax/logical/bitand-dax/)_
