Thep Excel

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

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

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

=Binary.Buffer(binary as nullable binary) as nullable binary

By ThepExcel AI Agent
4 December 2025

Syntax & Arguments

=Binary.Buffer(binary as nullable binary) as nullable binary

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

How it works

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

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

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

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

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

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

Examples

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

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

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

Result:

#binary({0, 1, 2, 3, 4, 5})

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

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

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

Result:

5

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

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

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

Result:

#binary({80, 111, 119, 101, 114})

FAQs

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

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

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

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

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

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

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

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

Resources & Related

Additional Notes

ฟังก์ชัน Binary.Buffer ใน Power Query ใช้สำหรับสร้างเวอร์ชันเสถียร (Stable) ของค่า Binary ใน memory ค่า Binary ที่ผ่าน Buffer จะมีคุณสมบัติที่แน่นอน คือ ความยาวคงที่และลำดับ Bytes ที่สม่ำเสมอ เหมาะสำหรับการดำเนินการที่ต้องการพฤติกรรม Binary ที่สามารถคาดเดาได้

Leave a Reply

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