---
title: Binary.Buffer – สร้างค่า Binary ที่เสถียร
url: https://www.thepexcel.com/functions/power-query/binary-functions/binary-buffer/
type: function-explainer
program: Power Query
syntax: Binary.Buffer(binary as nullable binary) as nullable binary
date: 2025-12-04
updated: 2025-12-17
scores:
  popularity: 4
  difficulty: 4
  usefulness: 4
---

# Binary.Buffer – สร้างค่า Binary ที่เสถียร

> แปลงข้อมูล Binary เป็นเวอร์ชัน Stable ที่มีคุณสมบัติแน่นอน

## คำอธิบาย

Binary.Buffer สร้างเวอร์ชัน Stable ของข้อมูล Binary ในหน่วยความจำ ข้อมูล Binary ที่ Buffered จะมีคุณสมบัติตายตัว ได้แก่ ความยาวคงที่และลำดับ Bytes สม่ำเสมอ ใช้เมื่อต้องการความเชื่อถือได้ของข้อมูล

## Syntax

```excel
Binary.Buffer(binary as nullable binary) as nullable binary
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| binary | Yes | binary |  | ค่า Binary (nullable) ที่ต้องการ Buffer เพื่อให้มีคุณสมบัติแน่นอน |

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

### สร้างข้อมูล Binary ที่สม่ำเสมอ

Buffer ข้อมูล Binary ก่อนการดำเนินการที่ต้องการลำดับ Bytes และความยาวที่คาดเดาได้

### เตรียมข้อมูลสำหรับการแปลง

สร้างเวอร์ชัน Stable ของ Binary ก่อนแปลงเป็น Text หรือรูปแบบอื่น

### บังคับให้ Lazy Streams เป็น Materialized

Buffer ข้อมูล Binary ที่โหลดแบบ Lazy เพื่อให้เกิดการ Materialize และปฏิบัติแบบสม่ำเสมอ

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: Buffer รายการตัวเลขเป็น Binary

```excel
Binary.Buffer(Binary.FromList({0, 1, 2, 3, 4, 5}))
```

**ผลลัพธ์:** `#binary({0, 1, 2, 3, 4, 5})`

สร้าง Binary จากรายการตัวเลข {0, 1, 2, 3, 4, 5} แล้ว Buffer เพื่อให้ Binary มีคุณสมบัติ Stable (ความยาว 6 Bytes ที่แน่นอน)

### 2. ตัวอย่างที่ 2: Buffer ข้อความและตรวจสอบความยาว

```excel
let
    TextData = "Hello",
    BinaryData = Binary.FromText(TextData),
    BufferedData = Binary.Buffer(BinaryData),
    Length = Binary.Length(BufferedData)
in
    Length
```

**ผลลัพธ์:** `5`

แปลงข้อความ "Hello" เป็น Binary ด้วย Binary.FromText Buffer เพื่อให้ Binary มีความยาวแน่นอน จากนั้นใช้ Binary.Length ตรวจสอบได้ผลลัพธ์ 5 Bytes (H=1, e=1, l=1, l=1, o=1)

### 3. ตัวอย่างที่ 3: Buffer แล้วดึง Bytes ช่วงแรก

```excel
let
    Source = Binary.FromText("PowerQuery"),
    Buffered = Binary.Buffer(Source),
    FirstFiveBytes = Binary.Range(Buffered, 0, 5)
in
    FirstFiveBytes
```

**ผลลัพธ์:** `#binary({80, 111, 119, 101, 114})`

สร้าง Binary จากข้อความ "PowerQuery" Buffer เพื่อให้มีความยาวแน่นอน จากนั้นใช้ Binary.Range ดึง 5 Bytes แรก (P=80, o=111, w=119, e=101, r=114 ใน Byte) ได้ผลลัพธ์เป็น Binary ใหม่

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

**Q: "Stable" หมายความว่าอย่างไรในบริบทนี้?**

Stable หมายความว่า Binary มีคุณสมบัติตายตัว ได้แก่ ความยาวคงที่และลำดับ Bytes สม่ำเสมอ สำคัญเมื่อ Binary มาจาก Stream หรือข้อมูลที่ Generate แบบ Dynamic ซึ่งอาจให้ผลต่างกันในแต่ละครั้ง

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

ใช้เมื่อมี Binary ที่อาจเป็น Lazy-evaluated (เช่น Stream หรือข้อมูล Dynamic) และต้องใช้ในการดำเนินการหลายอย่าง เพื่อให้ได้ผลลัพธ์สม่ำเสมอ

**Q: Buffer มีผลต่อ Performance หรือไม่?**

Buffer จะนำ Binary ขึ้นมา Memory ทั้งหมด ถ้า Binary ใหญ่มากจะใช้ Memory มาก แต่ถ้าต้องใช้ Binary หลายครั้งมักจะเร็วขึ้นเพราะไม่ต้อง Recompute

**Q: ถ้า Input เป็น null จะเกิดอะไร?**

Binary.Buffer จะคืนค่า null ถ้า Input เป็น null รักษาพฤติกรรม null propagation ของ Power Query

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

- [Binary.FromList – สร้างข้อมูลไบนารี่จากรายการ](https://www.thepexcel.com/functions/power-query/binary-functions/binary-fromlist/)
- [Binary.FromText – แปลงข้อความเป็นข้อมูลไบนารี่](https://www.thepexcel.com/functions/power-query/binary-functions/binary-fromtext/)
- [Binary.Length – ได้ความยาว Binary](https://www.thepexcel.com/functions/power-query/binary-functions/binary-length/)
- [Binary.Range – เลือกช่วงข้อมูลไบนารี่](https://www.thepexcel.com/functions/power-query/binary-functions/binary-range/)

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

- [Microsoft Learn: Binary.Buffer](https://learn.microsoft.com/en-us/powerquery-m/binary-buffer) _(Official Documentation)_
- [Power Query M Language - Binary Functions](https://learn.microsoft.com/en-us/powerquery-m/power-query-m-function-reference#binary) _(Function Reference)_

---

_Source: [https://www.thepexcel.com/functions/power-query/binary-functions/binary-buffer/](https://www.thepexcel.com/functions/power-query/binary-functions/binary-buffer/)_
